Actie uitvoeren na het klikken op een knop

Status
Niet open voor verdere reacties.

ronaldo12

Gebruiker
Lid geworden
10 mrt 2014
Berichten
48
Heey allemaal ik had een vraagje,

Is het mogelijk om een variabele i steeds met 1 op te hogen zodra er op een knop wordt geklikt?
Dus i begint met de waarde 0, na één keer klikken op de knop wordt deze 1, na twee keer klikken 2, etc.
De code die ik momenteel heb is als volgt:

Code:
    i = 0
    If cmdVerplaats.Enabled = True Then
        i = i + 1
    End If

De naam van de knop is "cmdVerplaats", de code hierboven werkt jammer genoeg niet.
Als iemand een oplossing heeft hoor ik die graag!
 
Laatst bewerkt:
Zou dit dan niet voldoende zijn?
Als "enabled = false" is kan je er toch niet op klikken.

Code:
Dim i As Integer

Private Sub cmdVerplaats_Click()
        i = i + 1
End Sub
 
Ik heb alleen naar het gebruik van de variabele gekeken, maar je hebt helemaal gelijk :)
 
De warmte Ed. :)
 
Dat zal het zijn. Ik ga zo verkoeling zoeken in de Veluwse bossen onder het genot van een:
Grolsch.jpg
 
Maak me gek. :thumb:
Proost!
 
Declareer de i buiten je Sub anders geldt hij alleen binnen de Sub:
Code:
Dim i As Integer

Private Sub cmdVerplaats_Click()
    If cmdVerplaats.Enabled = True Then
        i = i + 1
    End If
End Sub

Voor een korte uitleg zie:
http://www.excel-easy.com/vba/examples/variable-scope.html


Hey bedankt voor je reactie, mijn probleem is nu ook deels opgelost alleen er is een nieuwe bij gekomen.
Het programma hoogt de i nu inderdaad steeds met 1 op als er op wordt geklikt, alleen als je het programma afsluit en weer uitvoert begint de i weer vanaf 1 te tellen. Dat wil ik niet, hij moet dan weer verder gaan waar die als laatst was gebleven. Ik dacht aan zoiets:

Code:
Dim i As Integer
Dim rijnummer As Integer


Private Sub cmdVerplaats_Click()
    

    i = i + 1
    rijnummer = i

    Cells(rijnummer, 3) = lstItems.Value

End Sub

Alleen gaat jammer genoeg niet helemaal goed. Hoop dat je me er weer mee kan helpen!
 
Wil je gewoon een cel telkens met 1 ophogen?

Code:
Private Sub cmdVerplaats_Click()
range("a1") = range("a1") + 1
End Sub
 
Wil je gewoon een cel telkens met 1 ophogen?

Code:
Private Sub cmdVerplaats_Click()
range("a1") = range("a1") + 1
End Sub


Ehm dat gaat ook niet helemaal goed..
Ik heb een listbox met bepaalde items, als ik een item selecteer en op de knop verplaats klik moet hij deze item in Cell "C1" afdrukken, selecteer ik een nieuw item moet deze eronder(dus in C2) komen etc. Ed zijn oplossing zou inprincipe gewoon goed moeten werken, de i wordt steeds met 1 opgehoogd waardoor ik het op deze manier kon coderen:
Code:
Dim i As Integer

Private Sub cmdVerplaats_Click()
    
    i = i + 1
    
    Cells(i, 3).Value = lstItems.Value

End Sub

Alleen na het opnieuw uitvoeren van het programma begint die weer vanaf Cells(1,3) (omdat i dan weer 1 wordt). De oplossing hiervoor is dat de i wordt onthouden na het uitvoeren van een aantal keer klikken op de knop. Dan zou de i altijd het eerste rijnummer aangeven waar nog geen item staat.
 
A.u.b. niet citeren indien niet nodig.

Zo beter?
Code:
Private Sub cmdVerplaats_Click()
 Cells(Rows.Count, 3).End(xlUp).Offset(1) = lstItems.Value
End Sub
 
Ja klopt nu doet de code inderdaad wat die moet doen! Alleen zie ik dit nu voor het eerst.. hehe :p Kan je het me misschien uitleggen?
 
cells(rows.count,3).end(xlup) betekent: bepaal vanaf onderen naar boven de laatst gevulde cel in kolom C.
offset(1) betekent: ga 1 rij naar onderen.

Als je echter op rij 1 wil beginnen met invullen als kolom C totaal leeg is.
Code:
Private Sub cmdVerplaats_Click()
 Cells(Rows.Count, 3).End(xlUp).Offset(iif(range("c1") = "", 0, 1)) = lstItems.Value
End Sub
 
Laatst bewerkt:
Graag gedaan.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan