Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1916to1920
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

2 targets, Zellbereich überschneidend

2 targets, Zellbereich überschneidend
25.01.2023 11:14:19
heinzii
Hey liebes Excel-Forum,
ich habe in einem Protokoll mehrere Felder in denen nur Großgeschrieben bzw. über vba jeder Buchstabe in Großbuchstaben umgewandelt wird. Das funktioniert auch einwandfrei.
Nun will ich nochmal das komplette Tabellenblatt auf Änderungen überprüfen und dokumentieren, was ebenfalls mit einem Worksheet_Change(ByVal Target as range) realisiert ist (Lösung aus dem Internet, andere Lösungen willkommen). Dabei kommt es zur Überschneidung der Aufgabe oben und der Protokollierung d.h. ich bräuchte zwei targets die sich leider auch noch in ein paar Zellen überschneiden.
Habe schon versucht mit if und elseif aber bin zu keiner Lösung gekommen.
Bitte um Hilfe.
Anbei die Beispielmappe zum Problem
https://www.herber.de/bbs/user/157461.xlsm
Danke und viele Grüße

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

Betreff
Datum
Anwender
Anzeige
AW: 2 targets, Zellbereich überschneidend
25.01.2023 11:37:03
UweD
Hallo
meinst du das so?
in den Codebereich der Tabelle1
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim lngZeilefrei As Long
    Dim rngZelle As Range
    If Not Intersect(Target, Me.Range("B4,B8,B11,D6,D10")) Is Nothing Then
       With Sheets("Änderungsprotokoll")
           For Each rngZelle In Target
    
               lngZeilefrei = .Range("B" & .Rows.Count).End(xlUp).Row + 1
               .Range("A" & lngZeilefrei).Value = rngZelle.Parent.Name
               .Range("B" & lngZeilefrei).Value = rngZelle.Address
               .Range("C" & lngZeilefrei).Value = "'" & rngZelle.FormulaLocal
               .Range("D" & lngZeilefrei).Value = Environ("username")
               .Range("E" & lngZeilefrei).Value = Environ("computername")
               .Range("F" & lngZeilefrei).Value = Date
               .Range("G" & lngZeilefrei).Value = Time
    
           Next rngZelle
       End With
    End If
    If Target.Cells.Count > 1 Then Exit Sub
    If Intersect(Target, Me.Range("D6,D10")) Is Nothing Then Exit Sub
    On Error GoTo CleanUp:
    With Target
        If .Value > "" Then
            Application.EnableEvents = False
            .Value = UCase(.Value)
        End If
    End With
CleanUp:
    Application.EnableEvents = True
    
End Sub
LG UweD
Anzeige
AW: 2 targets, Zellbereich überschneidend
25.01.2023 11:51:50
Marcel
Das ist es! :)
Man bin ich dumm :D Doch so einfach. Vielen vielen Dank :)
Danke für die Rückmeldung (mwT)
25.01.2023 11:54:28
UweD
&GT&GT Man bin ich dumm :D
Nein, du hast doch immerhin das richtige Forum gefunden ;-)

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige