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

Cells target row

Forumthread: Cells target row

Cells target row
23.08.2003 09:36:02
Ernst Dunkel
Guten Morgen Forum
Wer kann mir weiter helfen, ich kriege es nicht hin.
Wird ein Wert in die aktive Zelle (C) eingesetzt, so soll geprüft werden, ob in der Zelle (AB) der aktiven Zeile der Wert H steht.
Wenn ja, dann soll der Wert aus der Zelle (J11) in die Zelle (H) der aktiven Zeile eingesetzt werden, ansonsten nichts.
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Cells(Target.Row, 3).
Mit freundlichen Grüssen
Ernst Dunkel
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Cells target row
23.08.2003 09:50:08
sergiesam
Hi,
ich hoffe, dass ich deine Angabe richtig verstanden habe....

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 3 Then  'wird in Spalte C was eingetragen
If Range("AB" & Target.Row) = "H" Then 'befindet sich "H" in Spalte AB der Targetzeile
Range("H" & Target.Row) = Range("$J$11")   'Trag wert aus J11 in Spalte H der Targetzeile ein
End If
End If
End Sub

Gruß aus Linz,
Sam

Anzeige
AW: Cells target row
23.08.2003 09:57:04
Ernst Dunkel
Hallo Sam
Vielen Dank für Deine Arbeit.
Habe es ausprobiert es funktioniert.
Gruss Ernst Dunkel

;
Anzeige

Infobox / Tutorial

Mit Excel VBA die Zielzeile ansprechen und Werte einsetzen


Schritt-für-Schritt-Anleitung

In diesem Abschnitt zeigen wir dir, wie du mit VBA eine Zelle ansprechen und basierend auf Bedingungen Werte in eine andere Zelle einsetzen kannst. Hier ist eine einfache Anleitung:

  1. Öffne den VBA-Editor: Drücke ALT + F11, um den Visual Basic for Applications (VBA) Editor zu öffnen.

  2. Füge ein neues Modul ein: Klicke mit der rechten Maustaste auf dein Arbeitsblatt im Projektfenster und wähle „Einfügen“ > „Modul“.

  3. Schreibe den Code: Füge den folgenden Code in das Modul ein:

    Private Sub Worksheet_Change(ByVal Target As Range)
       If Target.Column = 3 Then  ' Wenn in Spalte C etwas eingetragen wird
           If Range("AB" & Target.Row) = "H" Then ' Prüfe, ob in Spalte AB der gleichen Zeile "H" steht
               Range("H" & Target.Row) = Range("$J$11") ' Wert aus J11 in Spalte H der Zielzeile eintragen
           End If
       End If
    End Sub
  4. Schließe den VBA-Editor: Drücke ALT + Q, um den Editor zu schließen und zurück zu Excel zu gelangen.

  5. Teste den Code: Trage einen Wert in die Zelle in Spalte C ein und überprüfe, ob der Wert in Spalte H entsprechend aktualisiert wird, wenn in Spalte AB "H" steht.


Häufige Fehler und Lösungen

  1. Fehler: Der Code wird nicht ausgelöst.

    • Lösung: Stelle sicher, dass du in die richtige Arbeitsmappe und das richtige Arbeitsblatt eingefügt hast. Der Worksheet_Change-Event muss im spezifischen Arbeitsblattmodul sein.
  2. Fehler: Werte werden nicht korrekt eingesetzt.

    • Lösung: Überprüfe, ob die Bedingungen korrekt gesetzt sind. Stelle sicher, dass die Spalte AB tatsächlich "H" enthält.
  3. Fehler: VBA lässt sich nicht speichern.

    • Lösung: Stelle sicher, dass du die Datei im richtigen Format (z.B. .xlsm) speicherst, um Makros zu verwenden.

Alternative Methoden

Wenn du nicht mit VBA arbeiten möchtest, kannst du auch die WENN-Funktion in Excel verwenden. Hier ist ein Beispiel:

=WENN(AB1="H"; J11; "")

Diese Formel kannst du in die Zelle H1 einfügen und nach unten ziehen, um sie auf andere Zeilen anzuwenden. Beachte, dass dies nicht dynamisch auf Änderungen reagiert wie das VBA-Skript.


Praktische Beispiele

Angenommen, du hast folgende Daten:

A B C ... AB H
1 5 ... H
2 10 ... N
3 15 ... H

Wenn du in Zelle C1 den Wert 5 eingibst, wird in Zelle H1 der Wert aus J11 (angenommen, J11 hat den Wert 100) eingetragen, weil in AB1 "H" steht.


Tipps für Profis

  • Nutze Option Explicit am Anfang deines Moduls, um sicherzustellen, dass alle Variablen deklariert werden. Dies hilft, Fehler zu vermeiden.
  • Experimentiere mit Target.Cells und Target.Range, um flexiblere und dynamischere Makros zu erstellen, die mehrere Zellen gleichzeitig bearbeiten können.
  • Halte deinen Code sauber und gut kommentiert, um zukünftige Anpassungen zu erleichtern.

FAQ: Häufige Fragen

1. Was ist der Unterschied zwischen Target.Row und Target.Cells?
Target.Row gibt die Zeilennummer der geänderten Zelle zurück, während Target.Cells auf die Zelle selbst verweist, was dir erlaubt, mehrere Zellen zu bearbeiten.

2. Kann ich mehrere Bedingungen in meinem VBA-Skript verwenden?
Ja, du kannst zusätzliche If-Anweisungen hinzufügen, um mehrere Bedingungen zu prüfen, bevor du Werte in die Zielzelle einträgst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige