Objekt- oder anwendungsbezogener Fehler???

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
Bild

Betrifft: Objekt- oder anwendungsbezogener Fehler???
von: Adrian
Geschrieben am: 17.09.2015 07:20:57

Hallo Freunde, ich bin mal wieder am verzweifeln. Folgender Code löst oben gennanten Fehler aus:


Private Sub Worksheet_Change(ByVal Target As Range)
Dim e
If Not Intersect(Target, Columns("X:X").Cells) Is Nothing And Target.Offset(0, -3) = "" Then
      If Target.Text = Sheets(2).Cells(5, 5).Value Then
      Do
         e = InputBox("Please enter the DFMEA need cancelled date: (dd.mm.yyyy)")
         Loop Until IsDate(e) = True
         Target.Offset(0, -3) = CDate(e)
      End If
   End If
   
If Not Intersect(Target, Columns("X:X").Cells) Is Nothing And Target.Offset(0, -9) = "" Then
      If Target.Text = Sheets(2).Cells(6, 5).Value Then
      Do
         e = InputBox("Please enter the DFMEA need validated date: (dd.mm.yyyy)")
         Loop Until IsDate(e) = True
         Target.Offset(0, -9) = CDate(e)
      End If
   End If
   
   
   If Not Intersect(Target, Columns("X:X").Cells) Is Nothing And Target.Offset(0, -5) = "" Then
      If Target.Text = Sheets(2).Cells(12, 5).Value Then
      Do
         e = InputBox("Please enter the Final report delivered date: (dd.mm.yyyy)")
         Loop Until IsDate(e) = True
         Target.Offset(0, -5) = CDate(e)
      End If
   End If
end sub
es funktioniert alles einwandfrei solange ich die letzten beiden Schleifen aus dem code entferne, diese sind jedoch nur angepasste kopien der ersten... wtf mache ich falsch?
Danke für eure Hilfe...
Liebe grüße
Adrian

Bild

Betrifft: AW: Objekt- oder anwendungsbezogener Fehler???
von: fcs
Geschrieben am: 17.09.2015 08:36:58
Hallo Adrian,
wahrscheinlich bereiten
Target.Offset(0, -9) und Target.Offset(0, -5) die Probleme, wenn Zellen in den Spalten A bis I änderst. Dann ergibt sich eine Spalte Links von Spalte 1 (A).
Du darfst hier dann nicht das "And" in der If-Zeile benutzen, sonder musst für die Prüfung der Offset-Spalte jeweils eine separate If-Zeile einfügen.
Gruß
Franz

If Not Intersect(Target, Columns("X:X").Cells) Is Nothing Then
    If Target.Offset(0, -9) = "" Then
      If Target.Text = Sheets(2).Cells(6, 5).Value Then
      Do
         e = InputBox("Please enter the DFMEA need validated date: (dd.mm.yyyy)")
         Loop Until IsDate(e) = True
         Target.Offset(0, -9) = CDate(e)
      End If
   End If
End If


Bild

Betrifft: AW: Objekt- oder anwendungsbezogener Fehler???
von: Adrian
Geschrieben am: 17.09.2015 11:54:07
Ha, wunderbar! Vielen Dank :)

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Objekt- oder anwendungsbezogener Fehler???"