• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

specialcells

Status
Niet open voor verdere reacties.

Djang

Gebruiker
Lid geworden
11 sep 2013
Berichten
99
Hoi ,
in combobox1 zie je geen lege cellen in combobox2 wel
hoe kan ik specialcells combineren met een cel(len) naam ?

P.S. gelieve ook een beetje uitleg te geven

Bekijk bijlage test1.xlsm
 
In plaats van dit:
Code:
ComboBox2.RowSource = "namen"

Kun je dit gebruiken om de lege cellen over te slaan:
Code:
For i = 1 To Range("namen").Count
    If Range("namen")(i) <> "" Then ComboBox2.AddItem Range("namen")(i)
Next i
 
Laatst bewerkt:
Hoi edmoor ,
bedankt voor je reactie , dit werk idd maar is nogal uitgebreid .
het is namenlijk een onderdeel van een groter programma .
ik heb al een beetje bijgevoegd
het is de bedoeling als je in cmb1 10 invoert dat in cmb2 naamvak namen komt te staan als je 11 invoer komt er namen_2 in te staan enz .
en wat je invult in cmb2 zou op blad 2 de gegevens moeten invoeren , bv piet dan moet hij naamvak adres_piet invoeren

Bekijk bijlage test1.2.xlsm
 
Nu je nog bezig bent met het maken van een groter programma zou ik toch sterk overwegen om eerst eens over de opzet na te denken.

Deze zal het gevraagde voor het vullen van de comboboxen vast wel doen.

Code:
Private Sub Cmb1_Change()
    If Cmb1.Value = 10 Then Cmb2.RowSource = "namen"
    If Cmb1.Value = 11 Then Cmb2.RowSource = "namen_2"
End Sub

Dus de change bij Cmb1 ipv Cmb2. 10 is wat anders dan "10" (getal vs tekst). namen_2 (zou een variabele in de code kunnen zijn) is weer iets anders dan "namen_2" (wat een bereik aangeeft)
 
Hoi VenA , bedankt voor je reactie .

De opzet is heel duidelijk , het moet dienen om feesten in te geven voor een cateraar .
dit wil dus zeggen dat ik verschillende soorten feesten heb met verschillende menu's , aantal personen , verschillend materiaal wat nodig is enz .
omdat de menu's , prijzen enz regelmatig veranderen werk ik met naamvakken .

jou formule werkt idd , bedankt . kan je me ook vertellen hoe ik de lege cellen in een cmb met naamvak kan verbergen
 
Hoe je lege cellen kunt overslaan staat al in #2.
 
Voor mij is de opzet niet duidelijk. Als je bestandje gaat maken zorg er dan voor dat het duidelijk is wat waar staat dmv kolomkoppen. In bv kolom A staan eerst wat getallen netjes onder elkaar. Dus daar kan je wat mee. Vanaf rij 18 staan er ineens adresgevens? en deze staan dan weer niet logisch.

kan je me ook vertellen hoe ik de lege cellen in een cmb met naamvak kan verbergen
heb je het door @edmoor in #2 voorgestelde geprobeerd?

En anders moet je jouw namenbereik dynamisch maken.
 
Je zou het voorbeeld van VenA zo kunnen doen:
Code:
Private Sub ComboBox1_Change()
    Dim Bereik As String
    Dim i As Integer
    
    Select Case ComboBox1
        Case 10
            Bereik = "namen"
        Case 11
            Bereik = "namen_2"
    End Select
    
    ComboBox2.Clear
    For i = 1 To Range(Bereik).Count
        If Range(Bereik)(i) <> "" Then ComboBox2.AddItem Range(Bereik)(i)
    Next i
    
End Sub
 
@VenA idd je hebt gelijk , dit had ik ondertussen al veranderd .
zoals je ziet aan de bestands naam" test "is dit een bestand waar ik dingen in uitprobeer.

de edmoor#2 werkt idd maar mijn 2de vraag was ook of dit niet eenvoudiger ging zoals in cmb1
 
In cmb1 krijg je eventuele lege cellen ook mee.
 
@ edmoor , als ik het hier test krijg ik in Cmb1 maar tot 24 te zien en geen lege cellen eronder
 
Maak maar eens een tussenliggende cel leeg.
 
Zoals eerder geschreven maak er een dynamisch bereik van. Maar wees dan wel consequent. Wat moet er eigenlijk gebeuren als er 12 of 24 geselecteerd wordt? Als je dat allemaal in code wil "vangen" dan ben je er volgens mij nog wel even zoet mee.
 

Bijlagen

Het voorbeeld van VenA werkt hier prima. Dus ook ComboBox2 wordt netjes gevuld.
Je hebt niet het bestand gebruikt dat hij toevoegde. Daarin is het dynamische bereik geregeld.
 
Laatst bewerkt:
Idd , sorry was iets te snel met reactie , werkt wel

graag een woordje uitleg
Cmb1.RowSource = "Nummer" , hoe weet hij nu dat hij onder Nummer moet zoeken als deze als bereik in naamvak staat ?
 
Tja. Ik denk dat je je zelf eerst maar eens een beetje moet verdiepen in excel en VBA. Er staat toch niets anders dan in de andere code.
 
@VenA , dit is juist wat ik probeer te doen " mij verdiepen in VBA" daarom dat ik wat uitleg vraag ! !
 
Ik begrijp je laatste vraag niet. In ComboBox1.RowSource = "Nummer" geeft het woord Nummer aan dat het bereik met de naam "Nummer" moet worden gebruikt. Dat lijkt me logisch.

Omdat je je in VBA wilt verdiepen kun je ook eens hier kijken:
http://www.excel-pratique.com/en/vba.php

En dat is slechts 1 van de vele sites waar je met VBA zelfstudie aan de slag kunt.
 
Laatst bewerkt:
emoor , thanks ,
ik ben gewoon van in het naamvak te kijken voor namen en daar staan Nummer niet tussen je ziet het wel via Formules/namenbeheren

nu wil ik nog als je aan naam aanduid in Cmb2 dat hij het adres zit op blad2 B

If Cmb2.Value = inge Then Range("B3").Value = "Adres_inge"

Kan je me vertellen wat mis is met de volgende code .

PS ik ben op verschillende site's cursussen aan't leren en heb ook de boeken excel 2010 grand cru en macro's en vba in excel 2007
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan