[Excel][bva] comment créer ss routine
Résolu
ppc77
Messages postés
49
Statut
Membre
-
ppc77 Messages postés 49 Statut Membre -
ppc77 Messages postés 49 Statut Membre -
Bonjour,
je me lance pour la première fois en BVA Excel.
mon problème: une personne par ligne et surtout 1 bouton pour chaque personne. Ce bouton a le même effet.
Je pourrais bien sûr faire du copier coller du code du 1er bouton sur les autres... mais outre que cela ne me satisfait pas, il faudrait à chaque nouvelle personne intervenir pour modifier le code du nouveau bouton ....
J'ai tenté une procédure commune :
définition d'une variable NomBouton
dans le code de chaque bouton, NomBouton=NomDuBoutonEnCours
mais je bute sur le With qui n'accepte pas With NomBouton dans une procédure
ci dessous mon code (vous risquez de crier au scandale, mais c'est ma première sur Excel...)
Private Sub BoutonARR01_Click()
Lig = 2
With BoutonARR01
'Test si ARRIVE ou PARS
If .Caption = "JE PARS" Then
' appui sur JE PARS
.Caption = "J'ARRIVE" 'le bouton devient J ARRIVE EN VERT
.BackColor = &H80FF80
Range("d" & Lig).Value = Now() 'heure de départ = now
Range("e" & Lig).Value = Range("d" & Lig).Value - Range("c" & Lig).Value 'calcul temps session
Range("f" & Lig).Value = Range("f" & Lig).Value - Range("e" & Lig).Value 'calcul temps total
Range("A" & Lig).Select 'NOM EN VERT
With Selection.Interior
.ColorIndex = 35
.Pattern = xlSolid
End With
Else
' appui sur J'ARRIVE
.Caption = "JE PARS" 'le bouton devient JE PARS EN ROUGE
.BackColor = &HFF&
Range("C" & Lig).Value = Now() 'heure d'arrivée
Range("D" & Lig).Value = "" 'heure d'arrivée RIEN
Range("E" & Lig).Value = "" 'Temps session RIEN
Range("A" & Lig).Select 'NOM EN ROUGE
With Selection.Interior
.ColorIndex = 3
.Pattern = xlSolid
End With
End If
End With
End Sub
Merci à vous
je me lance pour la première fois en BVA Excel.
mon problème: une personne par ligne et surtout 1 bouton pour chaque personne. Ce bouton a le même effet.
Je pourrais bien sûr faire du copier coller du code du 1er bouton sur les autres... mais outre que cela ne me satisfait pas, il faudrait à chaque nouvelle personne intervenir pour modifier le code du nouveau bouton ....
J'ai tenté une procédure commune :
définition d'une variable NomBouton
dans le code de chaque bouton, NomBouton=NomDuBoutonEnCours
mais je bute sur le With qui n'accepte pas With NomBouton dans une procédure
ci dessous mon code (vous risquez de crier au scandale, mais c'est ma première sur Excel...)
Private Sub BoutonARR01_Click()
Lig = 2
With BoutonARR01
'Test si ARRIVE ou PARS
If .Caption = "JE PARS" Then
' appui sur JE PARS
.Caption = "J'ARRIVE" 'le bouton devient J ARRIVE EN VERT
.BackColor = &H80FF80
Range("d" & Lig).Value = Now() 'heure de départ = now
Range("e" & Lig).Value = Range("d" & Lig).Value - Range("c" & Lig).Value 'calcul temps session
Range("f" & Lig).Value = Range("f" & Lig).Value - Range("e" & Lig).Value 'calcul temps total
Range("A" & Lig).Select 'NOM EN VERT
With Selection.Interior
.ColorIndex = 35
.Pattern = xlSolid
End With
Else
' appui sur J'ARRIVE
.Caption = "JE PARS" 'le bouton devient JE PARS EN ROUGE
.BackColor = &HFF&
Range("C" & Lig).Value = Now() 'heure d'arrivée
Range("D" & Lig).Value = "" 'heure d'arrivée RIEN
Range("E" & Lig).Value = "" 'Temps session RIEN
Range("A" & Lig).Select 'NOM EN ROUGE
With Selection.Interior
.ColorIndex = 3
.Pattern = xlSolid
End With
End If
End With
End Sub
Merci à vous
Configuration: Windows XP Internet Explorer 7.0
6 réponses
-
Bonjour ppc77,
Essaies comme celà :
Private Sub BoutonARR01_Click()
Maintenant, ça doit marcher.
Cordialement -
-
merci, je viens de revenir, je n'aurai pas le temps essayer ce soir, mais :
Papou : Private Sub BoutonARR01_Click() je le mets où ? c'est ce que j'ai mis sur le bouton de la première ligne
Lupin : les boutons sont sur une feuille
A B C D E F
NOM COMMANDE HEURE ARRIVEE HEURE DEPART TEMPS SESSION TEMPS TOTAL
SAL 1 (le bouton est là) 17:38 17:58 20:00
SAL 2 (le bouton est là) 07:00 0:00
Merci de vos réponses .... avec de la chance il fera jour demain, j'essaierai...
bonne soirée
Patrick -
Excuses-moi, je me suis "planté" : je voulais te dire de remplacer 'With BoutonARR01' par 'With ActiveSheet.BoutonARR01'.
Cordialement. -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
bonjour ppc77 et les participants
Il me semble que ta macro ne pourras pas fonctionner pour chaque bouton car tu ne peux intercepter le click que du bouton concerné et pas d'un bouton générique.
Je te propose de faire la même chose en utilisant la colonne G sans rien changer à tes autres données, mais sans bouton et là, elle fonctionne sur n'importe qu'elle ligne, dès que tu sélectionnes la colonne G.Option Explicit Private Sub Worksheet_SelectionChange(ByVal sel As Range) If sel.Column = 7 Then 'Test si ARRIVE ou PARS If Range("g" & sel.Row).Value = "JE PARS" Then ' appui sur JE PARS Range("g" & sel.Row).Value = "J'ARRIVE" 'le bouton devient J ARRIVE EN VERT Range("g" & sel.Row).Interior.ColorIndex = 35 Range("d" & sel.Row).Value = Now() 'heure de départ = now Range("e" & sel.Row).Value = Range("d" & sel.Row).Value - Range("c" & sel.Row).Value 'calcul temps session Range("f" & sel.Row).Value = Range("f" & sel.Row).Value - Range("e" & sel.Row).Value 'calcul temps total Range("A" & sel.Row).Interior.ColorIndex = 35 'NOM EN VERT Range("A" & sel.Row).Interior.Pattern = xlSolid Else ' appui sur J'ARRIVE Range("g" & sel.Row).Value = "JE PARS" 'le bouton devient JE PARS EN ROUGE Range("g" & sel.Row).Interior.ColorIndex = 3 Range("C" & sel.Row).Value = Now() 'heure d'arrivée Range("D" & sel.Row).Value = "" 'heure d'arrivée RIEN Range("E" & sel.Row).Value = "" 'Temps session RIEN Range("A" & sel.Row).Interior.ColorIndex = 3 'NOM EN ROUGE Range("A" & sel.Row).Interior.Pattern = xlSolid End If End If End Sub -
Bonjour à vous
la solution d'utiliser la colonne au lieu d'un bouton correspond tout à fait ...
merci beaucoup
Bonne journée à tous et encore bravo et merci pour les services rendus
Patrick