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

ColumnCount en ColumnWidths krijg ik niet via vba ingesteld

Status
Niet open voor verdere reacties.

sanders1969

Gebruiker
Lid geworden
29 dec 2018
Berichten
243
Kan iemand mij helpen om via een knop in een userform de ColumnCount en ColumnWidths te kunnen wijzigen?
In Access gebruik ik de eigenschap: "Rowsource" echter kreeg ik daar een error dus heb ik "even" de additem gebruikt.
Wanneer ik de userform opent krijg ik maar één kolom te zien en staan ze dus onder elkaar ipv 1 en Rekening1 naast elkaar en 2 en Rekening2 naast elkaar
Ik gebruik eigenlijk nooit Excel userforms maar deze klant wil teveel zaken vooraf ingeregeld hebben en niet migreren naar Access ;-( dus moest ik wel.
Ik ben al een tijd online aan het rondkijken maar geen ene code werkt.
Wellicht hebben jullie code liggen wat meteen werkt dan zet ik deze erin.
Of moet ik de combobox een bepaalde instelling meegeven zoals: RowSourceType echter liep deze ook vast toen ik deze probeerde te wijzigen.
Trouwens de rowsource is geen range van een paar cellen en betreft puur waarden die ik via vba erin plaats.

Private Sub CommandButton1_Click()

'Me.ComboBox2.Rowsource="1;Rekening1;2;Rekening2;"
Me.ComboBox2.AddItem "1"
Me.ComboBox2.AddItem "Rekening1"
Me.ComboBox2.AddItem "2"
Me.ComboBox2.AddItem "Rekening2"

Me.ComboBox2.ColumnCount = 2
Me.ComboBox2.ColumnWidths = "500;2000;"

End Sub
 
Zie de oplossing niet.
Kennelijk doe ik iets fouts omdat je mij stuurt naar een pagina hoe ik iets moet aangeven.
Mijn excuses hiervoor maar weet jij een oplossing over hetgeen waarover ik berichtte?
 
Oh ik krijg de indruk dat ik dit in een commerciële opdracht gebruik echter als de oplossing wordt geleverd kunnen anderen hier toch gebruik van maken?
Vrijwel iedereen die hier een vraag stuur zal dit toch zakelijk gebruiken en vrijwel niet voor een hobby.
Dit is toch tevens een soort databank voor andere gebruikers die in excel bezig zijn.
 
Ik denk dat @emields een voorbeeldbestandje bedoelt.

Waarom een combobox vullen met een knop?

Code:
Private Sub UserForm_Initialize()
  Dim ar(1, 1)
  For j = 0 To 1
    ar(j, 0) = j + 1
    ar(j, 1) = "Rekening" & j + 1
  Next
  With ComboBox2
    .ColumnCount = 2
    .List = ar
  End With
End Sub
 
Hoi VenA

Het is gelukt hoor en veel dank!
Waarom via een knop?
Omdat deze knop een filter waarde meegeeft zodat pas dan de combobox gevuld wordt.
 
Vandaar de vraag om een voorbeeldbestand. Nu is het een wel erg statische code.
 
Stom ik heb kennelijk een verkeerde voorbeeld gegeven.
Hoe krijg ik de volgende items in een combobox:
Rekening 1 ABN
Rekening 2 ING
Onderstaande kan je alleen de eerste kolom als getal invullen terwijl dit een tekst moet zijn namelijk: Rekening 1 of Rekening 2.
In Access is het toch veel makkelijker want dan kon je in de RowSource: "Rekening 1;ABN;Rekening 2;ING;" instellen.
Ik zie in de combobox in excel een eigenschap RowSource

Private Sub UserForm_Initialize()
Dim ar(1, 1)
For j = 0 To 1
ar(j, 0) = j + 1
ar(j, 1) = "Rekening" & j + 1
Next
With ComboBox2
.ColumnCount = 2
.List = ar
End With
End Sub
 
Opgelost:
Code:
Private Sub UserForm_Initialize()

    With cboRekeningnummers
        cboRekeningnummers.ColumnCount = 2
        cboRekeningnummers.ColumnWidths = "100;50;"
        For i = 1 To 2
            .AddItem "Rekening " & i
            If i = 1 Then
                .List(.ListCount - 1, 1) = "ABN"
            Else
                .List(.ListCount - 1, 1) = "ING"
            End If
        Next
    End With
        
End Sub
 
Of:
Code:
Private Sub UserForm_Initialize()
Dim sv(1, 1), sq, i As Long
sq = Array("rekening 1", "ABN", "rekening 2", "ING")
 For i = 0 To 1
   sv(i, 0) = sq(i * 2)
   sv(i, 1) = sq(i * 2 + 1)
 Next i
 ComboBox1.List = sv
End Sub
 
of

Code:
Private Sub UserForm_Initialize()
  ar = Split("ING ABN RABO")
  ReDim ar1(UBound(ar), 1)
  For j = 0 To UBound(ar)
    ar1(j, 0) = j + 1
    ar1(j, 1) = ar(j)
  Next j
  ComboBox1.List = ar1
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan