• 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.

VBA, Cel 2 vullen met een ComboBox

Status
Niet open voor verdere reacties.

veenvlij

Gebruiker
Lid geworden
4 dec 2008
Berichten
23
Met behulp van VB code wil ik cel 2 van kolom “Naam” vullen met een ComboBox met waarden uit Blad2$A:$A.

Kolom “Naam” kan per aangeleverd bestand op verschillende posities staan

Met gegevensvalidatielijst lukt dit prima (met dank aan Lam201)
Daar de waarden op Blad2$A:$A over de 100 kunnen gaan is het handiger om te kunnen zoeken m.b.v. een ComboBox.

Iemand een idee hoe dit te realiseren in VBA ?
Alvast bedankt voor de hulp.

VBA voor gegevensvalidatielijst van Lam201

Sub VulDropdownList()

Dim str As String
Dim c As Long
Dim r As Long

str = "Naam"

'--Zoek "Opbrengstcategorie" in rij 1--
If WorksheetFunction.CountIf(Range("1:1"), str) > 0 Then
c = WorksheetFunction.Match(str, Range("1:1"), 0)
Else
MsgBox str & " niet gevonden", vbCritical
Exit Sub
End If


'--Aantal rijen met data validatie bepalen op kolom A--
r = WorksheetFunction.CountA(Range("A:A"))
If r < 2 Then r = 2

'--Gegevens validatie toepassen--
With Range(Cells(2, c), Cells(2, c).Offset(r - 2, 0))
With .Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=Blad2!$A:$A"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
End With

End Sub
 

Bijlagen

omdat uw code, die feitelijk tussen codetags moest schrijven, iets anders wil dan uw uitleg heb ik er maar 2 verschillende knoppen opgezet.
benoem uw bereik op blad 2 als "naam" dan moeten er niet een paar duizend lege cellen in uw validatie lijst staan.
 

Bijlagen

Als een cel validatie bevat hoeft die alleen maar aangepast te worden:

Code:
Sub M_snb()
    selection.validation.modify , , , "=Blad2!" & Blad1.columns(1).specialcells(2).address
end sub

Als een cel geen validatie bevat is dit voldoende:

Code:
Sub M_snb()
    selection.validation.add 3, , , "=Blad2!" & Blad1.columns(1).specialcells(2).address
end sub

Als het aantal cellen met validatie in bijv. kolom K overeen moet komen met het aantal items in kolom A

Code:
Sub M_snb()
    Blad1.columns(1).specialcells(2).offset(,10).validation.add 3, , , "=Blad2!" & Blad1.columns(1).specialcells(2).address
end sub
 
Laatst bewerkt:
Hallo SNB en Emields

Bedankt voor de reactie, het is echter niet hetgeen ik bedoel.

In de voorbeeld code (van Lambert) wordt de kolom naam gevuld met een gegevensvalidatielijst.

nu wil ik i.p.v. de gegevens validatielijst een ComboBox om sneller te kunnen zoeken door te kunnen typen, is in validatielijst niet mogelijk..
 
Laatst bewerkt:
Maak er een intelligente tabel (listobject) van zoals hier in het voorbeeld, dan maakt het niet uit waar de kolom "Naam" zich bevindt.
In de overige kolommen werkt het niet.
Dubbelklik in kolom "naam" en typ wat letters.

Verander de tekst "Naam" in wat anders en maak een ander kolom met als kopnaam "Naam" en zie dat het nu alleen in die kolom werkt.
 

Bijlagen

Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan