Problemen met combobox

Status
Niet open voor verdere reacties.

Sophie90

Gebruiker
Lid geworden
4 nov 2011
Berichten
46
Ik heb van alles geprobeerd, gegoogled enzovoorts, maar ik ben tot de conclusie gekomen dat ik het niet meer weet.
De bedoeling is dat ik met de combobox de datums kan kiezen die op het blad 'Data' staan. Vervolgens wil ik aan de gekozen waarde in de combobox een nummer koppelen in I8 (datum ("Data")G9 geselecteerd in combobox ->getal 1 in cel I8, datum ("Data")G10 geselecteerd -> getal 2 in I8 enz.).
Nu had ik het met de bestaande code voor elkaar dat de waarde in de dropbox werd overgenomen in ("Presentie")H16 en met het veranderen van de selectie van de cbb, veranderde de waarde keurig mee. Maar na een keer opslaan, werkt ook dit niet meer.

Op den duur had ik in het immediate venster
Code:
?[H16].Value = Sheets("Data").[I9]
getypt en kreeg ik keurig de waarde 'waar'. Helaas voerde het programma daarna niet de rest van de code uit.
Ik ben het even kwijt en ik denk dat ik wel wat hulp kan gebruiken...:D
 

Bijlagen

  • Test.xlsm
    118,2 KB · Weergaven: 50
Bedoel je zo?
 

Bijlagen

  • RE-Test.xlsb
    106 KB · Weergaven: 46
Serieus? Moest er alleen de code
Code:
Private Sub Worksheet_Activate()
ComboBox1.List = Sheets("Data").Range("E9:G18").Value
End Sub
in?
Ik voel me nu erg blond....
Nu gaat het idd zoals ik graag wilde. Dank je wel. Nu ga ik proberen om mbv het userform de namen met checkboxen te registreren op het blad 'Totaaloverzicht', bij de datum die in de combobox of kolom 'les' staat. Ik denk dat ik nog wel eens om hulp ga vragen ;)

edit:
even je code goed bekeken. Je pakt E9 tm G18 als range. Hiermee neemt hij dus ook de lesnummers mee? Waarom zijn die dan niet zichtbaar in de combobox? (Dat hoeft ook niet, maar ik probeer de logica te begrijpen.)
edit_2:
Nu geeft de combobox alleen maar de nummers ipv de datums....?
 
Laatst bewerkt:
Als je naar de eigenschappen van je combobox gaat kun je dit instellen.
met columncount laad je het aantal kolommen (3 ) Kolom E t/m G
met columnwidths kun je ze verbergen dmv de breedte aan te passen
je kunt ook een datum kiezen en de waarde die daar aangekoppelt is weg laten schrijven ipv de datum
(volgens mij had ik dat in je bestandje toegepast)
 
Laatst bewerkt:
Mag ik vragen hoe je dat apart wegschrijven hebt gedaan? Ik probeer je oplossing in de orginele file te krijgen, maar ik krijg hem niet werkend. Van de combobox heb ik de RowsCount op 3 gezet, maar ik heb nog steeds een nummer in de list ipv een datum.

edit;
ik denk dat ik hem heb. ColomnWidth op 0pt;0pt
 
Laatst bewerkt:
Hou het bij voorkeur simpel

Code:
Private Sub ComboBox1_change()
 If ComboBox1.ListIndex = -1 Then Cells(8, 9).Value = "" Else Cells(8, 9).Value = ComboBox1.Column(0)
End Sub

Code:
Private Sub Worksheet_Activate()
  ComboBox1.List = Sheets("Data").Range("G9:G18").SpecialCells(2, 1).Offset(, -2).Resize(, 3).Value
    For j = 0 To ComboBox1.ListCount - 1
      ComboBox1.List(j, 2) = Format(ComboBox1.List(j, 2), "dd-mm-yyyy")
    Next
End Sub
 

Bijlagen

  • RE-Test.xlsb
    102,1 KB · Weergaven: 61
Bedankt, VenA.
Als ik het goed begrijp, moet hier ook de Columncount op 3 en Width op 0pt;0pt?
Ik heb het zonder geprobeerd, maar dan krijg ik weer nummers ipv de data.
 
Nu probeer ik met de volgende code om een kruisje te zetten bij de namen die met een checkbox zijn aangevinkt in het blad 'totaaloverzicht';
Code:
Private Sub CommandButton1_Click()

Dim i As Integer
Dim n As Integer
Dim LesNr As Integer

LesNr = cbDatum.Column(0)
    
'waarde textbox vergelijken in rij B7:B38 en bij ingestelde datum een kruisje zetten
For i = 1 To 38
  If ("CheckBox" & i) <> "" Then
  sNaam = Presentieform.Controls("TextBox" & i).Value

    With Sheets("Totaaloverzicht")
        Set sNaamFound = .Columns(2).Find(What:=sNaam, After:=.Cells(8, 2), LookIn:=xlValues, LookAt:= _
        xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False)

        n = LesNr + 1
        Sheets("Totaaloverzicht").Columns(2).Find(sNaam.Value).Resize(, 12).Offset(, n) = "X"
    End With
   End If
Next
  
End Sub
De bedoeling is dat het lesnummer in het userform wordt gelezen om zo te bepalen in welke kolom er een kruisje moet komen staan. Ik krijg met bovenstaande code echter foutmeldingen..
 
Ik wilde het huidige bestand uploaden, maar krijg steeds de melding dat de upload mislukt is...? De combobox en lesnr heb ik in elk geval verplaatst naar het userform. Combobox1 = cbDatum geworden.
 
Laatst bewerkt:
Welke extensie heeft het bestand ?

Wat is de omvang van het bestand ?

Code:
If ("CheckBox" & i)

Is geen correcte VBA syntaxis.
 
Laatst bewerkt:
Plaats het als .xlsb extensie?

Een checkbox is: True of False, en bij Triplestate = True drie standen 'Null, True of False.

In geval van onderstaand stukje wordt gevraagd of de checkbox True is, dan ga verder.
Code:
If [COLOR=#ff0000]me[/COLOR]("CheckBox" & i)  Then
  sNaam = [COLOR=#ff0000]me[/COLOR]("TextBox" & i).Value
 
Juist...
Ik heb de code als volgt aangepast:
Code:
Private Sub CommandButton1_Click()

Dim i As Integer
Dim n As Integer
Dim LesNr As Integer


    
'waarde textbox vergelijken in rij B7:B38 en bij ingestelde datum een kruisje zetten
If cbDatum <> "" Then
    LesNr = cbDatum
    For i = 1 To 38
     If Me("CheckBox" & i) = True Then
         sNaam = Me("TextBox" & i).Value

        With Sheets("Totaaloverzicht")
            Set sNaamFound = .Columns(2).Find(What:=sNaam, After:=.Cells(8, 2), LookIn:=xlValues, LookAt:= _
            xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False)

            n = LesNr + 1
            Sheets("Totaaloverzicht").Columns(2).Find(Me("TextBox" & i).Value).Resize(, 12).Offset(, n) = "X"
        End With
     End If
    Next
    'Unload Me
Else: MsgBox "Kies eerst een lesdatum.", , "Let op"
End If

End Sub

Hij schrijft nu inderdaad een "x" weg, maar dan niet alleen bij de kolom waar het moet, maar ook in alle kolommen aan de rechterkant van de juiste cel.
De bedoeling is dat hij enkel 1 cel beschrijft.

nb: als xlsb lukt ook niet. Wellicht te groot?
 
Laatst bewerkt:
Kijk hier eens naar.
Code:
[COLOR=#333333][FONT=monospace]Sheets("Totaaloverzicht").Columns(2).Find(Me("TextBox" & i).Value)[/FONT][/COLOR][COLOR=#0000cd].Resize(, 12).Offset(, n)[/COLOR][COLOR=#333333][FONT=monospace] = "X"[/FONT][/COLOR]
 
Laatst bewerkt:
Mijn gedachte: Om alle datacellen binnen bereik te krijgen, moet de range worden uitgebreid naar de 11 kolommen ernaast (ivm de lesdatum die bovenaan de kolommen staat).
De offset had ik gebruikt om te zorgen dat de waarde x in de goede rij ook in de goede kolom terecht komt (bij de ingestelde lesdatum).

Ik weet niet hoe ik dit anders moet oplossen. columnOffset geeft een foutmelding..

edit:
Je hebt me op de goede weg geholpen! De Resize verwijderd en voila!
 
Laatst bewerkt:
@So


5,7 Mb verplaatsen voor een vraag over een combobox (4k) lijkt me ook inderdaad niet in verhouding.

Niemand vindt het erg als je een klein en voor iedereen overzichtelijk voorbeeldbestand maakt dat puur gericht is op je Combobox-vraag.
Dat accepteert zelfs de software van dit forum.
 
Je hebt helemaal gelijk. Ik dacht dat het duideiljker zou zijn om het gehele bestand mee te sturen, omdat er nogal wat over verschillende pagina's gaat en er veel met elkaar 'verbonden' is.
Volgende keer zal ik het bestand wat laten krimpen ;)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan