Thema Datum  Von Nutzer Rating
Antwort
Rot 2 Worksheet_Change Makros in einem Worksheet
26.05.2023 13:26:09 Simon
NotSolved
26.05.2023 14:01:14 Der Steuerfuzzi
NotSolved
26.05.2023 14:22:34 Simon
NotSolved
26.05.2023 14:33:43 Der Steuerfuzzi
*****
Solved
31.05.2023 11:04:46 Simon
NotSolved
26.06.2023 08:58:32 Simon
NotSolved
26.06.2023 09:04:48 Simon
NotSolved

Ansicht des Beitrags:
Von:
Simon
Datum:
26.05.2023 13:26:09
Views:
489
Rating: Antwort:
  Ja
Thema:
2 Worksheet_Change Makros in einem Worksheet

Hallo Zusammen,
ich musste für die Arbeit ein Makro programmieren, dieses funktioniert einzeln auch.
Nun habe ich das Problem, dass in dem Excel schon ein anderes Makro mit "Worksheet_Change" existiert, welches nicht von mir ist und mir die Funktion nicht bekannt ist.
Wenn ich Beispielsweise mein 2tes makro mit "Worksheet_SelectionChange" ausführe funktioniert alles.
Allerdings wäre Worksheet_Change deutlich besser und Slection Change ist nicht optimal.

Was muss ich tun um beide Makros in einem Worksheet ausführen zu können?

Kurze erklärung was Makro 2 macht:
Immer wenn ein neuer Name in Spalte E auftaucht, soll Excel das Datum aus Spalte C überprüfen und wenn der Name das erste Mal in einer Kalenderwoche notiert wurde,
soll eine automatische Nachricht in Spalte J geschrieben werden.

 

Private Sub Worksheet_Change(ByVal Target As Range)
    Set NewTarget = Intersect(Target, Range("A:A"))
    If NewTarget Is Nothing Then
        Set NewTarget = Intersect(Target, Range("L:L"))
        If NewTarget Is Nothing Then Exit Sub
        
        Cells(Target.Row, "M") = Now
        Exit Sub
    End If
    
    If Cells(Target.Row, "A").Value <> "" Then
        Cells(Target.Row, "C") = Now
        Cells(Target.Row, "D") = Now
    Else
        Cells(Target.Row, "C") = ""
        Cells(Target.Row, "D") = ""
    End If
End Sub


'Rauheit muss geprüft werden
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim LastRow As Long
    Dim i As Long
    Dim Name As String
    Dim Week As Integer
    Dim FirstDate As Date
    Dim Found As Boolean

    ' Überprüfen, ob Änderungen in Spalte E vorgenommen wurden
    If Target.Column <> 5 Then Exit Sub

    ' Letzte Zeile in Spalte E finden
    LastRow = Cells(Rows.Count, "E").End(xlUp).Row

    ' Für jede neue Zeile in Spalte E
    For i = Target.Row To LastRow
        ' Name in Spalte E
        Name = Cells(i, "E").Value

        ' Datum in Spalte C
        FirstDate = Cells(i, "C").Value

        ' Kalenderwoche des Datums
        Week = Format(FirstDate, "ww")

        ' Überprüfen, ob der Name bereits in dieser Kalenderwoche aufgetaucht ist
        Found = False
        For j = 10 To i - 1
            If Cells(j, "E").Value = Name And Format(Cells(j, "C").Value, "ww") = Week Then
                Found = True
                Exit For
            End If
        Next j

        ' Wenn der Name das erste Mal in dieser Kalenderwoche aufgetaucht ist
        If Not Found Then
            ' Nachricht in Spalte J schreiben
            Cells(i, "J").Value = "nötig "
        End If
    Next i
End Sub

 

 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:

 
 

  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot 2 Worksheet_Change Makros in einem Worksheet
26.05.2023 13:26:09 Simon
NotSolved
26.05.2023 14:01:14 Der Steuerfuzzi
NotSolved
26.05.2023 14:22:34 Simon
NotSolved
26.05.2023 14:33:43 Der Steuerfuzzi
*****
Solved
31.05.2023 11:04:46 Simon
NotSolved
26.06.2023 08:58:32 Simon
NotSolved
26.06.2023 09:04:48 Simon
NotSolved