Excel - Maak drop-down lijst op bepaalde cellen

Kwestie

Ik wilde een vervolgkeuzelijst maken van gegevens in Blad2. Ik heb de volgende codes geprobeerd, maar de uitkomst lijkt onjuist te zijn. In plaats van de gegevens in Blad2 die in de vervolgkeuzelijst worden vermeld, bevatte de vervolgkeuzelijst de gegevens van Blad1 (dit is mijn bestemmingspagina).

Ook zou ik de vervolgkeuzelijst willen hebben voor bepaalde cellen waar ik eerder informatie over de cellen heb, dat wil zeggen dat de vervolgkeuzelijst in kolom F van Blad1 moet staan ​​waar informatie staat over kolom E van Blad1 en die tot het einde van de lijst.

Hierbij is het bestand waar ik aan werk hier aan toegevoegd.

Oplossing

U maakt een validatielijst van ANOTHER WORKSHEET en geeft een bereiknaam aan die validatielijst (in sheet2)

en gebruik dat als de formule

Ik heb geprobeerd om je macro aan te passen zonder te storen, behalve het wijzigen van een of twee regels

Ik heb bereiknaam als "rangenaam" opgegeven. je kunt het in de macro veranderen

Breid het indien nodig nog iets verder uit.

 Sub Dropdown () Dim x As Long, y As Long Dim objCell As Range Dim objDataRangeStart As Range Dim objDataRangeEnd As Range Dim rangename As String '>> Stel het bereik in voor geldige gegevensset wsSourceList = Sheets ("Sheet2") Set wsDestList = Sheets ("Blad1") Stel objDataRangeStart = wsSourceList.Cells in (1, 2) 'Beginbereik voor dropdownlijstitems Set objDataRangeEnd = wsSourceList.Cells (6, 2)' Einde bereik voor dropdownlijstitems MsgBox objDataRangeStart MsgBox objDataRangeEnd '==== ============= Met werkbladen ("Sheet2") Range (objDataRangeStart, objdatarangaeend) .Name = "rangename" End With '=============== ====== '>> Validatie instellen op vereiste cel' Set objCell = wsDestList.Cells (8, 4) 'Locatie van de dropdown-lijst' MsgBox objCell x = 4 y = 6 Do Set objCell = wsDestList.Cells (x, y) 'Locatie van de vervolgkeuzelijst met objCell.Validation. Verwijderen'. Type toevoegen: = xlValidateList, AlertStyle: = xlValidAlertStop, Operator: = xlBetween, Formula1: = "=" & objDataRangeStart.Address & ":" & objDataRangeEnd. Adres '= ==========================. Type toevoegen: = xlValidateList, AlertStyle : = xlValidAlertStop, Operator: = _ xlBetween, Formula1: = "= rangename" '============= ================ .IgnoreBlank = True .InCellDropdown = True .ErrorTitle = "Waarschuwing" .ErrorMessage = " Selecteer een waarde uit de lijst die beschikbaar is in de geselecteerde cel. " .ShowError = True-end met x = x + 1 'y = y + 1 Loop tot x = 51 End Sub 

Bedankt aan venkat1926 voor deze tip.

Vorige Artikel Volgende Artikel

Top Tips