Aide pour réaliser procédure d'1 compteur simple
bonjour Vous
je suis débutante j'ai recherché sur le forum avec "Compteur" Dsl
J'ai besoin d'un simple compteur (qui utilise for...next pour apprendre) qui incrémente des cellules d'une colonne donnée "A" à chaque fois que le mot "plus" est présent dans une cellule donnée "B1" ! la présence de 0 dans la cellule donnée provoque la raz du compteur.
colonne ,,,,,,,,,,,,,,,,,cellule contient
1,,,,,,,,,,,,,,,,,,,,,,,si(Acel=ajout;"Plus";0)
2
3
4
Pour votre solution vous pouvez prendre colonne "A" et la cellule d'ordre au compteur "B1"
Merci à ceux qui m'aideront
Muriel
Bonjour.
Voici deux façons de faire:
Une boucle for Next
Une boucle for each Next
Sub cpt()
Dim cpt As Integer
t = Timer
For lg = 1 To 500
If Cells(lg, 2) = "plus" Then
cpt = cpt + 1
End If
If Cells(lg, 2) = 0 Then
cpt = 0
End If
Cells(lg, 3) = cpt
Next lg
MsgBox "Temps de la macro: " & Timer - t & " secondes"
End SubSub boucle()
Dim pl As Range
Dim cpt As Integer
t = Timer
For Each pl In Range("B1:B500")
Select Case pl
Case Is = "plus"
cpt = cpt + 1
Case Is = 0
cpt = 0
End Select
pl.Offset(0, 2) = cpt
Next
MsgBox "Temps de la macro: " & Timer - t & " secondes"
End Sub
Bonjour Passe passe
C'est mimi
Mais c'est presque ça, sauf que tu utilises une colonne pour la suite des "plus" alors que dans mon attente c'est une cellule qui enregistre la suite des "plus"
voir le fichier pour mieux comprendre le problème
mais'si( passe passe="trouve";"passe passe autorisé à m'inviter resto";"autre peux m'inviter !")
Dans cette attente
merci bisous
Re
Voici le code modifié tel que j'ai compris, ce qui veut dire que ce n'est pas sur que ce soit ce que tu veux obtenir
Je te laisse voir le fichier et me dire ce qui ne va pas (ou va...)
mais'si( passe passe="trouve";"passe passe autorisé à m'inviter resto"
Humm, quelque chose me dit que si ma femme vois ce message, elle n'appréciera pas forcément
Re passe passe
hum Passe Passe troublé m'a envoyé le mm fichier que précédemment !!
quel vilain tour de passe passe lol
A plus
Muriel
Re.
Désolé. Voici le code à mettre dans la feuille: clique droit, visualiser le code.
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Range("E1")) Is Nothing Then
If Target = "encore" Or Target = "Encore" Then
Range("A65536").End(xlUp)(2) = Range("A65536").End(xlUp) + 1
Else
Range("A65536").End(xlUp)(2) = 0
End If
End If
End SubComme ça, si ce n'est pas le bon fichier, tu pourras au mois recopier le code.
re Passe Passe
Ne fonctionne pas mais mon probleme tel que presenté ne peut être réalisé (impossible) dsl
Mais super merci j'ai progressé grace à toi
je fais une new demande mais réalisable elle lol
"Voyou"
Muriel
Bonjour.
Qu'est-ce qui ne fonctionne pas dans le fichier?
Il faudrait quelques précisions.
Ce que fait la macro:
A chaque fois que tu saisis le mot "Encore" en E1, alors le compteur ajoute 1 dans la colonne A (sous la dernière cellule non-vide). Sinon, le compteur se remet à 0.
J'ai pris directement E1 étant donné que ta formule en B1 est totalement dépendante de E1. Je suppose que c'est ça qui ne conviens pas mais ne comprends pas pourquoi.
Reformule ton idée...
Re Passe passe
Une série de "Plus"et 0 peuvent sortir de la cellule B1
au premier B1 = "Plus" qui sort de la cellule B1 on incrit 1 dans la cellule A1
Au second B1 = "Plus" qui sort de la cellule B1 on inscrit 2 dans la cellule A2
ainsi de suite
la Raz se fait a l'aide de la cellule G1 si elle vient à contenir "RazCompt"
La procédure ne se lance pas par un bouton mais automatiquement lorsque la cellule B1 sort son premier "Plus"
ps l'utilisation d'un compteur for next dans ce cas n'est peut être pas adaptée
Voir ma new demande d'aide "aide pour compteur bidouillé"
merci a++
Muriel
Bonjour, cela devrait marcher comme vous le souhaitez, surement moyen d'optimiser le code, mais j'ai fait avec mes minces connaissances :
Dim i As Integer
Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Range("E1")) Is Nothing Then
Range("G1") = ""
If Range("B1") = "Plus" Then
If Range("A1") = "" Then
Range("A1").Value = 1
i = 2
ElseIf Range("A1") <> "" Then
i = 1
Do While Range("A" & i) <> ""
i = i + 1
Loop
Range("A" & i) = i
End If
Else
Exit Sub
End If
End If
If Not Application.Intersect(Target, Range("G1")) Is Nothing Then
If Range("G1").Value = "RazCompt" Then
Range("E1") = ""
i = 1
Do While Range("A" & i) <> ""
Range("A" & i).Value = ""
i = i + 1
Loop
End If
End If
End Sub
Re.
Je fais un dernier essai car plus ça va, moins je comprends ce qui ne va pas.
Dans le fichier joint, à chaque recalcule de la feuille, ton compteur est initialisé en fonction du résultat de la formule qui se situe en B1
Si ta cellule est égale à 0, le compteur est réinitialisé.
Tant que B1 = "Plus" le compteur s'incrémente de 1
Questions:
- Faut-il marquer dans la colonne A quand le compteur reprend la valeur 0 ?
- D'où sort le "razCompt" ? Tu ne m'en a pas parlé ?-
- Ta formule en B1 est dépendante de la cellule E1 et non G1. Est-ce une erreur ou y a-t-il une autre donnée à prendre en compte ?
- Concrètement, qu'est-ce qui ne va pas dans le fichier joint ?
Une série de "Plus"et 0 peuvent sortir de la cellule B1
La macro doit vérifier le résultat de B1. C'est OK
au premier B1 = "Plus" qui sort de la cellule B1 on incrit 1 dans la cellule A1
Au second B1 = "Plus" qui sort de la cellule B1 on inscrit 2 dans la cellule A2
ainsi de suite
La macro fonctionne dans ce sens là. OK
Bonjour tous
Merci à Zirak, Passe passe, Spyderpaint pour vous être dévoué pour ma cause => un "compteur tout simple" heu mdr
Quel génie ce Zirak => il a réussi ce que je croyais impossible, c'est à dire de valider une deuxième fois la sortie du mot "Plus" d'une cellule de calcul.
Trop fort ce Zirak => N'y croyant plus j'avais forcé la case de calcul à passer à 0 apres avoir donné un "Plus" pour lui permettre de prendre en compte une nouvelle sortie du mot "Plus"
Cela veut dire que je peux maintenant me passer de la case G1 de remise à zéro et me servir du 0 de ma formule de calcul pour ce faire lol Youpy
Zirak si tu n'es pas maké je veux bien te "prendre" comme prof particulier pour apprendre à "compter sur toi" peut être sous toi si tu n'es pas trop Sumo
Un grand bravo et un grand merci au trio d'aidants
Muriel
La prochaine fois j'enleverai (pas le bas) mais le mot simple dans ma demande lol mdr
-- 18 Mai 2011, 18:57 --
Bonjour tous
Merci à Zirak, Passe passe, Spyderpaint pour vous être dévoué pour ma cause => un "compteur tout simple" heu mdr
Quel génie ce Zirak => il a réussi ce que je croyais impossible, c'est à dire de valider une deuxième fois la sortie du mot "Plus" d'une cellule de calcul.
Trop fort ce Zirak => N'y croyant plus j'avais forcé la case de calcul à passer à 0 apres avoir donné un "Plus" pour lui permettre de prendre en compte une nouvelle sortie du mot "Plus"
Cela veut dire que je peux maintenant me passer de la case G1 de remise à zéro et me servir du 0 de ma formule de calcul pour ce faire lol Youpy
Zirak si tu n'es pas maké je veux bien te "prendre" comme prof particulier pour apprendre à "compter sur toi" peut être aussi à "décompter sous toi" si tu n'es pas trop Sumo, mais pas question de remette à zéro "le compteur"
Un grand bravo et un grand merci au trio d'aidants
Muriel
La prochaine fois j'enleverai "pas le bas" mais le mot simple dans ma demande lol mdr
-- 18 Mai 2011, 23:39 --
Bonjour tous
Merci à Zirak, Passe passe, Spyderpaint pour vous être dévoué pour ma cause => un "compteur tout simple" heu mdr
Quel génie ce Zirak il a réussi ce que je croyais impossible, c'est à dire de valider une deuxième fois la sortie du mot "Plus" d'une cellule de calcul.
Trop fort ce Zirak => N'y croyant plus j'avais forcé la case de calcul à passer à 0 apres avoir donné un "Plus" pour lui permettre de prendre en compte une nouvelle sortie du mot "Plus"
Cela veut dire que je peux maintenant me passer de la case G1 de remise à zéro et me servir du 0 de ma formule de calcul pour ce faire lol Youpy
Zirak si tu n'es pas maké je veux bien te "prendre" comme prof particulier pour apprendre à "compter sur toi" peut être sous toi si tu n'es pas trop Sumo
Un grand bravo et un grand merci au trio d'aidants
Muriel
La prochaine fois j'enleverai (pas le bas) mais le mot simple dans ma demande lol mdr Chat
Tant mieux si c'est bien le résultat souhaité, après de là à servir de professeur, je ne fais que bidouiller de par moi-même pour mon travail, je suis loin du niveau de la plupart des gens présent sur ce forum ni capable de sortir du code vraiment optimisé comme l'a proposé passe-passe.
Je ne suis pas un sumo, mais je ne suis pas un codeur facile, on ne (dé-)compte pas (sous)sur moi dès la première Sub , ou alors encore faut-il qu'elle soit private, il faut faire cela dans les (user)forms