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

Makkelijkere notatie??

Status
Niet open voor verdere reacties.

Eddy v

Gebruiker
Lid geworden
3 mrt 2003
Berichten
103
Pff ben ik weer (schaam schaam)

Weet iemand een makkelijker of nettere notatie voor

If CheckBox1 And CheckBox2 And CheckBox3 And CheckBox4 And CheckBox5 And CheckBox6 And CheckBox7 And CheckBox29 And CheckBox30 And CheckBox31 And CheckBox32 = True Then

En is er een mogelijk om meerdere checkboxen in een keer false of true te maken?

Groetjes Eddy.
 
Hoi Eddy,

vind je dat iets om je voor te schamen?
Dit lijkt toch een vraag die niet zomaar is op te lossen?

Voeg twee commandbuttons aan je Userform toe.
(Commandbutton1 en Commandbutton2)

Button 1 maakt alle checkboxes leeg; Button 2 telt het aantal aangevinkte checkboxes.

Private Sub CommandButton1_Click()
Dim c As Control
For Each c In Me.Controls
Select Case TypeName(c)
Case "CheckBox"
c.Value = False
End Select
Next
End Sub

Private Sub CommandButton2_Click()
Dim c As Control
Dim i As Integer
For Each c In Me.Controls
Select Case TypeName(c)
Case "CheckBox"
If c.Value = True Then _
i = i + 1
End Select
Next
MsgBox "Er zijn er " & i & " aangevinkt"
End Sub

Luc
 
Kijk dat is een begin..

Alleen ik heb het volgende probleem.
Niet alleen checkboxen moeten leeg.

Ik moet kontroleren op 11 checkboxen (niet op een volgende) en als ze allee 11 true zijn moet een 12de checkbox true worden en de vorige 11 false.

Gr Eddy.
 
Hoi Eddy,

Het was effe een uitdaging voor me om een dergelijke code in elkaar te knutselen.

En die code is best bruikbaar indien het zou gaan om zeer veel checkboxes (Zelfs een onbekend aantal... maar daar zit dan nog moeilijkere code achter om die in het userform te krijgen).

Maar in uw geval gaat het om 'slechts' 11 boxes. Ik zou vrijwel dezelfde code gebruiken als jij al hebt. Hier ga je dus werkelijk je tijd verspillen aan iets waar je niet echt veel mee gaat winnen.

Luc
 
Luc,

Bedankt voor je tips...
Ik dacht misschien kan het op een makkelijker of eigenlijk beter gezet mooiere manier.
(net progammeren weet je nog ;-) )

Maar dan even over het false maken van de 11 boxen.
Moet ik dat echt een voor een doen??

bv..

checkbox1 = false
checkbox2 = false
checkbox3 = false
enz...

of kan ik ook met & of and of zo werken??

bv

checkbox1 & checkbox2 & checkbox3 enz.... = false

Gr Eddy.
 
Neen, zoals jij het voorstelt gaat het niet.

Een hoop methodes en eigenschappen aan één 'ding' toewijzen, gaat met deze methode:

With x
...
...
End With

Een eigenschap methode toewijzen aan een groep gaat met dit:

For Each x in ....
...
Next

Deze laatste methode heb ik dus gedemonstreerd.
Mogelijk is er ook nog een oplossing via klassemodules (maar dat durf ik niet onmiddellijk zeggen)... maar hier haal je dan toch een kanon boven om op een mug te schieten.

Luc
 
Dan nu uhh een hele domme vraag...

Hoe maak ik de knop die ik naar mijn userform laat verwijzen al ik er op klik??

Dus de knop die in jou voor beeld in blad 1 staat
(' TOON USERFORM') en als je er op klink het form
komt.

Het lukt mij wel de balk te maken met werkset besturings systemen.
Maar hoe koppel ik er dan een marco aan vast die
zeg dat als je op die knop klikt het userform moet worden aangeroepen??

Gr eddy..
 
Hoi Eddy,

Probeer het ' s met de werkbalk 'Formulieren'... dan gaat het bijna automatisch.

Luc
 
Geweldig...

Langzaam maar zeker wordt ik ook wijzer merk ik wel..

Maar uhh Luc.... wat voor werk doe jij eigenlijk??
Ben je progammeur of zo?? want pff jij weet wel heeeeeeel veel...

Ok dan nog maar meteen even een vraag.

Als ik dan zo'n command button heb gemaakt waar mee ik het userform1 oproep. Kan ik daar dan opgeven waar ik het userform wil laten opkomen/plaatsen??

Gr Eddy..
 
Hoi Eddy,

