Ik vul een Array vanuit een Excel-bestand. Sommige rijen hebben een enkele lege cel. De eerste kolom in de Array wordt gebruikt om ComboBoxen mee te bevolken. De zes andere kolommen bevatten returnwaarden.
De code die ik nu gebruik is:
Private Sub UserForm_Initialize()
Set xlApp = CreateObject("Excel.Application")
Set xlWB = xlApp.Workbooks.Open("Z:\informatie.xlsx")
Set xlWS = xlWB.Worksheets(1)
cfsData = xlWS.Range("A1:G100").Value
ComboBox1.List = cfsData
xlApp.Quit
Set xlWS = Nothing
Set xlWB = Nothing
Set xlApp = Nothing
End Sub
Het probleem met deze code is dat er bij minder dan 100 rijen, lege plaatsen ontstaan in de ComboBox.
Omdat het aantal rijen kan veranderen, heb ik een dynamische inleesmogelijkheid nodig. Ik zoek naar een manier om een Array te vullen vanuit het Excel-bestand, waarbij rekening wordt gehouden met het wisseldende aantal rijen. Zonder dat daarmee rijen die enkele lege cellen hebben, in het gevaar komen.
Dus ofwel worden de lege rijen gedropt wanneer ik de Array vul, ofwel wanneer ik de ComboBox vul. Nu is er in Excel iets wat UsedRange heet, maar dat is niet beschikbaar binnen Outlook.
Tweakers, uw gedachten in de vrije loop graag
De code die ik nu gebruik is:
Private Sub UserForm_Initialize()
Set xlApp = CreateObject("Excel.Application")
Set xlWB = xlApp.Workbooks.Open("Z:\informatie.xlsx")
Set xlWS = xlWB.Worksheets(1)
cfsData = xlWS.Range("A1:G100").Value
ComboBox1.List = cfsData
xlApp.Quit
Set xlWS = Nothing
Set xlWB = Nothing
Set xlApp = Nothing
End Sub
Het probleem met deze code is dat er bij minder dan 100 rijen, lege plaatsen ontstaan in de ComboBox.
Omdat het aantal rijen kan veranderen, heb ik een dynamische inleesmogelijkheid nodig. Ik zoek naar een manier om een Array te vullen vanuit het Excel-bestand, waarbij rekening wordt gehouden met het wisseldende aantal rijen. Zonder dat daarmee rijen die enkele lege cellen hebben, in het gevaar komen.
Dus ofwel worden de lege rijen gedropt wanneer ik de Array vul, ofwel wanneer ik de ComboBox vul. Nu is er in Excel iets wat UsedRange heet, maar dat is niet beschikbaar binnen Outlook.
Tweakers, uw gedachten in de vrije loop graag