Microsoft Excel

Herbers Excel/VBA-Archiv

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

Fehler abfangen

Betrifft: Fehler abfangen von: Stefan Glander
Geschrieben am: 24.11.2014 07:48:48

Guten Morgen Forum,

nachdem ich nun gestern mit Hilfe meine erste Abfrage erstellt habe, versuche ich nun
alle Fehler abzufangen.
Im Moment ist es so das die Zellen B2, C2 und D2 in dieser Reihenfolge abgefragt werden. Stimmt eine Wert nicht, kommt die entsprechende MsGBox, aber leider eben nur für den "ersten Fehler"
Wie bekomme ich es nun hin, das wenn die Werte in 2 Zellen nicht stimmen, das mir die dementsprechende MsGBox angezeigt wird,
Beispiel: B2 und D2 sind die Werte nicht wahr, dann Msg B2 und D2 sind fehlerhaft.

Lieben Gruß

Stefan

https://www.herber.de/bbs/user/93968.xlsm

  

Betrifft: AW: Fehler abfangen von: hary
Geschrieben am: 24.11.2014 09:41:31

Moin Stefan
Eine Moeglichkeit.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim strFalsch As String
Dim i As Long
If Not Intersect(Target, Range("$B$2:$D$2")) Is Nothing Then
 For i = 2 To 4
  If Cells(2, i) <> Worksheets("Tabelle2").Cells(2, i + 9) Then
   strFalsch = strFalsch & Cells(2, i).Address(False, False) & " "
  End If
 Next
   If strFalsch = "" Then
    MsgBox "Werte passen!"
   Else
    MsgBox "Werte passen nicht in: " & strFalsch
   End If
End If
End Sub

gruss hary


  

Betrifft: AW: Fehler abfangen von: Stefan Glander
Geschrieben am: 24.11.2014 10:02:19

Hallo Hary,

kannst Du mir bitte die Zeilen erklären7 kommentieren?

If Cells(3, i) <> Worksheets("Tabelle2").Cells(3, i + 9) Then
strFalsch = strFalsch & Cells(3, i).Address(False, False) & " "

Gruß
Stefan


  

Betrifft: AW: Fehler abfangen von: hary
Geschrieben am: 24.11.2014 10:12:56

Moin
Bei mir steht nix von 3.Zeile

For i = 2 To 4   'Schleife fuer Spalten B=2 C=3 D=4
   'Cells(Zeile2,i(Spaltenummer)) <> i(Spaltennummer) + 9  heisst 2+9=11 SpalteK ist die 11.  _
Spalte
  If Cells(2, i) <> Worksheets("Tabelle2").Cells(2, i + 9) Then
   strFalsch = strFalsch & Cells(2, i).Address(False, False) & " "

gruss hary


  

Betrifft: AW: Danke o.T von: Stefan Glander
Geschrieben am: 24.11.2014 12:00:28

.


  

Betrifft: AW: Fehler abfangen von: Matthias L
Geschrieben am: 24.11.2014 09:44:43

Hallo

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo Fehler
If Target.Count = 1 And Target.Value <> "" Then
 If Not Intersect(Target, Range("$B$2:$D$2")) Is Nothing Then
  If Target.Value <> Sheets("Tabelle2").Range(Target.Offset(, 9).Address).Value Then
   MsgBox "Werte passen nicht in " & Target.Address, vbInformation
  End If
 End If
End If
Fehler:
End Sub
Gruß Matthias


 

Beiträge aus den Excel-Beispielen zum Thema "Fehler abfangen"