Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: 2 verschieden VBAs zusammen bringen, laufen lassen

2 verschieden VBAs zusammen bringen, laufen lassen
28.11.2018 20:58:09
Frank
Hallo zusammen,
ich benötige eure Hilfe.
Ich habe den VBA-Code:

Private Sub Workbook_Open()
Dim raZelle As Range, raBereich As Range
With Worksheets("Kalender")
.Unprotect "dragon"
Set raBereich = .Range("C7:C217")
For Each raZelle In raBereich
If raZelle.Value 

der mir die Zeilen nach bestimmten Kriterien sperrt.
Nun habe ich noch einen VBA-Code (s.u.) gefunden, der mir Änderungen, die im Reiter „Kalender“ vorgenommen werden, im Reiter „Protokolle“, protokollieren kann.
Wie bringe ich die beiden Codes zusammen, bzw. was muss ich wie eingeben, damit beide funktioniern?
Protokollierungs – VBA – Code :

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim ErsteFreieZeile As Long
If Target.Count > 1 Then Exit Sub
If Sh.Name = "Protokoll" Then Exit Sub
If Intersect(Target, Sh.Range("A1:AK220")) Is Nothing Then Exit Sub
With Sheets("Protokoll")
ErsteFreieZeile = .Cells(Rows.Count, 1).End(xlUp).Row + 1
.Cells(ErsteFreieZeile, 1) = Sh.Name
.Cells(ErsteFreieZeile, 2) = Target.Address(0, 0)
.Cells(ErsteFreieZeile, 3) = Target.Value
.Cells(ErsteFreieZeile, 5) = Date
.Cells(ErsteFreieZeile, 6) = Time
.Cells(ErsteFreieZeile, 7) = Environ("username")
End With
End Sub

Einen angenehmen Abend
Frank
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: 2 verschieden VBAs zusammen bringen, laufen lassen
28.11.2018 22:08:42
Werner
Hallo Frank,
was meinst du denn mit zusammenbringen?
Der erste Code ist im Codemodul von "DieseArbeitsmappe" und wird beim Start der Datei ausgeführt und der zweite Code gehört ins Codmodul vom Blatt "Kalener" und du brauchst hier das Worksheet_Change Ereignis und nicht das Sheet_Change
Änderungen:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ErsteFreieZeile As Long
If Target.Count > 1 Then Exit Sub
If Intersect(Target, Range("A1:AK220")) Is Nothing Then Exit Sub
With Sheets("Protokoll")
ErsteFreieZeile = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
.Cells(ErsteFreieZeile, 1) = Me.Name
.Cells(ErsteFreieZeile, 2) = Target.Address(0, 0)
.Cells(ErsteFreieZeile, 3) = Target.Value
.Cells(ErsteFreieZeile, 5) = Date
.Cells(ErsteFreieZeile, 6) = Time
.Cells(ErsteFreieZeile, 7) = Environ("username")
End With
End Sub
Gruß Werner
Anzeige
AW: 2 verschieden VBAs zusammen bringen, laufen lassen
29.11.2018 18:42:48
Frank
Hallo Werner,
vielen Dank für die Information.
Jetzt habe ich wieder was gelernt und es funktioniert.
Gruß Frank
Gerne u. Danke für die Rückmeldung. o.w.T.
29.11.2018 19:51:39
Werner
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige