Microsoft Excel

Herbers Excel/VBA-Archiv

Problem mit VBA Script


Betrifft: Problem mit VBA Script von: AxelF1977
Geschrieben am: 13.09.2019 10:02:45

Hallo zusammen,

ich hatte hier vor einigen Monaten großartige Hilfe mit einem Script, was soweit tut, was es soll. Allerdings verursacht es auch Fehler.

Die Zellen, die Kopiert werden über das Script, zeihen sich die Werte per SVERWEIS. Die Werte werden dann dauerhaft kopiert, um eine Auswertung nicht zu verfälschen, da sich die Werte, die per SVERWEIS gezogen werden, ändern können.

Die Excel Tabelle stürzt ab, wenn ich eine Zeile löschen muss. Die Tabelle stürzt auch ab, _ falls der SVERWEIS nichts findet (Rechtschreibfehler z.B.), und nichts kopiert werden kann.

   Private Sub Worksheet_Change(ByVal Target As Range)
   
   
   
    With Sheets("Tabelle1")        'Tabellenname anpassen
           If .Cells(Target.Row, "N") = "" Then .Cells(Target.Row, "N") = .Cells(Target.Row, "C")
           If .Cells(Target.Row, "O") = "" Then .Cells(Target.Row, "O") = .Cells(Target.Row, "D")
           If .Cells(Target.Row, "F") = "" Then .Cells(Target.Row, "F") = .Cells(Target.Row, "E")
           If .Cells(Target.Row, "H") = "" Then .Cells(Target.Row, "H") = .Cells(Target.Row, "G")
           If .Cells(Target.Row, "P") = "" Then .Cells(Target.Row, "P") = .Cells(Target.Row, "I")
           If .Cells(Target.Row, "Q") = "" Then .Cells(Target.Row, "Q") = .Cells(Target.Row, "J")
           If .Cells(Target.Row, "Y") = "" Then .Cells(Target.Row, "Y") = .Cells(Target.Row, "X")
    End With
    
   End Sub

Ich habe leider keine Ahnung wie ich das Script ändern muss, damit dieser Fehler nicht mehr auftreten.
  

Betrifft: AW: Problem mit VBA Script von: 1712874.html
Geschrieben am: 13.09.2019 12:18:36

Hallo,
in welchem Blatt befindet sich der Code?
Auf jeden Fall solltest du die Events abschalten.

Private Sub Worksheet_Change(ByVal Target As Range)
    On Error GoTo ERREXIT
    Application.EnableEvents = False
    
    With Sheets("Tabelle1")        'Tabellenname anpassen
      If .Cells(Target.Row, "N") = "" Then .Cells(Target.Row, "N") = .Cells(Target.Row, "C")
      If .Cells(Target.Row, "O") = "" Then .Cells(Target.Row, "O") = .Cells(Target.Row, "D")
      If .Cells(Target.Row, "F") = "" Then .Cells(Target.Row, "F") = .Cells(Target.Row, "E")
      If .Cells(Target.Row, "H") = "" Then .Cells(Target.Row, "H") = .Cells(Target.Row, "G")
      If .Cells(Target.Row, "P") = "" Then .Cells(Target.Row, "P") = .Cells(Target.Row, "I")
      If .Cells(Target.Row, "Q") = "" Then .Cells(Target.Row, "Q") = .Cells(Target.Row, "J")
      If .Cells(Target.Row, "Y") = "" Then .Cells(Target.Row, "Y") = .Cells(Target.Row, "X")
    End With
  ERREXIT:
    Application.EnableEvents = True
  End Sub

Gruß
Rudi
  

Betrifft: AW: Problem mit VBA Script von: 1712877.html
Geschrieben am: 13.09.2019 12:27:36

Hallo Rudi,

Danke für die schnelle Antwort. Die gesamte Tabelle hat Tabellen Blätter Januar - Dezember, für jeden Monat gibt es dieses VBA mit dem entsprechenden Monat. Daher stand als Demo Tabelle1 als Sheet Name.

  

Betrifft: AW: Problem mit VBA Script von: 1712908.html
Geschrieben am: 13.09.2019 13:50:28

Hallo nochmal,

nachdem ich testweise mal die Änderungen von Dir eingebaut habe, kopiert das Script die Werte nun leider nicht mehr, die Fehler sind aber dafür weg.

Beiträge aus dem Excel-Forum zum Thema "Problem mit VBA Script"