Werbung

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Excel, VBA, Makro ausführen wenn Zelle manuell überschrieben

Dieses Thema im Forum "Visual Basic, Visual Basic for Applications (VBA) " wurde erstellt von DisPater, 14. Juli 2017.

  1. DisPater

    DisPater New Member

    Hallo zusammen,

    ich habe aktuell ein kleines VBA Projekt. Dazu möchte ich ein Makro ausführen sobald ein Wert in zwei bestimmten Zellen neu eingetragen wird.

    Im Internet habe ich dazu bereits folgenden Code gefunden

    Private Sub Worksheet_Change(ByVal Target As Range)

    If Target.Cells.Count > 1 Then Exit Sub
    If Intersect(Target, Range("$I$9,$k$9")) Is Nothing Then


    Dim zeit As String
    zeit = Left(Now(), 16)
    ActiveSheet.Range("U9").Select
    ActiveCell.FormulaR1C1 = zeit

    zeit = Right(Now(), 8)
    ActiveSheet.Range("t9").Select
    ActiveCell.FormulaR1C1 = zeit
    ActiveSheet.Range("k9").Select


    End Sub


    Dieser Funktioniert auf eine Zelle angewendet genau so wie ich das gerne möchte.
    Nun solle sich der Wert aber nur Zeilenweise verändern, also wenn ich in Zelle I9 einen Wert eintrage Soll sich das Makro nur auf Zelle T9 und U9 auswirken.

    Trage ich einen neuen Wert in K29 ein soll sich das Makro nur auf Zelle T29 und U29 auswirken.

    Wie genau mache ich das?
    Zuletzt von einem Moderator bearbeitet: 14. Juli 2017
  2. coding-board

    coding-board Member

    Werbung
  3. German

    German Well-Known Member c-b Experte

    Sollte etwa so funktionieren:
    Code (Visual Basic):
    Quelltext kopieren
    1. Private Sub Worksheet_Change(ByVal Target As Range)
    2.     If Target.Address = "$I$9" Then
    3.         Range("T9") = "foo"
    4.         Range("U9") = "bar"
    5.     ElseIf Target.Address = "$K$29" Then
    6.         Range("T29") = 4711
    7.         Range("U29") = 12345
    8.     End If
    9. End Sub
    10.  
    Was du genau in die Zellen eintragen willst, musst du natürlich selbst wissen und entsprechend anpassen.
  4. DisPater

    DisPater New Member

    Hi German,

    vielen Dank für deine Hilfe. Durch einen Kollegen habe ich am Wochenende noch einen anderen Lösungsweg erhalten. Den möchte ich euch nicht vorenthalten.

    Code (Text):
    Quelltext kopieren
    1.  
    2. Private Sub Worksheet_Change(ByVal Target As Range)
    3.  
    4.   If Not Intersect(Target, Range("I9:I63,K9:k63")) Is Nothing And Target.Count = 1 Then _
    5.   Sheets("Zeitstempel").Cells(Target.Row, Target.Column) = Right(Now(), 8)
    6.  
    7. End Sub
    8.  
    Durch dieses Makro wird in einer neuen Tabelle die Zeit eingetragen zu der eine Änderung stattgefunden hat. Dieser Befehl erfüllt genau das was ich benötige.

    MfG
    DisPater
  5. German

    German Well-Known Member c-b Experte

    Ah, es geht um Zellenbereiche und nicht nur um die Zellen I9 und K29. Da hatte ich dich irgendwie falsch verstanden.
Die Seite wird geladen...
Ähnliche Themen - Excel VBA Makro Forum Datum
Excel - Sortierung mittels VBA bringt Unordnung!? Visual Basic, Visual Basic for Applications (VBA) 17. Juli 2017
Tabellenkalkulation mit VBA und Excel Visual Basic, Visual Basic for Applications (VBA) 17. Februar 2017
Daten Vergleich in Excel VBA Visual Basic, Visual Basic for Applications (VBA) 28. Januar 2016
Excel/VBA umschreiben Projekt - Forum 30. März 2015
VBA(Excel) Spalte untersuchen Visual Basic, Visual Basic for Applications (VBA) 27. Februar 2013