Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1860to1864
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zwei VBA Codes kombinieren

Zwei VBA Codes kombinieren
05.01.2022 09:21:23
Milos
Liebes Forum
Ich möchte mehrere Excel-Register mit zwei verschiedenen VBA-Scripts ergänzen. Das erste Script schreibt mir das aktuelle Datum in Zellen der Spalte B wenn ich in Zellen der Spalte X einen Eintrag mit Enter bestätige. Das zweite Script soll die Registerfarbe anpassen wenn in einer bestimmten Zelle (AI4) eine "0" oder eine "1" steht. Beide Scripts funktionieren alleine für sich ohne Probleme. Gemeinsam lassen sie sich aber nicht ausführen weil "Worksheet_Change" doppelt vorkommt und deshalb mehrdeutig ist. Die Lösung wäre, die beiden Anweisungen irgendwie in einer einzigen zu kombinieren. Leider scheitere ich dabei an meinen bescheidenen VBA-Kenntnissen. Kann mir jemand bitte etwas Support geben, damit ich dieses Problem lösen kann!? Vielen Dank im Voraus!
Gruss, Miloš

Private Sub Worksheet_Change(ByVal r As Range)
s = r.Column
rr = r.Row
If s = 24 Then
Cells(rr, s - 22).Value = Now
End If
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$AI$4" Then
If Target = "0" Then
ActiveSheet.Tab.Color = RGB(248, 203, 173)
Else
ActiveSheet.Tab.Color = RGB(124, 205, 124)
End If
End If
End Sub

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zwei VBA Codes kombinieren
05.01.2022 09:33:48
Rudi
Hallo,

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$AI$4" Then
If Target = "0" Then
ActiveSheet.Tab.Color = RGB(248, 203, 173)
Else
ActiveSheet.Tab.Color = RGB(124, 205, 124)
End If
Else
If Target.Column = 24 Then
Target.Offset(, -22) = Now
End If
End If
End Sub
Gruß
Rudi
AW: Zwei VBA Codes kombinieren
05.01.2022 11:23:20
Milos
Hallo Rudi
Vielen Dank für den Code! Das Datum wird wie erwartet in die entsprechende Zelle eingetragen. Das Einfärben der Reiter macht jedoch Schwierigkeiten. Wenn ich die Werte "0" oder "1" von Hand eintrage und mit Enter bestätige, dann werden die Reiter korrekt eingefärbt. Bei mir werden die beiden Zahlen aber mit eine Formel ermittelt, und deshalb aktualisiert sich die Reiterfarbe nicht automatisch. Erst nach einem Doppelklick in die entsprechende Zelle gefolgt von einem Enter führt zum korrekten Einfärben. Kann diese "Aktualisierung" im Script irgendwie ergänzt werden?
Danke für die Hilfe!!!
LG, Miloš
Anzeige
AW: Zwei VBA Codes kombinieren
05.01.2022 14:29:51
Rudi
das Change-Event wird durch Berechnung nicht ausgelöst. Du musst das Calculate-Event nutzen.

Private Sub Worksheet_Calculate()
If Range("AI4") = 0 Then
Me.Tab.Color = RGB(248, 203, 173)
Else
Me.Tab.Color = RGB(124, 205, 124)
End If
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 24 Then
Target.Offset(, -22) = Now
End If
End Sub
Gruß
Rudi
AW: Zwei VBA Codes kombinieren
05.01.2022 17:07:01
Milos
Hallo Rudi
Es funktioniert!!! Vielen Dank für deine schnelle Hilfe!
LG, Miloš
Das sieht man am 2.EreignisEventCode, ...
05.01.2022 09:38:36
Luc:-?
…Milos,
dort fragst du den Geltungsbereich ab. Folglich kannst du den 1. auf ähnliche Weise dort einbinden, denn der sollte ohnehin nicht ohne F-Meldung fktionieren (→ der Kopf einer EventProcedure darf nicht verändert wdn!).
Falls das nicht reicht, gibt's außerdem noch 2 weitere Möglichkeiten, EreignisProzeduren unterzubringen, bei der Mappe (DieseArbeitsmappe - bereits vorgefertigt) und bei der Applikation (muss extra angelegt wdn).
Außerdem ist es ohnehin sinnvoll, eine solche Prozedur quasi nur als Verteiler zu nutzen und die eigentl Prozedur per eindeutig definierter Bedingung aus ihr aufzurufen (zB mit Call).
Gruß, Luc :-?
Anzeige
AW: Das sieht man am 2.EreignisEventCode, ...
05.01.2022 10:41:25
Milos
Hallo Luc
Danke für deine Antwort! Leider sind meine VBA-Kenntnisse zu rudimentär um mit deinen Tipps die beiden Scripts in einem einzigen, funktionierenden zu kombinieren...
LG, Miloš

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige