Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema CommandButton
BildScreenshot zu CommandButton CommandButton-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema ListBox
BildScreenshot zu ListBox ListBox-Seite mit Beispielarbeitsmappe aufrufen

AddItem nicht nach leerem Feld | Herbers Excel-Forum


Betrifft: AddItem nicht nach leerem Feld von: Rainer
Geschrieben am: 20.01.2010 21:01:38

Hallo,

befülle eine ComboBox mit folgendem Code:

    With Tabelle9.Columns(8)
      Set rZelle = .Find(What:=Trim(ComboBox7.Value), LookAt:=xlWhole, LookIn:=xlValues)
      If Not rZelle Is Nothing Then
        sFundst = rZelle.Address
        Do
          ComboBox8.AddItem .Range("C" & rZelle.Row).Value
          Set rZelle = .FindNext(rZelle)
          Loop While Not rZelle Is Nothing And rZelle.Address <> sFundst
     Else
       ...
     End If
     End With

Nun habe ich das Problem, dass mein Suchbegriff aufgrund Gliederung mehrmals vorhanden ist.

In meiner Suchspalte habe ich dann allerdings Leerzeilen.

Ist es mit AddItem auch möglich, nur ab dem ersten gefundenen Eintrag bis zur dann kommenden Leerzelle zu suchen?

Gruß

Rainer

  

Betrifft: AW: AddItem nicht nach leerem Feld von: Ramses
Geschrieben am: 20.01.2010 22:37:36

Hallo

Probier mal

With Tabelle9.Columns(8)
    Set rzelle = .Find(What:=Trim(ComboBox7.Value), LookAt:=xlWhole, LookIn:=xlValues)
    If Not rzelle Is Nothing Then
        sFundst = rzelle.Address
        combobox8.AddItem .Range("C" & rzelle.Row).Value
        For i = rzelle.Row To Cells(Rows.Count, 8).End(xlUp).Row
            If Cells(i, 8) <> "" Then
                combobox8.AddItem Cells(i, 8).Value
            Else
                Exit Sub
            End If
        Next i
    End If
End With


Gruss Rainer


  

Betrifft: AW: AddItem nicht nach leerem Feld von: Gerd L
Geschrieben am: 20.01.2010 23:11:37

Hallo Rainer,

oder so?

Sub Test()
Dim rZelle As Range, sFundst As String


With Tabelle9.Columns(8)
      Set rZelle = .Find(What:=Trim(ComboBox7.Value), LookAt:=xlWhole, LookIn:=xlValues) 'xxx fü _
r Test
      If Not rZelle Is Nothing Then
        sFundst = rZelle.Address
        Do
          ComboBox8.AddItem .Range("C" & rZelle.Row).Value
          If IsEmpty(rZelle.Offset(1)) Then Exit Do
          Set rZelle = .Range(.Cells(rZelle.Row + 1), .Cells(rZelle.End(xlDown).Row)).Find( _
rZelle)
          If rZelle Is Nothing Then Exit Do
        Loop While rZelle.Address <> sFundst
     Else
        MsgBox "Not found!"
     End If
     End With

End Sub
Gruß Gerd


  

Betrifft: Nein... von: Ramses
Geschrieben am: 20.01.2010 23:14:59

Hallo

Er will ja nach dem gefundenen Suchbegriff eine Anzahl X Zellen einlesen und nicht einen weiteren neuen Suchebgriff.

Gruss Rainer


  

Betrifft: AW: Weis man es? von: Gerd L
Geschrieben am: 20.01.2010 23:25:17

Hi,

.... bis zur nächsten leeren Zeile suchen

Warten wir die Rückmeldung ab.

Gruß
Gerd


  

Betrifft: AW: AddItem nicht nach leerem Feld von: Rainer
Geschrieben am: 20.01.2010 23:23:41

Sorry,

vergaß die Einstellung "eMail-Benachrichtigung", deshalb erst jetzt noch eine Antwort.

Vielen Dank für Eure Mithilfe.

Leider funktionieren beide Codes nur zum Teil. In beiden wird nur der erste Eintrag angezeigt.

Bin leider VBA-Anfänger, könnte es sein, dass diese Zeile

Set rZelle = .FindNext(rZelle)

noch irgendwo fehlt?

Gruß Rainer


  

Betrifft: AW: AddItem nicht nach leerem Feld von: Rainer
Geschrieben am: 21.01.2010 00:21:57

Hallo,

zur Klarheit einfach mal eine Beispieltabelle

https://www.herber.de/bbs/user/67367.xls

In der letzten ComboBox (8) ist nur jeweils ein Wert aus Tabelle2 Spalte J enthalten.

Vielleicht ist es für Euch ein leichtes.

Gruß Rainer


  

Betrifft: AW: AddItem nicht nach leerem Feld von: Gerd L
Geschrieben am: 21.01.2010 00:24:54

Hallo Rainer,

wie Du siehst, ist deine knappe Beschreibung unterschiedlich angekommen.

Lade doch eine Beispiel-Tabelle hoch u. erkläre zur Abgrenzung, wie, wo, was
etwas genauer.

Gruß Gerd


  

Betrifft: AW: AddItem nicht nach leerem Feld von: Rainer
Geschrieben am: 21.01.2010 00:34:08

Hallo Rainer,
hallo Gerd,

danke für Eure Mühe.

Für den Fall, dass ich mit dem upload zu kurz beschrieben habe.

Am übersichtlichsten ist es mit
Anlass: Fahrzeugwechsel
- ergibt Thema: Rund ums Fahrzeug
- müsste in ComboBox8 die Auflistung: PKW, Neufahrzeug und PKW, Gebrauchtfahrzeug ergeben.

Es erscheint aber nur PKW, Neufahrzeug.

Mit meinem bisherigen Code waren zwar alle Werte aufgelistet, aber leider auch die Werte, welche sich nicht mehr auf die erste ComboBox bezogen.

In diesem Fall am besten sichtbar, wenn in der ersten ComboBox "ohne Anlass" steht.

Gruß Rainer


  

Betrifft: AW: AddItem nicht nach leerem Feld von: Rainer
Geschrieben am: 21.01.2010 15:19:40

Hallo,

kann ich nochmal Euren Rat bekommen?

Habe nochmal etwas recherchiert und über http://www.digital-inn.de/excel-und-vba/38175-2-listbox-abhaengig-von-combobox.html einen Ansatz gefunden und die Tabelle/UserForm mal nachgebaut (konnte die Original-Tabelle dort nicht downloaden.
https://www.herber.de/bbs/user/67386.xls

Die Lösung hier scheint für mich als Laie im Ansatz zu passen, bekomme Sie allerdings nicht integriert, da ich über zwei Arbeitsblätter arbeite.

Ist mein Code in ComboBox7 nun komplett neu zu schreiben?

Gruß Rainer


  

Betrifft: lade ein Beispiel hoch... von: Tino
Geschrieben am: 25.01.2010 08:44:14

Hallo,
lade doch mal ein Beispiel hoch wie es bei Dir aufgebaut ist.

Gruß Tino


  

Betrifft: AW: lade ein Beispiel hoch... von: Rainer
Geschrieben am: 25.01.2010 23:23:20

Hallo Tino,

vielen Dank für Dein Angebot.

Das Problem lag an den doppelten Themen bzw. Details, welche immer wieder über die gesamte Spalte gesucht wurden. Die Tabelle mal zur Ansicht: https://www.herber.de/bbs/user/67488.xls

Nach dem ich das in digital-inn.de gefunden habe, habe mit dem Begriff "Scripting.Dictionary" weiter recherchiert und in einem anderen Forum weitere Beispiele gefunden. Mein Ergebnis nun hier: https://www.herber.de/bbs/user/67489.xls

Möchte jedoch erwähnen, dass ich dort über PN Hilfe bei einem User erfragt habe.
Aufgrund dessen habe ich meinen neuen Ansatz (zweite Tabelle) dort gepostet.
Antworten stehen allerdings noch aus.

Hinweis:
Einziges Problem im Arbeitsblatt - Fehlermeldung beim Start über den CommandButton (funktioniert allerdings beim zweiten Klick).

Desweiteren wäre schöner, wenn ich auf die Hilfsspalten in Tabelle1 (H8 und H9) verzichten könnte.
Weiß aber nicht, wie ich die Variablen vom einen Sub ins nächste bekommen würde.

Die UserForm scheint jedoch (leider) so nicht ganz zu stimmen.
Habe den Code im wesentlichen aus dem Arbeitsblatt kopiert.
Hier klappt es vor allem nicht, wenn ich nach einem Klick in die ListBox in der ComboBox2 erneut auswähle.

Gruß Rainer


P.S.: sollte ich weiter gekommen sein, werde ich dies natürlich auch berichten.


  

Betrifft: AW: lade ein Beispiel hoch... von: Tino
Geschrieben am: 26.01.2010 08:56:29

Hallo,
bin mir nicht sicher ob du es so meinst.
Die Combobox auf Tabelle1 wird gefüllt wenn Du die Tabelle2 verlässt,
dies ist in der Regel wenn z. Bsp. was eingetragen wurde in Tabelle2.
Bzw. wird sie auch beim öffnen der Datei gefüllt.

Eventuell dafür andere Events auswählen.
https://www.herber.de/bbs/user/67496.xls

Gruß Tino


  

Betrifft: AW: lade ein Beispiel hoch... von: Rainer
Geschrieben am: 26.01.2010 11:30:54

Hallo Tino,

vielen Dank, das Projekt ist erfolgreich abgeschlossen.

Das Problem war nicht, dass ich die ComboBoxen nicht korrekt befüllt bekam.
Vielmehr wollte ich dann die in der ListBox1 gefüllten Werte nutzen, um die dazu gehörigen Werte in das Arbeitsblatt mit zu übernehmen.

Vielen Dank auch an Gerd und Ramses.

Gruß Rainer


  

Betrifft: AW: lade ein Beispiel hoch... von: Rainer
Geschrieben am: 26.01.2010 12:49:30

Für den Fall, dass es im Nachhinein noch interessiert, hier die fertige Beispieltabelle: https://www.herber.de/bbs/user/67499.xls


  

Betrifft: AW: lade ein Beispiel hoch... von: Rainer
Geschrieben am: 26.01.2010 08:43:35

Hallo Tino,

habe Problem gelöst.

War dann gestern doch etwas zu spät geworden, so dass ich in die UserForm nicht alle Codes korrekt überarbeitet habe.

Nun verblieben nur noch die auf Tabelle1 zwischengespeicherten Informationen.
Sprich Variablenverwendung von einem Sub im nächsten.
Aber das ist in Anbetracht des Endergebnisses keine Problem. Verstecke diese einfach auf Tabelle2.

Dennoch danke für Dein erneutes Aufgreifen meines Thread.

Falls es interessiert lade ich auch gerne die fertige Tabelle hoch.

Gruß Rainer


Beiträge aus den Excel-Beispielen zum Thema "AddItem nicht nach leerem Feld"