VBA revenir sur la dernière cellule modifiée
JB
-
Patrice33740 Messages postés 8561 Date d'inscription Statut Membre Dernière intervention -
Patrice33740 Messages postés 8561 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
j'ai une macro excel qui me permet d'ajouter 1, 2 ou 3 à une cellule (parmi 10).
J'aimerais pouvoir créer une seconde macro qui sélectionnerai la dernière cellule modifiée afin de pouvoir annuler en cas de fausse manipulation.
Merci de bien vouloir m'aider sur ce problème.
Je n'ai pas trouvé la solution parmi tous les forums que j'ai visité.
Cordialement.
JB
j'ai une macro excel qui me permet d'ajouter 1, 2 ou 3 à une cellule (parmi 10).
J'aimerais pouvoir créer une seconde macro qui sélectionnerai la dernière cellule modifiée afin de pouvoir annuler en cas de fausse manipulation.
Merci de bien vouloir m'aider sur ce problème.
Je n'ai pas trouvé la solution parmi tous les forums que j'ai visité.
Cordialement.
JB
A voir également:
- VBA revenir sur la dernière cellule modifiée
- Dernière version ccleaner gratuit français - Télécharger - Nettoyage
- Revenir à la ligne dans une cellule excel mac - Guide
- Supprimer dernière page word - Guide
- Dernière version chrome - Accueil - Applications & Logiciels
- Excel compter cellule couleur sans vba - Guide
6 réponses
Bonjour,
En utilisant la même macro (avec un argument adéquat) c'est plus simple.
Il suffit d'utiliser des variables statiques (Static) pour mémoriser l'adresse de la cellule qui vient d'être modifiée et sa valeur et/ou annuler la modification précédente
En utilisant la même macro (avec un argument adéquat) c'est plus simple.
Il suffit d'utiliser des variables statiques (Static) pour mémoriser l'adresse de la cellule qui vient d'être modifiée et sa valeur et/ou annuler la modification précédente
Bonjour,
Un exemple de ton fichier aurait été plus utile.
Ne sachant pas comment est appelée cette procédure, voici une solution avec 2 boutons (un_coureur et annuler).
Utiliser des boutons ne me semble pas une bonne méthode, mais tu est si avare d'explications...
Cordialement
Patrice
Un exemple de ton fichier aurait été plus utile.
Ne sachant pas comment est appelée cette procédure, voici une solution avec 2 boutons (un_coureur et annuler).
Utiliser des boutons ne me semble pas une bonne méthode, mais tu est si avare d'explications...
Option Explicit Private Sub btnAnnuler_Click() Call un_coureur(True) End Sub Private Sub btnUn_coureur_Click() Call un_coureur End Sub Public Sub un_coureur(Optional Annulation As Boolean = False) ' ' un_coureur Macro ' multiplie la distance par 1 ' Static adr As String If Annulation Then If adr <> "" Then Range(adr) = Range(adr) - 1 adr = "" End If Exit Sub End If Select Case ActiveCell.Value Case "VERT" adr = "E3" Case "JAUNE" adr = "E4" Case "BLEU" adr = "E5" Case "ROUGE" adr = "E6" Case "VIOLET" adr = "E7" Case "NOIR" adr = "E8" Case "BLANC" adr = "E9" Case "ORANGE" adr = "E10" Case "AUTRE 1" adr = "E11" Case "AUTRE 2" adr = "E12" Case Else adr = "" End Select Range(adr).Value = Range(adr).Value + 1 Range("H2").Select End Sub
Cordialement
Patrice
encore une fois merci pour la rapidité de la réponse
comment puis-je déposer un exemple de mon fichier ?
l'idée des boutons est essentielle pour moi, puisque ce fichier est destiné à être utilisé par des élèves (donc susceptibles de se tromper)
j'ai donc 3 boutons (1 coureur, 2 coureurs et 3 coureurs) que l'on doit cliquer mais j'ai créé également 3 boutons de correction d'erreur qui ne me satisfont pas (il faut cliquer d'abord sur la dernière cellule modifiée). merci pour ton aide
comment puis-je déposer un exemple de mon fichier ?
l'idée des boutons est essentielle pour moi, puisque ce fichier est destiné à être utilisé par des élèves (donc susceptibles de se tromper)
j'ai donc 3 boutons (1 coureur, 2 coureurs et 3 coureurs) que l'on doit cliquer mais j'ai créé également 3 boutons de correction d'erreur qui ne me satisfont pas (il faut cliquer d'abord sur la dernière cellule modifiée). merci pour ton aide
Au lieu des boutons, on peut peut-être utiliser le clic gauche (ou le double clic) pour incrémenter et le clic droit pour décrémenter.
C'est souvent plus simple mais il faut voir le fichier ...
Tu peux déposer ton fichier sur http://cijoint.fr/ ou sur https://www.cjoint.com/ et mettre le lien obtenu dans ton prochain message
Patrice
C'est souvent plus simple mais il faut voir le fichier ...
Tu peux déposer ton fichier sur http://cijoint.fr/ ou sur https://www.cjoint.com/ et mettre le lien obtenu dans ton prochain message
Patrice
Voici le lien où est déposé mon fichier.
http://www.cijoint.fr/cjlink.php?file=cj201110/cij1eGPeM7.xlsm
l'idée des clics est à retenir mais ne conviendra sans doute pas pour mon fichier.
ce qui m'intéresse serait un unique bouton qui permettrait d'annuler la dernière modification en cas d'erreur sans avoir à cliquer sur la colonne "total points" puis le bouton correspondant.
Encore merci pour le temps consacré à mon fichier.
Cordialement.
http://www.cijoint.fr/cjlink.php?file=cj201110/cij1eGPeM7.xlsm
l'idée des clics est à retenir mais ne conviendra sans doute pas pour mon fichier.
ce qui m'intéresse serait un unique bouton qui permettrait d'annuler la dernière modification en cas d'erreur sans avoir à cliquer sur la colonne "total points" puis le bouton correspondant.
Encore merci pour le temps consacré à mon fichier.
Cordialement.
Bonjour JB,
Voici une proposition sans bouton :
https://www.cjoint.com/?AJDourqr77U
Voici une proposition sans bouton :
https://www.cjoint.com/?AJDourqr77U
Bonjour Patrice33740
un grand merci pour le temps consacré à mon projet !
ca me convient parfaitement et c'est très facile d'utilisation. Je suis emballé !
J'ambitionne alors d'aller un peu plus loin : j'aimerais pouvoir récapituler sur une seconde feuille tous les résultats (à chaque nouveau clic, les résultats se renseignent au fur et à mesure sur la seconde feuille qu'on ne visionnera qu'à la fin de la séquence).
Malgré mes efforts je n'arrive pas à incorporer dans ton code ces commandes.
Peux-tu me proposer un début de réponse ?
D'avance un immense merci !
mon fichier (enfin le tien !) avec la seconde feuille :
http://www.cijoint.fr/cjlink.php?file=cj201111/cij1Stcamw.xlsm
un grand merci pour le temps consacré à mon projet !
ca me convient parfaitement et c'est très facile d'utilisation. Je suis emballé !
J'ambitionne alors d'aller un peu plus loin : j'aimerais pouvoir récapituler sur une seconde feuille tous les résultats (à chaque nouveau clic, les résultats se renseignent au fur et à mesure sur la seconde feuille qu'on ne visionnera qu'à la fin de la séquence).
Malgré mes efforts je n'arrive pas à incorporer dans ton code ces commandes.
Peux-tu me proposer un début de réponse ?
D'avance un immense merci !
mon fichier (enfin le tien !) avec la seconde feuille :
http://www.cijoint.fr/cjlink.php?file=cj201111/cij1Stcamw.xlsm
Je viens de consulter mes mails et ouah !
D'abord un très grand merci pour le temps consacré à mon projet ! C'est tout à fait ce qui convient pour ce type de manipulation.
Démarrer / Arrêter
clic pour ajouter les points
Annulation grâce clic droit !
C'est simplement au top !
Je vais maintenant m'atteler à améliorer mon projet.
J'ai dans l'idée de créer une page de récapitulatif qui se mettrait à jour à chaque clic et qui serait associé au final avec un barème (je devrais m'en sortir avec la formule recherchev). Je me permettrais de continuer ce post si je rencontre des difficultés.
Encore un immense merci !
Cordialement.
JB
D'abord un très grand merci pour le temps consacré à mon projet ! C'est tout à fait ce qui convient pour ce type de manipulation.
Démarrer / Arrêter
clic pour ajouter les points
Annulation grâce clic droit !
C'est simplement au top !
Je vais maintenant m'atteler à améliorer mon projet.
J'ai dans l'idée de créer une page de récapitulatif qui se mettrait à jour à chaque clic et qui serait associé au final avec un barème (je devrais m'en sortir avec la formule recherchev). Je me permettrais de continuer ce post si je rencontre des difficultés.
Encore un immense merci !
Cordialement.
JB
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour jb,
Voici fichier avec le récapitulatif :
https://www.cjoint.com/?AKcaoFLjg3C
Le fonctionnement est le même, mais le principe est différent :
- Les macros écrivent uniquement dans le récapitulatif.
- La feuille live contient des formules en fonction du récapitulatif.
Voici fichier avec le récapitulatif :
https://www.cjoint.com/?AKcaoFLjg3C
Le fonctionnement est le même, mais le principe est différent :
- Les macros écrivent uniquement dans le récapitulatif.
- La feuille live contient des formules en fonction du récapitulatif.
Patrice, c'est tout bonnement extra !!!
Je te remercie vivement aussi bien pour la qualité de ton travail que pour la rapidité (je me rends pas compte mais pour un expert comme toi, c'est si facile que ça à faire ???!!!)
Je tenterais de m'inspirer de ce fonctionnement pour mes futurs fichiers.
Une nouvelle fois merci, je n'ai plus qu'à utiliser ce super outil avec mes élèves.
Je te remercie vivement aussi bien pour la qualité de ton travail que pour la rapidité (je me rends pas compte mais pour un expert comme toi, c'est si facile que ça à faire ???!!!)
Je tenterais de m'inspirer de ce fonctionnement pour mes futurs fichiers.
Une nouvelle fois merci, je n'ai plus qu'à utiliser ce super outil avec mes élèves.
Ca reviendrait à avoir une confirmation avant la modification ?
Je ne maitrise que très peu le VBA et je ne connais pas l'utilisation des variables statiques...
Voici un aperçu de mon code.
Merci de m'indiquer où placer ces variables ?
Sub un_coureur()
'
' un_coureur Macro
' multiplie la distance par 1
'
Select Case ActiveCell.Value
Case "VERT"
GoTo couleurvert
Case "JAUNE"
GoTo couleurjaune
Case "BLEU"
GoTo couleurbleu
Case "ROUGE"
GoTo couleurrouge
Case "VIOLET"
GoTo couleurviolet
Case "NOIR"
GoTo couleurnoir
Case "BLANC"
GoTo couleurblanc
Case "ORANGE"
GoTo couleurorange
Case "AUTRE 1"
GoTo couleurautre1
Case "AUTRE 2"
GoTo couleurautre2
End Select
Exit Sub
couleurvert:
Range("E3").Select
ActiveCell = ActiveCell + 1
Range("H2").Select
Exit Sub
couleurjaune:
Range("E4").Select
ActiveCell = ActiveCell + 1
Range("H2").Select
Exit Sub
couleurbleu:
Range("E5").Select
ActiveCell = ActiveCell + 1
Range("H2").Select
Exit Sub
couleurrouge:
Range("E6").Select
ActiveCell = ActiveCell + 1
Range("H2").Select
Exit Sub
couleurviolet:
Range("E7").Select
ActiveCell = ActiveCell + 1
Range("H2").Select
Exit Sub
couleurnoir:
Range("E8").Select
ActiveCell = ActiveCell + 1
Range("H2").Select
Exit Sub
couleurblanc:
Range("E9").Select
ActiveCell = ActiveCell + 1
Range("H2").Select
Exit Sub
couleurorange:
Range("E10").Select
ActiveCell = ActiveCell + 1
Range("H2").Select
Exit Sub
couleurautre1:
Range("E11").Select
ActiveCell = ActiveCell + 1
Range("H2").Select
Exit Sub
couleurautre2:
Range("E12").Select
ActiveCell = ActiveCell + 1
Range("H2").Select
Exit Sub
End Sub