Un compteur, rien de plus simple... pour vous
Bonjour à tous.
J'ai un bouton qui me permet de comparer deux valeurs sur un paquet de lignes uniquement si elles n'ont pas la même valeur: Sur la ligne 1, je compare C1 et E1
Pour chaque ligne, la comparaison des valeurs ce fait toujours sur les mêmes colonnes C et E.
Dès qu'il y a une différence, j'ai un msgbox qui me demande si je suis d'accord avec la différence des valeurs.
Si je clique sur "oui", alors la valeur de la colonne E prend la place de la colonne C pour annuler la différence constatée sur la ligne.
Ce que je voudrais rajouter à mon code est un compteur pour savoir combien de fois j'ai cliqué sur "oui" afin de connaitre le nombre de validations que j'ai faites.
J'imagine qu'un fichier vous aiderait, mais le mien est trop gros et a quelques données confidentielles.
Si vous en avez vraiment besoin, je peux prendre un peu de temps pour recopier des données et rajouter les macros existantes.
Le but étant de savoir comment inclure un compteur au bouton vbyes du msgbox ainsi que le code approprié.
Le début du code:
Dim info%
dim x%
info=msgbox(".......")
If info=vbyes then
Cells(x, 5).Select
Selection.Copy
Cells(x, 3).Select
'compte le nombre de fois où j'ai cliqué sur vbyesMerci de votre aide.
- Messages
- 9'245
- Excel
- Vista Office 2007FR
- Inscrit
- 08/12/2007
- Emploi
- retraité Sce.Méthodes
Bonsoir,
Tu peux joindre un fichier allégé, une vingtaine de lignes anonymisées suffit
avec la macro actuelle
Amicalement
Claude
Re,
Je me disais bien aussi que vous préféreriez un fichier.
Le principe est de cliquer sur le bouton de suivi de modification.
Dès qu'il y a une modif, un msgbox s'ouvre.
Il faut que je compte le nombre de fois où j'ai cliquer sur le bouton "oui" du msgbox.
J'ai l'impression que je me répète
Ci-joint, le fichier.
- Messages
- 9'245
- Excel
- Vista Office 2007FR
- Inscrit
- 08/12/2007
- Emploi
- retraité Sce.Méthodes
Bonsoir à tous,
Vois si çà te va
Sub Test_V01()
Dim x%, info%, Cpt%, utilisateur$
utilisateur = Sheets("connexion").Range("C2") '.Value
For i = 2 To Sheets.Count
Sheets(i).Select
For x = 6 To 66
If Cells(x, 5).Value <> Cells(x, 3).Value Then
Cells(x, 5).Select
info = MsgBox(Cells(x, 4) & Chr(10) & Chr(10) & _
" est passé de " & Chr(10) & Cells(x, 3) & " à " & Cells(x, 5) & Chr(10) & _
". Etes-vous d'accord?" & Chr(10), _
vbInformation + vbYesNoCancel, "........" & Sheets(i).Name)
If info = vbCancel Then
Sheets("connexion").Select
Exit Sub
End If
If info = vbNo Then
UserForm1.Show
End If
If utilisateur = "PASCAL" Then
If info = vbYes Then
Cpt = Cpt + 1 'compteur
Cells(x, 3) = Cells(x, 5)
End If
End If
End If
Next x
Next i
MsgBox (utilisateur & " a validé " & Cpt & " modifications")
Sheets("connexion").Range("d2") = " a validé " & Cpt & " modifications"
info = MsgBox("Le suivi des modifications est terminé", , "Pakaloux dit")
'Sheets("noms").Select
Sheets(1).Activate
End SubAmicalement
Claude
Comme d'habitude, c'est tout simplement parfait.
Je viens de comprendre que le compteur s'utilisait comme une boucle. En revanche, je comprends qu'il suffit de le placer sous "vbyes" pour qu'il y soit directement associé.
Je pensais que c'était tout de même un peu plus compliqué que ça.
Merci encore de prendre de votre temps à tous pour répondre à toutes les questions qu'on peut poster sur ce forum.
Spécialement pour claude: Je n'oublie pas de valider ta réponse.
-- 19 Aoû 2010, 21:11 --
Tout doucement, j'en apprends un peu plus grâce à vous chaque jour... ou presque
Encore merci