[Excel][bva] comment créer ss routine
Résolu
ppc77
Messages postés
48
Date d'inscription
Statut
Membre
Dernière intervention
-
ppc77 Messages postés 48 Date d'inscription Statut Membre Dernière intervention -
ppc77 Messages postés 48 Date d'inscription Statut Membre Dernière intervention -
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
A voir également:
- [Excel][bva] comment créer ss routine
- Comment créer un groupe whatsapp - Guide
- Créer liste déroulante excel - Guide
- Créer un compte google - Guide
- Comment créer un compte gmail - Guide
- Créer un lien pour partager des photos - Guide
6 réponses
Bonjour ppc77,
Essaies comme celà :
Maintenant, ça doit marcher.
Cordialement
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
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.
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.
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