Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Makro Formel nach unten ziehen
#1
Hallo! Ich hänge gerade an folgendem Problem:
Ich habe in Zeile 13 der Spalten C bis Spalte I diverse Formeln eingefügt. Nun möchte ich, dass so lange in Spalte A ein Wert eingegeben ist, diese Formeln gleich nach unten gezogen werden.
Ich stelle mir das mit einem Do While Loop vor. 

Mein Pseudocode sieht folgendermaßen aus:
Sub FormelZiehen()
s = 3
Do While Cells(14,1)<>""

nimm Formel aus Cells(14,r) 
Kopiere Formel nach unten
s = s + 1 'geh zur nächsten Spalte

Loop
End Sub

Hat jemand Ahnung, wie ich mein Ziel erreichen kann?
Antworten Top
#2
hallo chrjr,

dafür benötigt man doch kein Programm.

Für vorhandenen Werte kannst du das durch ziehen des Formelbereiches an der unteren rechten Ecke erreichen.
Oder, wenn die Spalte B auch passend zur Spalte A gefüllt ist durch ein Doppelclick auf diese Ecke.

Wenn auch bei neueeinträgen die Formeln übernommen werden sollen macht man aus der Liste eine benannte Tabelle (markieren und STRG+T drücken). Beim Hinzufügen neuer Zeilen werden dann die Formeln automatisch eingetragen.
helmut

Für mich ist die Möglichkeit in Excel an Zellen und Bereichen Namen zu vergeben die wichtigste Funktionalität.
Sie macht Formeln und den VBA-code verständlicher. Für Makros gilt die Regel: "Nur über benannte Bereiche auf den Inhalt der Zellen zugreifen."
Und wofür sind Regeln da? Um nachzudenken bevor man sie bricht.





Antworten Top
#3
(09.09.2016, 11:06)Ego schrieb: hallo chrjr,

dafür benötigt man doch kein Programm.

Für vorhandenen Werte kannst du das durch ziehen des Formelbereiches an der unteren rechten Ecke erreichen.
Oder, wenn die Spalte B auch passend zur Spalte A gefüllt ist durch ein Doppelclick auf diese Ecke.

Wenn auch bei neueeinträgen die Formeln übernommen werden sollen macht man aus der Liste eine benannte Tabelle (markieren und STRG+T drücken). Beim Hinzufügen neuer Zeilen werden dann die Formeln automatisch eingetragen.

Das Problem ist, dass die Anzahl der Zeilen bis zu 1000 oder mehr betragen kann. Einfaches ziehen kommt da eher unhandlich. Außerdem sollen die Funktionen ja nur so weit nach unten gezogen werden, wie in Spalte A Werte vorhanden sind, damit ein dynamisches Diagramm erstellt werden kann. Ich habe dafür extra eine reset-Funktion erstellt, die nach jedem Kalkulationsvorgang alle Zeilen bis zur ersten löscht, damit nicht im nächsten Vorgang die alten Daten noch vorhanden sind, obwohl sich andere variablen geändert haben.

Fällt dir dafür eine Makrofunktion ein?
Antworten Top
#4
Hallöchen,

wenn Deine Zelle durchgängig gefüllt sind, dann ist wirklich der Doppelklick auf die Ecke die einfachste und schnellste Methode.

Hier mal noch was zu Deinem Code, ungetestet:
Sub FormelZiehen()
s = 3
Do While Cells(14,1s)<>""
'nimm Formel aus
Cells(14,r).copy 'wo, bitte, ist r???
Kopiere Formel nach unten (anhand letzter gefuellter Zeile in Spalte A)
Range(cells(14,s),Cells(Cells(rows.count,1).End(xlup).row,s).pastespecial paste:=xlformulas
s = s + 1 'geh zur nächsten Spalte
Loop
End Sub
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#5
(09.09.2016, 12:10)chrjh schrieb: Das Problem ist, dass die Anzahl der Zeilen bis zu 1000 oder mehr betragen kann. Einfaches ziehen kommt da eher unhandlich. Außerdem sollen die Funktionen ja nur so weit nach unten gezogen werden, wie in Spalte A Werte vorhanden sind, damit ein dynamisches Diagramm erstellt werden kann.

Fällt dir dafür eine Makrofunktion ein?

genau für so eine Aktion ist der Doppelklick auf die kleine Ecke rechts bei der markierten Formel-Zelle. Dann wird das in der Spalte soweit nach unten ausgefüllt, wie in der Nebenspalte Werte vorhanden sind.
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste