Supportnet / Forum / Tabellenkalkulation
Makro soll die richtige Zeile finden
Frage
Ich kopiere mittels Makro in eine Datei eine noch unbekannte Anzahl von Zeilen (beginnend in Zeile 6 / so um die 500 Zeilen) und möchte ab einer bestimmte Spalte (die durch den Zellennamen „Start“ in der Zeile 1 festgelegt wird) eine Formel aus Zeile 5 in dieser Spalte (auch in die rechts folgenden, bis Spalte 66 ) nach unten kopieren bis in die letzte in Spalte A belegte Zeile.
Durch Verschieben der Zelle „Start“ vor dem Makrostart kann ich dann von Monat zu Monat entsprechende Auswertungen machen.
Wie kann ich dem Makro klarmachen, bis wohin, bis in welche Zeile zu kopieren ist, d.h. welches die letzte belegte Zeile in A ist? (Klar, ich könnte in Spalte A mit End.down. runtergehen bis zur letzten Zeile, käme dann aber nicht mehr in die richtige Spalte, in der die Zelle Start steht. …ein Teufelskreis  )
Klingt umständlich, hoffe jedoch, dass es verständlich ist.
Antwort 1 von Aliba
Hi,
so ganz verstanden habe ich das zwar nicht und bin nun auch nicht der große VB'ler, könnte mir aber vorstellen, daß die ganze Sache auch über die Namensvergabe "Start" gelöst werden könnte.
Voraussetzung: In Spalte A sind durchgängig Einträge bis zur letzten Zeile vorhanden, also keine Leerzellen.
Namensvergabe: Start
Bezieht sich auf:
=BEREICH.VERSCHIEBEN(Tabelle2!$B$1;0;0;ANZAHL2(INDIREKT("Tabelle2!$A:$A"));67-SPALTE(Tabelle2!$B$1))
Der Bereich "Start" wäre nun nicht nur die einzelne Zelle in Zeile 1, sondern der Bereich, beginnend in der Spalte in die Du die Startzelle ziehst bis zur Spalte 66 und entsprechend der Anzahl der Einträge in SPalte A wäre dann die letzte Zeile.
CU Aliba
so ganz verstanden habe ich das zwar nicht und bin nun auch nicht der große VB'ler, könnte mir aber vorstellen, daß die ganze Sache auch über die Namensvergabe "Start" gelöst werden könnte.
Voraussetzung: In Spalte A sind durchgängig Einträge bis zur letzten Zeile vorhanden, also keine Leerzellen.
Namensvergabe: Start
Bezieht sich auf:
=BEREICH.VERSCHIEBEN(Tabelle2!$B$1;0;0;ANZAHL2(INDIREKT("Tabelle2!$A:$A"));67-SPALTE(Tabelle2!$B$1))
Der Bereich "Start" wäre nun nicht nur die einzelne Zelle in Zeile 1, sondern der Bereich, beginnend in der Spalte in die Du die Startzelle ziehst bis zur Spalte 66 und entsprechend der Anzahl der Einträge in SPalte A wäre dann die letzte Zeile.
CU Aliba
Antwort 2 von querkopp
Vielen Dank für die schnelle Antwort. Scheint eine gute Idee zu sein, ob es funktioniert kann ich allerdings noch nicht sagen, da ich inicht die Funktonalität des "Bereich.Verschieben" kenne und im Moment nicht testen kann. Sicher ist jedoch, dass es nur fkt. wenn duch das "Verschieben" nur der Bereichsumfang, nicht aber die Inhalte verschoben werden. Wenn das der Fall wäre, stehe ich weiterhin im Dunkeln. Melde mich asap.
Antwort 3 von nighty
hi querkopp :-)
bei bedarf stell mal eine beispielmappe in netupload rein und den link hier reinsetzen.
gruss nighty
bei bedarf stell mal eine beispielmappe in netupload rein und den link hier reinsetzen.
gruss nighty
Antwort 4 von querkopp
Hallo nighty,
würde ich gerne tun, nur wo und wie?
Die Suche hier findet nichts zu "netupload"
gruss vom querkopp
würde ich gerne tun, nur wo und wie?
Die Suche hier findet nichts zu "netupload"
gruss vom querkopp
Antwort 5 von son_quatsch
Hey querkopp, Gratulation zur Benutzung der Suche - damit bist Du vielen einen Schritt voraus :-) Daher will ich Dich auch nicht mit "versuch doch mal Google" strafen. nighty meinte Dienste wie diese hier:
http://www.netupload.de/
http://ultraload.org/
Excelmappe vorher packen (Rechtsklick -> Senden an -> ZIP-komprimierter Ordner); ZIP-Datei auf der Seite auswählen; hochladen; fertigen Link hier posten; Freude!
http://www.netupload.de/
http://ultraload.org/
Excelmappe vorher packen (Rechtsklick -> Senden an -> ZIP-komprimierter Ordner); ZIP-Datei auf der Seite auswählen; hochladen; fertigen Link hier posten; Freude!
Antwort 6 von M.O.
Antwort 7 von querkopp
Hi M.O.,
sorry, waren für mich zwei unterschiedliche Probleme und ich wollte vermeiden gesagt zu bekommen: "Starte doch nicht 2 Probleme in der gleichen Anfrage."
habe das mit dem Link hinbekommen, zwar nicht gezipt, trotzdem Freude!
Hier der Link:
http://www.netupload.de/detail.php?img=2c0acf01e994e5b886b111a4877fd515.xls
Für die Mühe schon mal im Voraus vielen Dank
gruss vom querkopp
sorry, waren für mich zwei unterschiedliche Probleme und ich wollte vermeiden gesagt zu bekommen: "Starte doch nicht 2 Probleme in der gleichen Anfrage."
habe das mit dem Link hinbekommen, zwar nicht gezipt, trotzdem Freude!
Hier der Link:
http://www.netupload.de/detail.php?img=2c0acf01e994e5b886b111a4877fd515.xls
Für die Mühe schon mal im Voraus vielen Dank
gruss vom querkopp
Antwort 8 von M.O.
Hallo Querkopp,
es ist zwar ein anderes Problem, hängt aber doch auch mit dem anderen Thread zusammen..
Die letzte beschriebene Zeile kannst du wie folgt ermitteln:
Du kannst mal folgenden Code versuchen bzw. das Ende des Makros 2 wie folgt ersetzen (ich bin zwar nicht der große Makrospezialist, aber es sollte funktionieren)
Ich gehe davon aus, dass die Zelle "START" immer in Zeile 1 steht
Ich denke, dass sollte das sein, was du wolltest
Gruß
M.O.
es ist zwar ein anderes Problem, hängt aber doch auch mit dem anderen Thread zusammen..
Die letzte beschriebene Zeile kannst du wie folgt ermitteln:
ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row
Du kannst mal folgenden Code versuchen bzw. das Ende des Makros 2 wie folgt ersetzen (ich bin zwar nicht der große Makrospezialist, aber es sollte funktionieren)
Ich gehe davon aus, dass die Zelle "START" immer in Zeile 1 steht
Application.Goto Reference:="START"
'hier kommt dein Kommentar,
c = ActiveCell.Column
Cells(5, c).Select
Range(Selection, Selection.End(xlToRight)).Select
Selection.Copy
Range(Cells(6, c), Cells(ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row, c)).Select
ActiveSheet.Paste
Cells(14, c).Select
Ich denke, dass sollte das sein, was du wolltest
Gruß
M.O.
Antwort 9 von querkopp
Hallo M.O.
was soll ich sagen? Weiss zwar noch nicht wie es funktioniert, aber es tut´s und ist in jedem Fall genial. Und natürlich herzlichen Dank, genau das wollte ich.
Von wegen "ich bin zwar nicht der große Makrospezialist"... tststs
gruss vom querkopp
was soll ich sagen? Weiss zwar noch nicht wie es funktioniert, aber es tut´s und ist in jedem Fall genial. Und natürlich herzlichen Dank, genau das wollte ich.
Von wegen "ich bin zwar nicht der große Makrospezialist"... tststs
gruss vom querkopp
Antwort 10 von M.O.
Hallo Querkopp,
danke für die Rückmeldung und freut mich, dass es so funktioniert, wie du es wolltest.
Gruß
M.O.
danke für die Rückmeldung und freut mich, dass es so funktioniert, wie du es wolltest.
Gruß
M.O.