Supportnet Computer
Planet of Tech

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

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

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

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!

Antwort 6 von M.O.

Hallo Querkopp,

starte doch nicht zwei Anfragen zum gleichen Problem.

Gruß

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

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:

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

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.

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: