Compteur de clic avec le temps

Muad

XLDnaute Nouveau
Bonjour à tous,

Je viens vous demander de l'aide car je ne sais pas par ou commencer, du moins par ou BIEN commencer.
J'aimerais créer un bouton avec une macro qui est trop complexe pour moi.
J'aimerai :
1- Lorsque je clic sur le bouton, une cellule affiche le nombre de fois que j'ai cliqué.
2- Lorsque je clic, j'aimerai, dans une feuille à part un historique des clics avec l'heure du clic
3- Créer plusieurs bouton similaire mais avec des noms différents de tel sorte que dans l'historique il y ait écris par exemple : Bouton 1 - clic 1 - 13h19 | Bouton 1 - clic 12 - 14h40 | Bouton 2 - clic 1 - 13h20 etc...

Pensez vous que c'est trop complexe pour m'aider ? Si cela prend trop de temps, je m'arrangerai autrement mais si quelqu'un veut bien m'aider je le remercie par avance.

Voulez vous un fichier excel pour vous montrez concrètement ce que j’aimerai (sans aucune macro, ni automatisation) ?


Je vous remercie d'avoir pris le temps de me lire.
 

vgendron

XLDnaute Barbatruc
Re : Compteur de clic avec le temps

Hello et bienvenu

voir PJ pour exemple


Sinon, pour aller plus loin, il faudrait que tu postes un fichier exemple contenant quelques données montrant la structure de ton fichier

le nombre de boutons, où , que font ils ? tous la meme chose?


à plus
 

Pièces jointes

  • Bouton Clic.xlsm
    15.5 KB · Affichages: 75

Muad

XLDnaute Nouveau
Re : Compteur de clic avec le temps

Salut,
Je vous remercie de bien vouloir m'aider.

C'est presque cela.
Le problème c'est que les deux boutons rajoute la valeur à la même cellule.

Pour vous donner vraiment la forme et l'idée, je vous joins un brouillon que je viens de faire avec des commentaires pour vous préciser mes idées.

Je vous remercie par avance.
 

Pièces jointes

  • Test compteur clic .xlsm
    37.5 KB · Affichages: 52
  • Test compteur clic .xlsm
    37.5 KB · Affichages: 60
  • Test compteur clic .xlsm
    37.5 KB · Affichages: 63

vgendron

XLDnaute Barbatruc
Re : Compteur de clic avec le temps

Re,

Je vois.... :)

Plutot que des boutons (ca va vite etre fastidieux à gérer)
je te propose des zones "actives"
il suffit de cliquer la ou tu veux sur la feuille pour que l'incrément se fasse et la mise à jour dans le tableau Historique

j'ai également prévu un bouton réinitialiser pour remettre à zero tous les compteurs.
par contre;. j'ai laissé l'historique, mais on peut tout à fait l'effacer également

Note: si tu cliques en dehors des cellules actives (Passe - Tir - Dribble ou Tacle de chaque joueur), rien ne se passe au niveau compteur
à part qu'après chaque clic le curseur revient sur la cellule A8 (choisie au hasard)
c'est l'astuce que j'ai trouvé pour pouvoir cliquer deux fois de suite sur un meme tir sans avoir à reselectionner autre chose entre deux..
 

Pièces jointes

  • Test compteur clic .xlsm
    37.7 KB · Affichages: 63
  • Test compteur clic .xlsm
    37.7 KB · Affichages: 64
  • Test compteur clic .xlsm
    37.7 KB · Affichages: 64

Muad

XLDnaute Nouveau
Re : Compteur de clic avec le temps

Parfait !!! Merci beaucoup, c'est exactement ça !

Si je veux rajouter des compétences dans une colonne (en dessous de tacle), comment faut-il que je procède ?
De même pour les joueurs (J12,J13...) ?

Merci encore
 

sousou

XLDnaute Barbatruc
Re : Compteur de clic avec le temps

Bonsoir à vous deux
Pour le fun

Et si ont veut des boutons, une solution pas très compliquer
Appliquer la même macro à chaque bouton

Sub clickbouton()
Set bouton = ActiveSheet.Shapes(Application.Caller)
bouton.BottomRightCell.Offset(0, 1) = bouton.BottomRightCell.Offset(0, 1) + 1
nom = bouton.TextFrame.Characters.Text
Call historique(nom, ActiveSheet.Cells(1, bouton.BottomRightCell.Column))
End Sub

Sub historique(bouton, colonne)
With Sheets("Histo_temps")
Set col = .Rows(3).Find(colonne, lookat:=xlWhole)
Set Z = .Range(.Cells(col.Row + 1, col.Column), .Cells(col.Row + 1, col.Column + 1))
Z.Insert
Z(1) = bouton
Z(2) = Time
End With
End Sub
 

vgendron

XLDnaute Barbatruc
Re : Compteur de clic avec le temps

Hello sousou

Muad, pour ajouter des compétences, et des joueurs, il faut juste "étendre" la zone active.. traduction, modifier le code vba
et ce.. à deux endroits
pour ouvrir le code:
Alt+F11; ca ouvre l'éditeur VBA
ensuite, à gauche dans l'explorateur de projet (Ctrl R si il n'apparait pas)
clique sur Feuil1 (Bouton)
à droite tu vois ainsi le code
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Not Intersect(Target, Union(Range("A2:A5"), Range("C2:C5"), Range("E2:E5"), Range("G2:G5"), Range("I2:I5"), Range("K2:K5"), Range("M2:M5"), Range("O2:O5"), Range("Q2:Q5"), Range("S2:S5"), Range("U2:U5"))) Is Nothing Then
    Target.Offset(0, 1) = Target.Offset(0, 1) + 1
    TypeTir = Target
    nb = Target.Offset(0, 1)
    PlaceJoueur = Target.Column
    
    With Sheets("Histo_temps")
        'recherche dans la colonne du joueur du dernier TypeTir
        FinJoueur = .Cells(65536, PlaceJoueur).End(xlUp).Row + 1
        
        .Cells(FinJoueur, PlaceJoueur) = TypeTir & " " & nb
        .Cells(FinJoueur, PlaceJoueur).Offset(0, 1) = Format(Time, "hh:mm")
    End With
End If
[A8].Select

End Sub

la zone "active" est déffinie dès la première ligne
Code:
If Not Intersect(Target, Union(Range("A2:A5"), Range("C2:C5"), Range("E2:E5"), Range("G2:G5"), Range("I2:I5"), Range("K2:K5"), Range("M2:M5"), Range("O2:O5"), Range("Q2:Q5"), Range("S2:S5"), Range("U2:U5"))) Is Nothing Then

si tu ajoutes une compétence: tu vois que l'indice 5 dans toutes les ranges doit être remplacé par 6
et si tu ajoutes un joueur, il faut ajouter une range dans l'Union (pas une rangée d'oignon.. hein... ;-) )
pour exemple
disons que tu ajoutes une compétence: "Faute"
et un joueur J12
la ligne précédente devient
Code:
If Not Intersect(Target, Union(Range("A2:A6"), Range("C2:C6"), Range("E2:E6"), Range("G2:G6"), Range("I2:I6"), Range("K2:K6"), Range("M2:M6"), Range("O2:O6"), Range("Q2:Q6"), Range("S2:S6"), Range("U2:U6"), Range("W2:W6"))) Is Nothing Then

De même.. dans la macro de réinitialisation qui se trouve dans le module 1 (explorateur projet)
il faut modifier les indices
Code:
Sub Reinit()
For i = 2 To 6
    For j = 2 To 24 Step 2
        Cells(i, j).ClearContents
    Next j
Next i

End Sub
 

Muad

XLDnaute Nouveau
Re : Compteur de clic avec le temps

Salut Sousou,
Merci pour ta proposition mais c'est vrai qu'avec les boutons cela prend plus de temps, je vais avoir besoin de 16*36 cellule active...

vgendron :

C'est excellent, j'y suis arrivé du premier coup grâce à tes explications très précises.
Merci infiniment cela faisait quelques temps que je trouvais pas de solutions pour avoir un "compteur d'action" avec la minute des actions. Avec ta proposition j'aurai juste à faire une soustraction entre l'heure du match et l'heure de l'action pour trouver la minute de cette dernière.

Quand je serai dans l'élaboration complet du fichier (dans la semaine), puis-je revenir sur ce sujet pour te demander des précisions si je bloque ?

Merci à vous :)
 

Muad

XLDnaute Nouveau
Re : Compteur de clic avec le temps

Salut,

J'ai continué le fichier, je bloque déjà, mais le problème n'a plus rien avoir, c'est juste que je bloque sur une formule.
Je veux recherche une valeur dans un tableau, mais je ne peux pas utilisé la formule Recherche car le tableau est composé des mêmes informations sur plusieurs colonne et non en ligne.
Enfin je pense pas être assez clair, je vous joins le fichier (la partie se trouve dans la "feuille3").
Si vous pouvez m'aider en m'indiquant quel formule utiliser cela serai super, j'ai pas trouvé sur le net, j'ai essayé avec INDEX et EQUIV mais je n'y suis pas parvenue.

Merci beaucoup
 

Pièces jointes

  • Test 3 .xlsm
    84.4 KB · Affichages: 49

vgendron

XLDnaute Barbatruc
Re : Compteur de clic avec le temps

Hello !!
tu avais presque déjà la réponse: avec le Indirect(A2) pour la liste de validation qui change en fonction de l'équipe choisie..
d'ailleurs.. je ne connaissais pas cette astuce. donc merci ;-)


et donc en A3=INDEX(DECALER(INDIRECT(A2);0;-1);EQUIV(B3;INDIRECT(A2);0))
et en C3=INDEX(DECALER(INDIRECT(A2);0;1);EQUIV(B3;INDIRECT(A2);0))


Voila ;-)
 

Muad

XLDnaute Nouveau
Re : Compteur de clic avec le temps

Re salut,
Encore moi désolé.

Dans le code que tu m'a écris :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Not Intersect(Target, Union(Range("A2:A5"), Range("C2:C5"), Range("E2:E5"), Range("G2:G5"), Range("I2:I5"), Range("K2:K5"), Range("M2:M5"), Range("O2:O5"), Range("Q2:Q5"), Range("S2:S5"), Range("U2:U5"))) Is Nothing Then
Target.Offset(0, 1) = Target.Offset(0, 1) + 1
TypeTir = Target
nb = Target.Offset(0, 1)
PlaceJoueur = Target.Column

With Sheets("Histo_temps")
'recherche dans la colonne du joueur du dernier TypeTir
FinJoueur = .Cells(65536, PlaceJoueur).End(xlUp).Row + 1

.Cells(FinJoueur, PlaceJoueur) = TypeTir & " " & nb
.Cells(FinJoueur, PlaceJoueur).Offset(0, 1) = Format(Time, "hh:mm")
End With
End If
[A8].Select

End Sub

J'aimerais tout décaler d'une colonne, passer la premier colonne en B1.
Il faut que je modifie les "RANGE" mais quoi d'autre ensuite, si je modifie que les RANGE et que je clique sur une cellule active, les données sont rangés n’importe comment dans la feuille Histo_EquipeA...

Merci d'avance
 

Muad

XLDnaute Nouveau
Re : Compteur de clic avec le temps

Salut,

Je suis pas arriver à supprimer le message précédent, c'est plus la peine de résoudre le problème...

En revanche, je bloque sur une recherche assez complexe, je vous insère le fichier, les explications sont dans l’onglet de couleur rouge.
Il faut extraire d'un tableau seulement certaines données puis les afficher dans un autre tableau.

Si quelqu'un pourrait m'aider cela serait très gentil.
Je vous remercie par avance pour votre aide.

PS : Fichier trop lourd alors un lien : Ce lien n'existe plus
 
Dernière édition:

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 294
Messages
2 086 896
Membres
103 404
dernier inscrit
sultan87