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

Target.Address - Offset

Forumthread: Target.Address - Offset

Target.Address - Offset
28.01.2019 00:22:58
Guenter
Hallo Profis!
Wie bekomme ich den Inhalt, eine Zelle unterhalb, also B16 auf die "UserForm7.ComboBox2" wenn ich aber die Zelle B15 anklicke?
If Target.Address(0, 0) = "B15" then
UserForm7.ComboBox2 = Target(1)
UserForm7.Show
Vielen Dank
Guenter
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Target.Address - Offset
28.01.2019 05:43:38
Hajo_Zi
Hallo Güenter,
UserForm7.ComboBox2 = Target.offset(1,0)

Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
Die Beiträge werden auch ignoriert, es erfolgt keine Antwort.
Danke
28.01.2019 07:58:13
Guenter
Danke
Anzeige
;
Anzeige

Infobox / Tutorial

Target.Address - Offset in VBA nutzen


Schritt-für-Schritt-Anleitung

Um den Inhalt einer Zelle unterhalb der aktuell angeklickten Zelle in eine ComboBox zu übertragen, kannst Du den folgenden VBA-Code verwenden:

  1. Öffne den Visual Basic for Applications (VBA) Editor in Excel (ALT + F11).
  2. Füge ein neues Modul hinzu oder öffne das bestehende Modul, in dem Du den Code platzieren möchtest.
  3. Verwende den folgenden Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Address(0, 0) = "B15" Then
        UserForm7.ComboBox2 = Target.Offset(1, 0).Value
        UserForm7.Show
    End If
End Sub

Dieser Code überprüft, ob die Zelle B15 angeklickt wurde und überträgt den Inhalt der Zelle B16 in die ComboBox.


Häufige Fehler und Lösungen

  • Fehler: UserForm wird nicht angezeigt.

    • Lösung: Stelle sicher, dass der Name der UserForm korrekt ist und dass Du die UserForm tatsächlich mit UserForm7.Show aufrufst.
  • Fehler: ComboBox bleibt leer.

    • Lösung: Überprüfe, ob die Zelle unterhalb (in diesem Fall B16) tatsächlich einen Wert enthält. Andernfalls wird die ComboBox leer bleiben.

Alternative Methoden

Eine alternative Methode besteht darin, die Offset-Funktion in einer anderen Zelle oder in einer anderen UserForm zu verwenden. Der VBA-Code könnte dann so aussehen:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Address(0, 0) = "B15" Then
        Dim newValue As String
        newValue = Target.Offset(1, 0).Value
        MsgBox "Der Wert ist: " & newValue
    End If
End Sub

Hier wird der Wert aus B16 in einer MessageBox angezeigt, anstatt ihn in die ComboBox zu übertragen.


Praktische Beispiele

Angenommen, Du hast in B15 den Wert "Äpfel" und in B16 den Wert "10". Wenn Du auf B15 klickst, wird die ComboBox den Wert "10" anzeigen. Dies ist besonders nützlich, wenn Du Daten dynamisch handhaben möchtest, während Du in Excel arbeitest.


Tipps für Profis

  • Nutze die Debug.Print-Funktion, um den Wert von Variablen zu testen und zu sehen, ob sie den erwarteten Inhalt haben.

  • Experimentiere mit verschiedenen Offsets, um mehrere Zellen gleichzeitig zu verarbeiten, z. B. Target.Offset(1, 0) für eine Zelle darunter oder Target.Offset(0, 1) für die Zelle rechts.

  • Achte darauf, dass Du die richtigen Datentypen verwendest, um Laufzeitfehler zu vermeiden.


FAQ: Häufige Fragen

1. Was ist der Zweck von Target.Offset in VBA?
Target.Offset wird verwendet, um auf Zellen zuzugreifen, die relativ zu einer bestimmten Zielzelle liegen. Dies ist besonders nützlich, wenn Du mit dynamischen Daten arbeitest.

2. Wie kann ich mehrere Zellen gleichzeitig mit Offset ansprechen?
Du kannst Target.Offset in Kombination mit einer Schleife verwenden, um mehrere Zellen zu durchlaufen. Beispiel:

Dim i As Integer
For i = 0 To 4
    Debug.Print Target.Offset(i, 0).Value
Next i

Dieser Code gibt die Werte der nächsten fünf Zellen unterhalb der Zielzelle aus.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige