Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Überprüfen, ob best. Spalt. letzte Zeile identisc

Betrifft: Überprüfen, ob best. Spalt. letzte Zeile identisc von: Peter
Geschrieben am: 19.11.2014 10:33:26

Guten Tag

Mein Makro soll nur ablaufen, wenn der letzte Eintrag in den Spalten A, B, C, E, F und G in der gleichen Zeile steht. Das ist hier der Fall. Wenn ich die Teilargumente (z.B. Me.Cells(Rows.Count, 1).End(xlUp).Row) im Direktbereich auswerte, erhalte ich bei allen relevanten Spalten 453, ich sollte also die MsgBox nicht erhalten.

Was mache ich falsch?

Gruss, Peter

Sub XXX()
...
If Me.Cells(Rows.Count, 1).End(xlUp).Row = _
        Me.Cells(Rows.Count, 2).End(xlUp).Row = _
        Me.Cells(Rows.Count, 3).End(xlUp).Row = _
        Me.Cells(Rows.Count, 5).End(xlUp).Row = _
        Me.Cells(Rows.Count, 6).End(xlUp).Row = _
        Me.Cells(Rows.Count, 7).End(xlUp).Row Then

Else
MsgBox "Letzter Eintrag der Spalten A, B, C, E, F und G müssen in der gleichen Zeile stehen"
Exit Sub
End If
...

''' Mein Code

End Sub

  

Betrifft: AW: Überprüfen, ob best. Spalt. letzte Zeile identisc von: hary
Geschrieben am: 19.11.2014 11:15:59

Moin Peter

Dim letzte As Long
 letzte = Columns("A:G").Find(what:="*", LookIn:=xlValues, lookat:=xlWhole, searchdirection:= _
xlPrevious).Row
  If Application.CountBlank(Cells(letzte, 1).Resize(1, 7)) > 0 Then
   MsgBox "Letzter Eintrag der Spalten A, B, C, E, F und G müssen in der gleichen Zeile stehen"
    Exit Sub
  Else
    'dein Code
  End If
End Sub

gruss hary


  

Betrifft: AW: Überprüfen, ob best. Spalt. letzte Zeile identisc von: Peter
Geschrieben am: 19.11.2014 11:33:18

Hallo Hary
ich danke dir.
Soweit ich sehe, hast du nicht berücksichtigt, dass irrelevant ist, wo der letzte Eintrag in Spalte D steht.

Gruss, Peter


  

Betrifft: AW: Überprüfen, ob best. Spalt. letzte Zeile identisc von: hary
Geschrieben am: 19.11.2014 13:28:53

Moin
Jepp,war einfacher. ;-))

Dim letzte As Long
  letzte = Range("A:C,E:G").Find(what:="*", LookIn:=xlValues, lookat:=xlWhole, searchdirection:= _
 _
 xlPrevious).Row
   If Application.CountA(Cells(letzte, 1).Resize(1, 3), Cells(letzte, 5).Resize(1, 3)) < 6 Then
    MsgBox "Letzter Eintrag der Spalten A, B, C, E, F und G müssen in der gleichen Zeile stehen" _

     Exit Sub
   Else
     'dein Code
   End If

gruss hary


  

Betrifft: AW: Überprüfen, ob best. Spalt. letzte Zeile identisc von: Peter
Geschrieben am: 19.11.2014 14:44:39

Hallo hary
Vielen Dank. So ist es prima.
Gruss, Peter


  

Betrifft: Vergleich geht so nicht von: Frank
Geschrieben am: 19.11.2014 12:45:47

Hallo Peter,

das liegt wohl an der Verkettung der "="

Sub test()
If 1 = 1 Then

Else
MsgBox "???"
End If
End Sub

gibt keine MsgBox aus.
Sub test()
If 1 = 1 = 1 = 1 Then

Else
MsgBox "???"
End If
End Sub

tut das sehr wohl.
Da hilft wahrscheinlich nix anderes, als den Vergleich aufzudröseln oder anders anzugehen.

Grüsse, Frank


  

Betrifft: AW: Vergleich geht so nicht von: Peter
Geschrieben am: 19.11.2014 14:46:59

Hallo Frank
Danke für das Aufzeigen durch die Vereinfachung.
Weshalb die =-VErkettung wohl nicht logisch ist?
Doch hary hat mir jetzt eine Alternative aufgezeigt :-)

Gruss, Peter


 

Beiträge aus den Excel-Beispielen zum Thema "Überprüfen, ob best. Spalt. letzte Zeile identisc"