leere Zelle ermitteln
#61
Ich überwache ja im Überwachungsfenster. Die zu prüfende Zelle. Der Typ ist Variant/Date solange die Zelle gefüllt ist. ist sie lee ändert sich das in Variant/Empty, läßt sich aber  auch mit "Is Emty" nicht ermitteln.
Top
#62
Debug.Print, das sollte ich mir mal wieder zu Gemüte führen. Ich habe Mitte Febr. einen üblen "Crash" erlebt, der offenbar auch mein Gedächnis beeinträchtigt hat. Bin gerede dabei, die Lücken weider zu füllen...
Top
#63
Hi,

hmm, ich habe mir jetzt nur die letzten paar Beiträge angeschaut, aber deinen Code verstehe ich nicht!
Was hat das mit Leerzellen zu schaffen?

Code:
Sub Test_leereZelle() 'der Name passt auch nicht da wird keine leere Zelle gesucht?
Cells(2, 2).Value = "und es "
Cells(3, 2).Value = "geht doch "
For i = 1 To 5
    Cells(i, 2).Select 'Wozu? das ist sinnlos
    'warum sind die Einträge in der Spalte B gemacht und die Abfrage bezieht sich auf ZEILE 2?
    If Cells(2, i) <> "" Then ' warum zuerst was prüfen ob was drinnensteht wenn ohnehin nach einem Leertasteneintrag gesucht wird?
        If Cells(2, i).Value = " " Then
            Stop 'für was sind die Stop?
        End If
    End If
Next i
Cells(4, 2).Value = "schade" 'für was ist das?
Stop 'für was sind die Stop?
Cells.Select 'warum zuerst was markieren?
Cells.Clear
End Sub
'versuche es einmnal so ;)
Sub Test_Space()
Dim i As Long
Cells(2, 2).Value = "und es "
Cells(3, 2).Value = "geht doch "
Cells(4, 2).Value = " "
For i = 1 To 5
    If Cells(i, 2).Value = " " Then
        MsgBox " in Zelle: " & Cells(i, 2).Address(0, 0) & " steht ein Leerzeichen ganz alleine da"
    End If
Next i
MsgBox "es wird jetzt gelöscht"
Cells.Clear
End Sub
lg Chris
Feedback nicht vergessen.
[Bild: v.gif]
3a2920576572206973742064656e20646120736f206e65756769657269672e
Top
#64
Debug.Print, das sollte ich mir mal wieder zu Gemüte führen. Ich habe Mitte Febr. einen üblen "Crash" erlebt, der offenbar auch mein Gedächnis beeinträchtigt hat. Bin gerede dabei, die Lücken weider zu füllen...
Top
#65
Hallo Chris.

In Spalte 3 stehen - Im 1. Durchgang großen Makro - von Zeile 60 bis 76 Daten dann kommen 2 Leerzeilen. Der Block von 60 bis 76 muss anschließend markiert, copiert und in eine andere Tabelle eingefügt werden. Die ganzen .select-Anweisungen dienen nur zu meiner persönlichen Orientierung, fallen im Endzustand raus.

Ja, das kleine war ja nur ein Testmakro um die Zweifler hier zu "bedienen"...
Top
#66
@all:

Im Grunde genommen geht es darum, wie man eine leere Zelle finden kann, Nach dem es in E_365 auch nicht geht glaube ich auch nich mehr so an einen Excelfehler.

Ich hatte beim Übergang von E_2003 auf 2007 auch ein Problem:


Code:
   'Windows(AktuelleMappe).Activate
   ActiveWorkbook.Activate
vielleicht ist die Abfrage auf " " nicht mehr passend für Versionen ab 2007???
Top
#67
Hallo,

MsgBoxen und Direkfenster gemischt

Code:
Sub Test_leereZelle()
Dim i As Long
Dim lRow As Long


Cells(2, 2).Value = "und es "
Cells(3, 2).Value = "geht doch "
For i = 2 To 5
   Debug.Print "Schleifenwert " & i
   lRow = Cells(i, 2).End(xlDown).Row + 1
   MsgBox "Erste freie Zelle ist " & Range("B" & lRow).Address(0, 0)
   MsgBox "Zelle " & Cells(i, 2).Address(0, 0) & vbCr & "Zellinhalt """ & Cells(i, 2).Value & """" & vbCr _
   & "Ist sie leer? " & IsEmpty(Cells(i, 2).Value) & vbCr & "Ist sie gefüllt? " & (Cells(i, 2).Value <> "")
   Cells(i, 2).Select
   If Cells(i, 2) <> "" Then
       Debug.Print "1. Bedingung: Zelle ist " & IIf(Cells(i, 2) <> "", "gefüllt", "leer")
       If Cells(i, 2).Value = " " Then
           Debug.Print "2. Bedingung: Zelle ist " & IIf(Cells(i, 2) = " ", "leer", "gefüllt")
           Stop
       End If
   End If
Next i
Cells(4, 2).Value = "schade"

Stop
Cells.Select
Cells.Clear
End Sub
Gruß Stefan
Win 10 / Office 2016
Top
#68
Hallöchen,
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top
#69
Hi Stefan,

(21.07.2015, 15:49)Steffl schrieb: MsgBoxen und Direkfenster gemischt

sag ich doch: mit diesem Code wird im Falle einer vollen Zelle in der zweiten Schleife kein Ergebnis kommen.
Schreib irgendwo in B2-B8 etwas rein oder schreib nirgends was rein, es kommt nie: "die Zelle ist leer" und das Makro stoppt auch nicht aufgrund Schleife 2.
z.B.: Zeile 3 und 4 gefüllt, sowie 6 gefüllt:

Hier Dein Code auf das Wesentliche gekürzt:
Sub test()
Dim i As Long

For i = 2 To 8
   Debug.Print "Schleifenwert " & i
   If Cells(i, 2) <> "" Then
       Debug.Print "1. Bedingung: Zelle ist " & IIf(Cells(i, 2) <> "", "gefüllt", "leer")
                  MsgBox ("Stop, da voll")
       If Cells(i, 2).Value = " " Then
           Debug.Print "2. Bedingung: Zelle ist " & IIf(Cells(i, 2) = " ", "leer", "gefüllt")
                  MsgBox ("Stop, da leer")
           Stop
       End If
   End If
Next i

End Sub


VBA/HTML - CodeConverter für Office-Foren, AddIn für Excel/Word 2000-2013 - komplett in VBA geschrieben von Lukas Mosimann. Projektbetreuung durch mumpel

Code erstellt und getestet in Office 15


Im Direktfenster steht:
Schleifenwert 2
Schleifenwert 3
1. Bedingung: Zelle ist gefüllt
Schleifenwert 4
1. Bedingung: Zelle ist gefüllt
Schleifenwert 5
Schleifenwert 6
1. Bedingung: Zelle ist gefüllt
Schleifenwert 7
Schleifenwert 8

Wo kommt da jetzt die 2. Bedingung?


Auch mit Deinem kompletten Makro wird nie aufgrund der zweiten Bedingung (in Schleife 2) gestoppt.

Denn: die geprüfte Zelle ist entweder voll oder leer, nie beides gleichzeitig.
Top
#70
Hallo Ralf,

ich wollte dies nur dem TE aufzeigen, was bei seinem Code rauskommt. Das es so ist, wie Du es geschrieben hast, weiß ich.
Gruß Stefan
Win 10 / Office 2016
Top


Gehe zu:


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