Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

VBA code an Excel 2007 anpassen
#1
Liebes Forum,

folgenden Code habe ich mit einiger Hilfe so hinbekommen, dass er in excel 2010 und 2013 genau das tut was er soll.

Leider klappt es in 2007 noch nicht so ganz. Ich verstehe aber nicht warum. Kann mir jemand einen Stoss in die richtige Richtung geben?

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Z As Long
    If Target.Count = 1 Then
        If Not Intersect(Range("I11:I1000"), Target) Is Nothing Then
            ActiveSheet.Unprotect "heute"
            Application.EnableEvents = False
            Target.Offset(0, 1).Value = VBA.Date
            Application.EnableEvents = True
            ActiveSheet.Protect "heute"
        Else
            If Not Intersect(Target, Range("W11:W1000")) Is Nothing Then
                ActiveSheet.Unprotect "heute"
                Application.EnableEvents = False
                Target.Offset(0, 1) = Target.Offset(0, 1) + 1
                ActiveSheet.Protect "heute"
                If Intersect(Target, Range("W11:W1000")) Is Nothing Then Exit Sub
                ActiveSheet.Unprotect "heute"
                With Sheets("CustomerVisits")
                    Z = .Range("G1")
                    .Range("G1") = .Range("G1") + 1
                    .Range("A" & Z) = Target.Value
                    .Range("B" & Z) = Target.Offset(0, -18).Value
                    .Range("C" & Z) = Target.Offset(0, -20).Value
                End With
                Application.EnableEvents = True
                ActiveSheet.Protect "heute"
            End If
        End If
    End If
End Sub

Vielen Dank und liebe Gruesse,

Christoph
Antworten Top
#2
Hallo Christoph,

wo hängt es denn genau?

Normalerweise sollte der Code laufen.
Ich vermute, es hängt bei Date. Dort könnte es hängen, wenn z.B. irgendwelche Verweise definiert sind, die keiner braucht oder die z.B. versionsbedingt nicht verfügbar sind. Es wäre u.a. in dem Zusammenhang auf jeden Fall auch von Vorteil, wenn Du die Datei in der niedrigsten Version erstellst.

Es gibt eventuell 3 Stellen, wo man was anders machen könnte.

1. bei Protect / Unprotect noch Password:= dazu schreiben
2. bei den Ranges noch .Value dazu schreiben
3. Statt VBA.Date nur Date schrieben
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top


Gehe zu:


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