Clever-Excel-Forum

Normale Version: prüfe ob Zelle leer dann einfügen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo c-e-f Gemeinde,

ich hab folgendes Problem, habe auch lange im Netz gesucht, leider nichts passendes zu meinem Problem gefunden.

Ich möchte das via VBA geprüft wird, ob die Zelle "B5" in der Tabelle "Früh" leer ist, dann füge mir die selektierten Zellen aus der Tabelle "Eingabe" ein, wenn nicht soll in der Zelle "B6" geprüft werden ob die Zelle leer ist usw. Ich habe durch die Makro-Aufzeichnung folgendes bekommen.

Sub PruefeObZelleLeer()

Sheets("Eingabe").Select
Range("A6,C6,D6,E6,F6,J6,K6").Select
Selection.Copy
Sheets("Früh").Select
Range("B5").Select
ActiveSheet.Paste
Application.CutCopyMode = False
End Sub

Leider weiß ich nicht wie ich das mit der Prüfung machen soll. Ich hoffe ihr kommt mir dabei weiterhelfen...


Danke

Gruß claudia
Hallo Claudia,

vielleicht so:

Code:
Sub aaa()
  With Worksheets("Früh")
    Worksheets("Eingabe").Range("A6,C6,D6,E6,F6,J6,K6").Copy .Range(.Cells(6, 2), .Cells(Rows.Count, 2)).SpecialCells(xlCellTypeBlanks).Cells(1)
  End With
End Sub

Gruß Uwe
@Kuwer

wenn ich dein Code ausführe kommt eine Fehlermeldung das keine Zellen gefunden wurden.
Hallo Claudia,

willst Du vielleicht die erste leere Zelle in Spalte B ermitteln?

Gruß
Max
Hallo Max,

Zitat:willst Du vielleicht die erste leere Zelle in Spalte B ermitteln?

Ja, das will sie, halt ab Zelle B5.
Offensichtlich gibt es da keine wirklich leeren Zellen.

Gruß Uwe
Hallo Uwe,

ich hab das auch mal getestet.
Wenn unterhalb der Zelle B5 alle Zellen Leer sind, dann tritt der Fehler auf.
Hallöchen,

ist ja putzig. Die Erklärung wäre, dass das nur auf den benutzten Bereich wirkt. Dabei ist unerheblich, ob dieser durch einen Eintrag in Spalte B begrenzt wird oder Spalte B nach Zeile 5 leer ist. Schreibt mal in eine andere Spalte weiter unten was rein, dann füllt das Makro bis dahin und dann kommt der Fehler wieder.
Hi André,

SpecialCells bezieht sich definitiv auf den UsedRange der Tabelle. Das ist (leider) so! :(

Gruß Uwe
Hallo Zusammen,

so geht es aber garantiert in die erste leere Zeile von unten gesehen:

Code:
Sub aab()
  Worksheets("Eingabe").Range("A6,C6,D6,E6,F6,J6,K6").Copy Worksheets("Früh").Cells(Rows.Count, 2).End(xlUp).Offset(1)
End Sub

Gruß Uwe
Hallo,

und so geht es garantiert erst ab Zeile 5 los:

Code:
Sub ErsteFreieVonUnten()
  With Worksheets("Früh")
    Worksheets("Eingabe").Range("A6,C6,D6,E6,F6,J6,K6").Copy .Cells(Application.Max(5, .Cells(Rows.Count, 2).End(xlUp).Row), 2)
  End With
End Sub

Aber offensichtlich interessiert Claudia das Thema gar nicht mehr.

Gruß Uwe
Seiten: 1 2