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 - Änderungsverfolgung .Fehler
#1
Wink 
Hallo zusammen,

unzwar wollte ich in meiner Exceldatei eine Änderungsverfolgung per VBA einbauen.
Ich habe paar Fehler eingebaut in der Codierung und wollte daher mal nachfragen, was genau ich hier falsch gemacht habe!

Ich bitte daher um eure Hilfe den Code packe ich euch rein.

Ich bedanke mich im Voraus und warte gespannt auf die Auflistung meiner Fehler!!

Grüße der blutige Anfänger! 15
Code:
Private Sub ThisWorkbook()
Dim wksTab As Worksheet
Dim IngZeileFrei As Long

MsgBox ("Alle Änderungen in der Mappe werden automatisch dokumentiert")

Application.EnableEvents = False

With Worksheet_Zugangsdokumentation
.Range("A" & IngZeileFrei).Value = Date
.Range("B" & IngZeileFrei).Value = Environ("username")
.Range("C" & IngZeileFrei).Value = Time
End With

Application.EnableEvents = True

Else
ThisWorkbook.Close savechanges:=False
End If

End Sub


Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim IngZeileFrei As Long
Dim rngZeile As Range

Select Case Sh.CodeName

Case "tbl_Start", "tbl_Rückverfolgung", "tbl_Auftragseinholung, "tbl_Berechnung+Speichern"
'bei diesen Tabelle keine Änderungen dokumentieren

Case Else
For Each rngZeile In Target
With tbl_Rückverfolgung
IngZeileFrei = .Range("A" & .Rows.Count).End(xlUp).Row + 1
.Range("A" & IngZeileFrei).Value = Date
.Range("B" & IngZeileFrei).Value = Time
.Range("C" & IngZeileFrei).Value = Environ("username")
.Range("D" & IngZeileFrei).Value = Sh.Name
.Range("E" & IngZeileFrei).Value = rngZeile.Address
.Range("F" & IngZeileFrei).Value = "'" & rngZeile.Formula

End With

Next rngZeile

End Select


End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim rngTreffer As Range
Dim wksTab As Worksheet

With tbl_Zugangsdokumentation

    Set rngTreffer = .Range("B:B").Find(what:=Environ("username"), _
    lookat:=xlWhole, searchdirection:=xlPrevious
   
    If Not rngTreffer Is Nothing Then
    .Cells(rngTreffer.Row, 5).Value = Time
    End If
    For Each wksTab In ThisWorkbook.Worksheets
    Select Case wksTab.CodeName
    Case "tbl_Auftragseinholung"
    'keine Aktion, diese Tabelle soll immer sichtbar sein
    Case Else
    wksTab.Visible = xlSheetVeryHidden
    End Select
    Next wksTab
   
End With

ThisWorkbook.Save

End Sub
Antworten Top
#2
Du möchtest wohl nicht mitteilen wo Fehler auftreten? 
den Ersten verrate ich dir.  "Option explicit" fehlt 
der Zweite: vielleicht kein Fehler aber unschön. Eine Sub sollte nicht wie ein reservierter Objektname heissen. 
den Dritten erzählst du mir.
Antworten Top
#3
Hallo Ralf,
unzwar bekomme ich folgende Fehler angezeigt:
1. Fehler beim Komprimieren: Variable nicht definiert.
2. bei Case "tbl_Start", "tbl_Rückverfolgung", "tbl_Auftragseinholung, "tbl_Berechnung+Speichern" Fehler Anweisungsende wird erwartet
3. Else ohne if aber wo genau finde ich leider nicht raus...

Ich danke dir!!
Antworten Top
#4
(01.06.2022, 17:44)TheAgent477 schrieb: 1. Fehler beim Komprimieren: Variable nicht definiert.
  welche wird denn markiert? 


Zitat:2. bei Case "tbl_Start", "tbl_Rückverfolgung", "tbl_Auftragseinholung, "tbl_Berechnung+Speichern" Fehler Anweisungsende wird erwartet
da fehlt ein Anführungszeichen "tbl_Auftragseinholung"

Zitat:3. Else ohne if aber wo genau finde ich leider nicht raus...
with - end with, if- elseif - else  - end if  müssen ordentlich strukturiert werden. Fehlt eins davon, dann passiert sowas. 
wenn if mehrzeilig ist, dann muß ein endif  den Block schliessen. 
nach Application.EnableEvents = True  gehts mit einem else weiter. Wo is denn das zughörige IF? 
Antworten Top
#5
Und Bitte!
Was bedeutet unzwar?
Der Duden gibt nix her …
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#6
Hallo erstmal,
relativ unpassend zum Thema aber ja es sollte "und zwar" heißen.
Nebenbei angemerkt schreibt man "Bitte" immer klein außer am Satzanfang.

Grüße
Antworten Top
#7
(01.06.2022, 17:59)RPP63 schrieb: Und Bitte!
Was bedeutet unzwar?
Der Duden gibt nix her …

gibt's nen Dialekt-Duden?  Da könnte das drinstehen.
Antworten Top
#8
(01.06.2022, 18:23)TheAgent477 schrieb: Nebenbei angemerkt schreibt man "Bitte" immer klein außer am Satzanfang.

Steht wo?
Man könnte darüber streiten, ob ein Komma zur Unterscheidung des Substantivs notwendig ist.
Aber davon ab:
Zitat:1. Fehler beim Komprimieren: Variable nicht definiert.
Dazu fällt mir erst mal nixxx ein!
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top


Gehe zu:


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