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.

VBA: erste Zeile in der die Zelle in A leer ist
#1
Hallo,
ich habe das schon mal hingekriegt in der Vergangenbheit, aber momentan beiße ich mir die Zähne daran aus:

Code:
Range("F5:AC66").Select
    Application.CutCopyMode = False
    Selection.Copy
    Windows("WB1.xlsx").Activate
    Range("E4").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

Range ("E4") muß ersetzt werden durch Range("E"&erste Zeile in der A leer ist).
Eigentlich keine schwierige Sache.
MfG
Aloha
Antworten Top
#2
so als Gedankenanschubser Smile
Code:
do while cells(zeile,1)<>""
    zeile = zeile +1
loop
erste_Zeile_in_der_A_leer_ist = zeile
ungetestet.
Antworten Top
#3
Hallo Aloha,

Columns(1).SpecialCells(xlCellTypeBlanks).Cells(1, 5).Select

Gruß Uwe
Antworten Top
#4
Hallo,

Danke schon mal

Der nächste Schritt:
Ein erster Datenblock (gelb) wird kopiert.

Da die Daten aus Blättern stammen in denen jeweils 2 Zellen vertikal miteinander verbunden sind, ist diese Verbindung nach dem Kopiervorgang aufgelöst und zwischen 2 Zeilen mit Daten gibt es eine Leerzeile
Diese Leerzeilen möchte ich durch Sortieren nach Spalte A, dann B, sortieren.
Bei dem ersten (gelben) Block ist es noch ziemlich einfach: die erste Zeile ist bekannt und die letzte kann ich mit dem Code definieren.

Dann kopiere ich den zweiten Block unter den ersten, schon sortierten, und muß zum Sortieren des zweiten die erste (da liegt mein Problem, da es ja schon den gelben Block gibt) zu sortierende Zeile und die letzte die Daten enthält ermitteln.

Wie kann ich die erste Zeile aus dem blauen Block ermitteln? Vielleicht indem ich nach der ersten freien Zeile die aus der Auflösung der Verbindung entstanden ist (Zeile 11 im Beispiel) suche und davon 1 abziehe?
Siehe angehängtes WB das diese Situation illustriert.

MfG
Alooha


Angehängte Dateien
.xlsm   Blauen Block sortieren.xlsm (Größe: 9,78 KB / Downloads: 9)
Antworten Top
#5
Hallöchen,

ich würde die Dir bekannte / von Dir definierte letzte vom gelben Block nehmen und eins dazuzählen ...
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#6
Hallo,
Nach dem Kopiervorgang des blauen Blocks ist die letzte gelbe Zeile ja nicht mehr idenzifierbar, weil anschließend die erste blaue kommt. Sie ist allerdings noch vor dem Kopiervorgang zu identifizieren, und identifiziert, um den Beginn des blauen Blocks zu bestimmen. Ich müsste also diese Information behalten für das Sortieren.

Alooha
Antworten Top
#7
Hallöchen,

- schaue Dir mal an, wie Variablen globale oder modulweit deklariert werden können
- schlimmstenfalls markierst Du die Zeile irgendwie oder speicherst die Nummer der letzte Zeile irgendwo
- oder Du suchst die erste leere Zeile z.B. mit Range("A1").End(xlDown).Row+1 - Dabei sollten zumindest A1 und A2 gefüllt sein.
- falls Du im ersten code das Makro für den zweiten Kopiervorgang aufrufst, kannst Du die Zeile als Parameter übergeben
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#8
Hallo,

es würde auch so gehen: 

  • in Spalte G irgendwelche Inhalte einfügen. 
  • In Zeile 1 Spaltenüberschriften einfügen. 
  • Autofilter aktivieren.
  • so filtern, dass nur die leeren Zeilen stehen bleiben.
  • leere Zeilen löschen.
  • Filter aufheben.
  • leere Zeilen sind weg.
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
Antworten Top
#9
Hallo,

ich bin etwas weiter gekommen und hänge nun an dem Problem, dass Excel nach dem Sortieren die aussortierten Zeilen als nicht leer ansieht.
Wie kann ich das lösen?
Ich habe schon meherere Methoden die ich im internet gefunden habe probiert, aber die letzte Zeile ist und bleibt immer die letzte Zeile vor dem Sortiervorgang.

Wie kann ich Excel VBA dazu bringen, die Zellen in Spalte A, in denen es nach dem Sortiervorgang keine Werte gibt, als leer zu betrachten, also diejenige, die als letzte einen Wert enthält, als letzte zu betrachten?

MfG
Alooha
Antworten Top
#10
Hallo Alooha,

in deinem (zu erstellenden) Makro findest du ja die erste freie Zelle (in deinem Fall A11), Diesen Wert minderst du um 1 (also auf 10), die letzte beschriebene Zelle sollte durch den Kopiervorgang bekannt sein, wenn nicht suchst du auch diese [ letzteZelle = Cells(1001, 1).End(xlUp).Row  ] und damit hast du den Bereich den du sortieren möchtest. 

mfG
[-] Folgende(r) 1 Nutzer sagt Danke an Rudi'S für diesen Beitrag:
  • Alooha
Antworten Top


Gehe zu:


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