Om de positie te bepalen van het Userform, moet je naar de VBA editor gaan (Alt F11)
Daar selecteer je het Userform, en dan zoek je in het venster 'Eigenschappen' de eigenschap: StartUpPosition op.
Vervolgens zet je de eigenschappen Top en Left zoals jij wil. Standaard staan die op 0... laat dit dus effe op 0 staan.
En toon uw Userform opnieuw... het zal nu helemaal linksbovenaan verschijnen.

Indien je het venster eigenschappen niet mocht ontdekken... je kan dit oproepen via het menu Beeld in de VBA editor.

En ik ben inderdaad programmeur. (Zelfstandig)

Luc
 
Kijk dat maakt veel duidelijk...
Daarom weet jij zo veel..

Dat is mooi en zo te zien aan je aantal posts heb je ook
veel zin in je werk...

Zou je dan eens naar mijn 'progamma' willen kijken
misschien dat jij of misschien nog andere mensen nog wat tips hebt.


Ik moet regelmatig bestellingen maken voor onderhoud van verschillende machine's en dat wil ik wat makkelijker maken door gewoon onderdelen aan te klikken in een lijst en daarna zelf een lijst te laten samen stellen.
 

Bijlagen

Hallo Eddy,

Er zijn veel mogelijkheden. Indien het enkel gaat om het aanvinken van wat onderdelen, dan zou je in Excel kunnen blijven... indien je de bestellingen ook nog 's wil opslaan... en later terug ophalen, dan kan je misschien uitkijken naar Access.

Maar zoals jij het nu gemaakt hebt, heb je er behoorlijk wat onderhoud aan, indien je je lijst wil uitbreiden. Je hebt immers een aantal buttons, en tekstboxes in je form gezet... maar indien er in de toekomst meer moeten komen, dan moet je die forms opnieuw gaan maken.

Handiger zou zijn om gebruik te maken van een listbox, die zichzelf aanpast, afhankelijk van het aantal artikelen dat op het werkblad te vinden is.

Hier heb je een voorbeeld (Niet uitgewerkt... is enkel een voorbeeld hoe een listbox te vullen, en er voor te zorgen dat je meerdere producten kan aanvinken)

Luc
 

Bijlagen

inderdaad dat is een beter oplossing met dat listbox..
Maar ja dan loop ik weer vast tegen het volgende...

Hoe doe ik dan wat ik deed met :

'Bestelling afronden in plaatsen op blad1'

teller = 1 'teller voor het bepalen welke cel de informatie geplaats moet worden'
teller1 = 1 'teller voor kijken naar alle 49 checkboxen'

For b = 1 To 50
If Me("checkbox" & teller1) = True Then
.Cells(teller, 1).Value = teller1
.Cells(teller, 2).Value = Me("textbox" & teller1).Value
teller = teller + 1
End If
teller1 = teller1 + 1
Next b
 
Ok dat gaat nu inderdaad goed :-)

Maar ja ik blijf natuurlijk problemen houden.

Als er dus bepaalde onderdelen zijn geselecteerd
dan moeten deze dus niet besteld worden maar dan moet er een pakket besteld worden.

Ik probeer het met :

If model = "KC7030" Then
If ListBox1.Selected(23) And ListBox1.Selected(24) And ListBox1.Selected(25) And ListBox1.Selected(26) And ListBox1.Selected(27) And ListBox1.Selected(28) = True Then
ListBox1.Selected(23) = False
ListBox1.Selected(24) = False
ListBox1.Selected(25) = False
ListBox1.Selected(26) = False
ListBox1.Selected(27) = False
ListBox1.Selected(28) = False
ListBox1.Selected(50) = True
End If
End If

Alleen listbox1.selected(50) = true kan niet :-(
daarmee wil ik dus automatische het pakket aanvinken.
 
Natuurlijk gaat dit niet.
Excel kan toch niet altijd zo makkelijk doen :p

Wij zijn gewoon om als we iets tellen te beginnen met 1.
In een Listbox is excel gewoon om te tellen vanaf 0.

3 Items in een listbox zijn voor ons dus gewoon 3 Items.
Maar.... voor Excel zijn dit slechts 2 Items.

Je hebt dus:
ListBox.List(0)
ListBox.List(1)
ListBox.List(2)

Overal dus ééntje aftrekken.

Luc
 
Hoe simpel dingen toch ooit kunnen zijn :-)

Wordt ik nog niet lastig??

Want ja ik blij vragen...

Nu ben ik eigenlijk opzoek naar een oplossing op
de knoppen per model te vervangen door een
scroll balk die ik dan makkelijk kan aanpassen als er een ander model bij komt.

Dus dat knoppen KC7030 en KC7033 in een scollbalk komen
En als en nog modellen bij komen deze dus makkelijk bij gezet kunnen worden.

Gr Eddy..
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan