XL 2021 Rétablir la valeur initiale d'une combobox

  • Initiateur de la discussion Initiateur de la discussion hyule
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

hyule

XLDnaute Nouveau
Bonjour,

ayant passé 2 heures sur google sans trouver une solution à mon problème VBA, je me décide de solliciter la communauté.

J'ai un onglet Excel dans laquelle j'ai une combobox ActiveX (avec une liste de valeur définie).
Lorsque je modifie la valeur de ma combobox (ex. j'avais initialement "2024" et je choisis "2025"), une fenêtre apparaît avec le message suivant: "voulez vous modifier la valeur? "
-> Si je clique sur "Ok", la fenêtre se ferme, la valeur dans ma combobox devient "2025" et la Macro1 se lance.
-> Si je clique sur "Annuler", la valeur dans ma combobox devient "2025"

Je souhaiterais que, lorsque je clique sur "Annuler" ou que je ferme la fenêtre, la valeur de la combobox redevienne la valeur initiale c'est à dire "2024" dans mon exemple.

Voici mon code actuelle:
Private Sub Combobox_Année_Change()
Dim rep As Integer
rep = MsgBox("voulez vous modifier la valeur?", vbOKCancel + vbExclamation, "Avertissement")
If rep = vbOK Then
Call Macro1
End If
End Sub


Merci d'avance pour votre aide 👍
 
Solution
J'ai réussi à adapter le code à mon fichier Excel. Ca fonctionne parfaitement
Génial 😍 . merci bcp pour votre aide 👍

1) Bon, j'avoue ne pas avoir compris comment fonctionne le "GO" dans la macro . Lorsque je change la valeur dans la combobox, je ne vois pas comment ca fait le lien avec la procédure "essai" 🤷‍♀️.

2) J'ai modifié le code pour que l'opération se lance automatiquement à l'ouverture du fichier excel.
J'ai mis, en pièce jointe, 2 fichiers :
- le 1er qui fonctionne parfaitement. J'ai utilisé un "call essai" pour cela
- le 2ème où j'ai voulu intégrer directement la procédure "essai" dans "Private Sub Workbook_Open()". Malheureusement, ca ne marche pas. Pourquoi donc ? Mauvaise Déclaration de la variable ?

Bonne journée à vous 2
salut Vgendron,
merci pour ton retour 👍.

ce n'est pas exactement ce que je souhaite. J'ai pris "2024" comme exemple.

J'aimerais que, dans le cas où je clique sur "annuler", ce ne soit pas la valeur que j'ai modifiée qui apparaisse dans la combobox mais celle qui se trouvait avant la modification.


Exemple de ce que je souhaiterais:

VBA4.jpg

merci
 
Bonjour Hyule, Vgendron,
Un essai en PJ qui utilise une variable publique pour mémoriser l'année et un flag GO pour autoriser l'action ou non pour éviter toute ré entrance.
( il aurait été plus simple de fournir un fichier test, cela aurait éviter de refaire un fichier qui de toute façon est éloigné du votre )
 

Pièces jointes

J'ai réussi à adapter le code à mon fichier Excel. Ca fonctionne parfaitement
Génial 😍 . merci bcp pour votre aide 👍

1) Bon, j'avoue ne pas avoir compris comment fonctionne le "GO" dans la macro . Lorsque je change la valeur dans la combobox, je ne vois pas comment ca fait le lien avec la procédure "essai" 🤷‍♀️.

2) J'ai modifié le code pour que l'opération se lance automatiquement à l'ouverture du fichier excel.
J'ai mis, en pièce jointe, 2 fichiers :
- le 1er qui fonctionne parfaitement. J'ai utilisé un "call essai" pour cela
- le 2ème où j'ai voulu intégrer directement la procédure "essai" dans "Private Sub Workbook_Open()". Malheureusement, ca ne marche pas. Pourquoi donc ? Mauvaise Déclaration de la variable ?

Bonne journée à vous 2
 

Pièces jointes

Notre forum d’entraide est 100 % gratuit et le restera.
Aucune formation payante, aucun fichier à acheter, rien à vendre. Mais comme tout site, nous devons couvrir nos frais pour continuer à vous accompagner.
Soutenez-nous en souscrivant à un compte membre : c’est rapide, vous choisissez simplement votre niveau de soutien et le tour est joué.

Je soutiens la communauté et j’accède à mon compte membre

Discussions similaires

Retour