Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: ComboBox Wert vergleichen und ergänzen

ComboBox Wert vergleichen und ergänzen
26.11.2017 14:19:43
Sebastian
Guten Tag liebe Gemeinde,
nachdem ich gestern 5 Stunden recherchiert habe und dabei fast verzweifelt bin, stelle ich nun meine Frage hier.
Ich habe in einem Workbook unter "Tabelle1" eine Auflistung mit Namen. Der Bereich ist C26:C55.
Hier wird mittels der Userform2.ComboBox1 der Reihe nach Namen eingefügt, zusammen mit einer Uhrzeit in Spalte I, sobald man den CommandButton1 drückt.
Daneben gibt es noch die ComboBox2, die ihre Daten bis zur letzten freien Spalte aus der Namensliste C26:C55 zieht.
Soweit so gut.
Nun möchte ich, dass wenn ich den CommandButton2 drücke, der ausgewählte wert aus der Combobox2 mit den Inhalten von C26:C55 abgleicht, den gesuchten Wert findet und in die daneben liegende Spalte K die Uhrzeit Format(now, "HH:mm") einträgt.
Ich habe es auch über me.find versucht bin aber zu keinem funktionierenden Ergebnis gekommen.
Ich hoffe ihr könnt mir da helfen.
MfG Sebastian
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ComboBox Wert vergleichen und ergänzen
26.11.2017 15:37:02
Werner
Hallo Sebastian,
probier mal:
Private Sub CommandButton2_Click()
Dim raSuchbereich As Range, raFundzelle As Range
Set raSuchbereich = Worksheets("Tabelle1").Range("C26:C55")
Set raFundzelle = raSuchbereich.Find(Me.ComboBox2.Value)
If Not raFundzelle Is Nothing Then
raFundzelle.Offset(, 8) = Format(Now, "HH:MM")
Else
MsgBox "Der Suchbegriff: " & Me.ComboBox2.Value & vbLf _
& " ist im Bereich " & raSuchbereich.Address(0, 0) _
& " nicht vorhanden."
End If
End Sub

Gruß Werner
Anzeige
AW: ComboBox Wert vergleichen und ergänzen
26.11.2017 15:52:49
Gerd
Hallo Sebastian,
unterstellt, der Suchwert ist stets zu finden:
Private Sub CommandButton2_Click()
If ComboBox2.ListIndex > -1 Then Tabelle1.Cells((Application.Match( _
ComboBox2.Value, Tabelle1.Range("C26:C55"), 0) + 25), 11) = Format(Now, "HH:mm")
End Sub
Gruß Gerd
Anzeige
AW: ComboBox Wert vergleichen und ergänzen
27.11.2017 11:39:16
Sebastian
Vielen Dank für die fixe Antwort!
Hab es tatsächlich schon mit einem ähnlichen codeschnipsel versucht, da ging allerdings nichts. Nun ist mir der Fehler aufgefallen. Hatte den Offset bei 0,2. Aber die Zellen C bis H verbunden.
Nur für mich zum Verständnis. Der Code überschreibt dann aber nicht den Inhalt der verbunden oder?
Anzeige
AW: ComboBox Wert vergleichen und ergänzen
27.11.2017 11:39:35
Sebastian
Vielen Dank für die fixe Antwort!
Hab es tatsächlich schon mit einem ähnlichen codeschnipsel versucht, da ging allerdings nichts. Nun ist mir der Fehler aufgefallen. Hatte den Offset bei 0,2. Aber die Zellen C bis H verbunden.
Nur für mich zum Verständnis. Der Code überschreibt dann aber nicht den Inhalt der verbunden oder?
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

ComboBox Wert vergleichen und Uhrzeit ergänzen


Schritt-für-Schritt-Anleitung

  1. Öffne dein Excel Workbook und stelle sicher, dass du eine UserForm mit zwei ComboBoxen (ComboBox1 und ComboBox2) und zwei CommandButtons (CommandButton1 und CommandButton2) hast.

  2. Füge den folgenden VBA-Code in das Codefenster der UserForm ein, um den Wert aus ComboBox2 mit den Namen in "Tabelle1" abzugleichen:

    Private Sub CommandButton2_Click()
       Dim raSuchbereich As Range, raFundzelle As Range
       Set raSuchbereich = Worksheets("Tabelle1").Range("C26:C55")
       Set raFundzelle = raSuchbereich.Find(Me.ComboBox2.Value)
       If Not raFundzelle Is Nothing Then
           raFundzelle.Offset(, 8) = Format(Now, "HH:mm")
       Else
           MsgBox "Der Suchbegriff: " & Me.ComboBox2.Value & vbLf _
           & " ist im Bereich " & raSuchbereich.Address(0, 0) _
           & " nicht vorhanden."
       End If
    End Sub
  3. Teste die Funktion, indem du einen Namen in ComboBox2 auswählst und den CommandButton2 drückst. Die Uhrzeit sollte in der benachbarten Zelle in Spalte K eingetragen werden.


Häufige Fehler und Lösungen

  • Fehler: "Der Suchbegriff ist im Bereich nicht vorhanden."

    • Lösung: Stelle sicher, dass der Name in ComboBox2 korrekt ausgewählt und in "Tabelle1" in den Zellen C26:C55 vorhanden ist.
  • Fehler: Uhrzeit wird nicht eingetragen.

    • Lösung: Überprüfe, ob die Zellen in Spalte K nicht verbunden sind. Verbundene Zellen können dazu führen, dass die Daten nicht korrekt geschrieben werden.

Alternative Methoden

Eine alternative Methode wäre die Verwendung von Application.Match, um den gesuchten Wert zu finden und die Uhrzeit zu setzen:

Private Sub CommandButton2_Click()
    If ComboBox2.ListIndex > -1 Then
        Tabelle1.Cells((Application.Match(ComboBox2.Value, Tabelle1.Range("C26:C55"), 0) + 25), 11) = Format(Now, "HH:mm")
    End If
End Sub

Diese Methode verwendet die Match-Funktion, um den Index des gefundenen Wertes zu ermitteln und trägt die Uhrzeit in die entsprechende Zelle ein.


Praktische Beispiele

  1. Beispiel 1: Wenn der Name "Max" in der Liste steht und du ihn in ComboBox2 auswählst, wird bei Drücken von CommandButton2 die aktuelle Uhrzeit in Zelle K26 eingetragen.

  2. Beispiel 2: Wenn "Anna" in der Liste steht und du sie wählst, wird die Uhrzeit in Zelle K27 eingetragen, vorausgesetzt, Anna steht in C27.


Tipps für Profis

  • Achte darauf, dass die Daten in den ComboBoxen gut strukturiert sind, um die Benutzerfreundlichkeit zu erhöhen.
  • Verwende Option Explicit zu Beginn deines Moduls, um sicherzustellen, dass alle Variablen deklariert sind.
  • Teste deinen Code gründlich, um sicherzustellen, dass alle möglichen Fehlerquellen abgedeckt sind.

FAQ: Häufige Fragen

1. Warum wird die Uhrzeit nicht korrekt angezeigt? Stelle sicher, dass das Format für die Zellen in Spalte K korrekt eingestellt ist. Wenn die Zelle als Text formatiert ist, wird die Uhrzeit möglicherweise nicht richtig angezeigt.

2. Überwrites der Code die Inhalte der verbundenen Zellen? Ja, wenn die Zellen verbunden sind, wird nur die oberste Zelle überschrieben. Die anderen verbundenen Zellen bleiben unverändert. Achte darauf, dies in deiner Planung zu berücksichtigen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige