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

Forumthread: Target value change

Target value change
07.02.2014 12:18:53
Salim
Guten Tag,
Ich möchte einen, denke ich, einfachen Code zusammenstellen aber meine VBA Kenntnisse sind bescheiden....
Ich möchte einen Target Change Code der folgendes macht :
- Falls C4 auf 0 geändert wird, dann C6:C11 automatisch auf 0 stellen
- Falls alle Zellen C6:C11 auf 0 gestellt werden, dann C4 automatisch auf 0 stellen
- Falls eine der Zellen vom Bereich C6:C11 auf 1 gestellt wird, C4 automatisch auf 1 stellen.
Herzlichen Dank für die Hilfe.
Salim

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Target value change
07.02.2014 12:31:23
EtoPHG
Hallo Salim,
z.B.
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Target.Address = "$C$4" Then
If Target.Text = "0" Then Range("C6:C11") = 0
End If
If Not Intersect(Target, Range("C6:C11")) Is Nothing Then
If Target.Count = 1 And Target.Text = "1" Then Range("C4") = 1
End If
Application.EnableEvents = True
End Sub
Gruess Hansueli

Anzeige
AW: Target value change
07.02.2014 12:55:13
Salim
Danke schön
;
Anzeige
Anzeige

Infobox / Tutorial

Automatisierung von Zielwerten in Excel mit VBA


Schritt-für-Schritt-Anleitung

Um die gewünschten Änderungen in Excel mithilfe von VBA zu automatisieren, folge diesen Schritten:

  1. Öffne Excel und gehe zu dem Arbeitsblatt, auf dem du die Änderungen vornehmen möchtest.

  2. Drücke ALT + F11, um den VBA-Editor zu öffnen.

  3. Im Projektfenster auf der linken Seite, suche das entsprechende Arbeitsblatt (z.B. „Tabelle1“).

  4. Klicke mit der rechten Maustaste auf das Arbeitsblatt und wähle „Code anzeigen“.

  5. Füge den folgenden Code in das Codefenster ein:

    Private Sub Worksheet_Change(ByVal Target As Range)
       Application.EnableEvents = False
       If Target.Address = "$C$4" Then
           If Target.Value = 0 Then Range("C6:C11").Value = 0
       End If
       If Not Intersect(Target, Range("C6:C11")) Is Nothing Then
           If Target.Count = 1 And Target.Value = 1 Then Range("C4").Value = 1
       End If
       Application.EnableEvents = True
    End Sub
  6. Speichere deine Änderungen und schließe den VBA-Editor.

  7. Teste den Code, indem du verschiedene Werte in die Zellen C4 und C6:C11 eingibst.


Häufige Fehler und Lösungen

  • Problem: Der Code funktioniert nicht.

    • Lösung: Überprüfe, ob der Code im richtigen Arbeitsblatt eingefügt wurde. Stelle sicher, dass die Ereignisse aktiviert sind (Application.EnableEvents = True).
  • Problem: Änderungen in C4 haben keine Auswirkung auf C6:C11.

    • Lösung: Stelle sicher, dass die Zelle C4 tatsächlich auf 0 gesetzt wird, um die Änderungen in C6:C11 auszulösen.

Alternative Methoden

Falls du keine VBA-Lösungen verwenden möchtest, kannst du auch Excel-Funktionen nutzen:

  • Verwende die WENN-Funktion in C6:C11, um die Werte basierend auf C4 zu steuern.

    Beispiel: In C6:

    =WENN($C$4=0; 0; "")
  • Nutze bedingte Formatierung, um visuelle Hinweise zu geben, wenn die Werte in C4 oder C6:C11 sich ändern.


Praktische Beispiele

Hier sind einige Szenarien, in denen dieser VBA-Code nützlich sein kann:

  1. Verwaltung von Lagerbeständen: Wenn der Lagerbestand (C4) auf 0 gesetzt wird, kannst du automatisch alle Artikel (C6:C11) auf 0 setzen, um anzuzeigen, dass sie nicht verfügbar sind.
  2. Automatisierte Finanzberichte: Setze den Gesamtbetrag in C4 basierend auf den Transaktionen in C6:C11, um sofortige Updates zu erhalten.

Tipps für Profis

  • Debugging: Nutze Debug.Print innerhalb deines Codes, um den Status von Variablen während der Ausführung zu überprüfen.

  • Optimierung: Füge zusätzliche Bedingungen hinzu, um spezifische Änderungen zu überwachen, falls die Anforderungen komplexer werden.

  • Dokumentation: Kommentiere deinen Code, um anderen (oder dir selbst) das Verständnis zu erleichtern, was jeder Teil des Codes bewirken soll.


FAQ: Häufige Fragen

1. Frage
Wie kann ich den Code für andere Zellen anpassen?
Antwort: Ändere einfach die Zellreferenzen im Code entsprechend deinen Bedürfnissen.

2. Frage
Was passiert, wenn ich mehrere Zellen gleichzeitig ändere?
Antwort: Der Code funktioniert weiterhin, solange die Bedingungen erfüllt sind, z.B. wenn eine Zelle in C6:C11 geändert wird.

3. Frage
Kann ich diesen Code auch in anderen Excel-Versionen verwenden?
Antwort: Ja, der Code funktioniert in den meisten modernen Excel-Versionen, die VBA unterstützen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige