Opgelost Een ingelezen ComboBox, de waarde uit elkaar halen

Dit topic is als opgelost gemarkeerd
Status
Niet open voor verdere reacties.

DutchOirs

Gebruiker
Lid geworden
30 sep 2009
Berichten
889
Goedenavond,
Zit weer met een vraagje.
Heb een combobox van een Adressen Bestand in excel 2003
Inlezen gaat perfect, later neerzetten en wijzigen ook.
Heb nu een Categorie erbij gemaakt.
Neem bv. Glazenwasser.
De Combobox haalt uit het Adressenbestand alle Glazenwassers en zet de Bedrijfsnaam keurig in een lijst onder de Combobox.
Vervolgens wil ik (voordat ik een keuze maak in de Combobox) deze gegevens ergens anders plaatsen en vervolgens alles printen.
Nu loop ik tegen het fenomeen aan hoe haal ik de deze namen uit elkaar uit het ingelezen data in de Combobox.
Dus in principe hoeft men de combobox niet te openen.

heb een vb-tje erbij gedaan

Alvast many thanks.

Dutch
 

Bijlagen

lolz, is ook een voorbeeldje :)

Hij leest de combobox in onder activate
Code:
Private Sub UserForm_activate()

  Dim Rij As Integer, Temp As Integer
 
  Rij = 9
  ZoekUserForm.ZoekNaamCB.Clear
  While Worksheets("DBase").Cells(Rij, "A") <> ""
    If Worksheets("DBase").Range(Rij & ":" & Rij).EntireRow.Hidden = False Then
      With ZoekUserForm.ZoekNaamCB
        lnr = 50 - Len(Join(Application.Index(Sheets("DBase").Cells(Rij, 1).Resize(, 3).Value, 1, 0), ""))
        .AddItem Worksheets("DBase").Cells(Rij, "A") & "," & Space(1) & Worksheets("DBase").Cells(Rij, "B") & Space(1) & Worksheets("DBase").Cells(Rij, "C") & Space(lnr) & " DNN: " & Format(Worksheets("DBase").Cells(Rij, "D"), "0##")
      End With
    End If
    Rij = Rij + 1
  Wend
End Sub

Dus onder ZoeknaamCB zitten dan namen met 3 kolommen.
Wat ik graag zou willen is die namen eruit halen, zodat ik hiermee de gegevens naar boven kan halen.
Dus bv in this case, had ik de 4e kolom de cijfers ff gelijk gemaakt.
Als ik nu sorteer op cijfer 012, blijven er 3 over.
met Abrams, Piet & Ab.
Nu zou ik graag dus deze gegevens gesplitst willen hebben, zodat ik met Abrahams kan zoeken en gegevens ophalen en dit dan ook met Piet & Ab.
 
Maak van je combobox eerst eens een combobox met 4 kolommen en vul hem zo:
Code:
Private Sub UserForm_activate()
    ZoekNaamCB.List = Sheets("DBase").Range("A9:D13").Value
End Sub
En begrijp ik het goed dat je wilt kunnen filteren op kolom D zodat je de genoemde drie namen overhoudt als je filtert op 012 (de glazenwassers zal ik maar zeggen)? En wil je dat via de tweede combobox doen?
 

Bijlagen

Yep,

ff nieuw vb-tje
Met de bovenste combobox (CattegorieCB) wordt gefilterd zeg maar.
Vervolgens dan gelijk de ZoekNaamCB overnieuw inlezen met de gefilterde namen.

Opzet is om hierna een matrix te maken met de gekozen namen en deze uitprinten of een PDF maken.
Dus de namen (met gegevens) die onder de gekozen categorie vallen moeten uiteindelijk apart gezet worden.
 

Bijlagen

Laatst bewerkt:
Zoiets dan ?
In de bovenste Combo selecteer je een nummer en in de onderste verschijnen dan de namen gerelateerd aan het geselecteerde nummer.
 

Bijlagen

Goedemorgen Warme bakkertje,

Zou inderdaad een mooie oplossing zijn, helaas gebruik excel 2003 en die pakt dat niet.
Geeft foutmelding 9
Subscript valt buiten het bereik.
 
Perfect, onder CattegorieCB geen dubbele namen.
Toppie, ben er bijna
Opzet is nu middels de namen alle gegevens te kopiëren en dit in een matrix te zetten voor printen / pdf
Hoe haal ik de namen uit elkaar onder ZoeknaamCB?
Staan nu 3 namen in die door de CattegorieCB zijn geselecteerd.
 
Laatst bewerkt:
Dan zal je toch met een iets uitgebreider verhaal moeten komen over hoe en waar de namen moeten komen.
Zet op een apart tabblad eens hoe en waar jij dan benodigde gegevens wil hebben.
 
In deze versie heb je de onderste Combo en de knop Doorgaan niet meer nodig.
Je selecteert een nummer in Categorie combo end de gegevens worden direct in H9:K9 geplaatst.
Bekijk eens of het iets voor jou is.
 

Bijlagen

Zou een mooie oplossing zijn,
Maar dan loop ik tegen een ander probleem op.
Opzet is op een opdracht (Enter) te geven.
In het Hoofdfile waar dit in komt staat standaard de CattegorieCB op "Alles", zou dan inhouden dat hij alles overzet. Is dus niet de bedoeling, vandaar dat er echt op een knop moet worden geklikt als men de CattegorieCB wil gebruiken voor een aparte Categorie.

Denk dat ik het snap. (corrigeer me als ik fout ben)
Tijdens het inlezen van de Data van CattegorieCB onder CattegorieCB_Change1() loopt gelijk de
CattegorieCB_Change() mee.
Dit is nieuw voor me, 2 changes??
Leest hij eerst change1() en dan change() ?

Zoals hierboven vermeld zou dit dus onder een knop moeten zitten (hier dus ff onder Doorgaan)
 
Helaas snb, werkt hier niet.
Ben een klein stapje verder.
Loop nog tegen 1 probleempje aan:
Hij wil de vergelijking Range en Items niet pakken??

Code:
Sub LeesComboBoxItems()
    Dim ws As Worksheet, cb As ComboBox, i As Integer, e As Integer, items As String
    
    ' Verwijzing naar het werkblad en de ComboBox
    Set ws = ThisWorkbook.Sheets("DBase")
    Set cb = ZoekUserForm.ZoekNaamCB
    
    ' Initialiseer de string voor de items
    items = ""
    
    ' Loop door de items van de ComboBox
    With Sheets("DBase")
      For i = 1 To cb.ListCount
        items = cb.List(i - 1) & vbCrLf       
        For e = 9 To 150
          If .Range("A" & e) = "" Then Exit For
          lRow = .Range("H" & .Rows.Count).End(xlUp).Row + 1    ' laatste regel
          If .Range("A" & e).Text = items Then ' DEZE WIL HIJ NIET PAKKEN
            .Range("A" & e).Resize(0, 4).Copy
            .Range("H" & lRow).PasteSpecial Paste:=xlPasteAll  ' plakt alles
          End If
        Next e
      Next i
    End With
End Sub
 

Bijlagen

Vragen staat uiteraard vrij, als het verband houd met deze vraag hier dan, anders open je gewoon een nieuwe vraag.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan