aide worksheet_change

  • Initiateur de la discussion Initiateur de la discussion hprfr
  • 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 !

H

hprfr

Guest
Bonjour,

Voila, j'ai un petit probleme pour remplir un fichier a l'aide de la fonction private sub worksheet_change.
J'ai un fichier avec 3 onglets, et je souhaite, remplir les 2 premiers onglets en fonction du choix d'un menu déroulant dans une cellule du premier onglet.
Private Sub Worksheet_Change(ByVal Target As Range)
If Range("E2").Value = "Français" Then Call remplissage_francais
If Range("E2").Value = "English" Then Call remplissage_anglais
End Sub

Sub remplissage_francais()
Sheets("Données-Data").Select
Range("B3").Value = "Type de fluide"
Range("B8").Value = "Fluide"
...
Sheets("Calculs").Select
Range("B4").Value = "Type de vanne"
...
End Sub

Sub remplissage_anglais()
Range("B3").Value = "Type of fluid"
Range("B8").Value = "Fluid"
...
Sheets("Calculs").Select
Range("B4").Value = "Valve type"
...
End Sub

Voila mon code, que j'ai mis dans sheet1 sur vba
Le seul truc, c'est que tant que je ne demande pas de remplir le deuxième onglet, ca se passe très bien, le soucis arrive lorsque je veux remplir le deuxieme onglet, ca plante et je sais pas trop a quoi cela est du.

Merci d'avance
 
Re : aide worksheet_change

Alors en fait, ca fait la même chose avec .activate ou .select
Et la, encore mieux, si je fais du pas à pas, même en essayant simplement de remplir le premier onglet (j'ai viré la partie qui rempli le deuxième), ca boucle et ca ne sort pas de la fonction de remplissage.
 
Re : aide worksheet_change

bonsoir 🙂

peut etre comme ceci

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Range("E2").Value = "Français" Then Call remplissage_francais
If Range("E2").Value = "English" Then Call remplissage_anglais
End Sub

Sub remplissage_francais()
With Sheets("Données-Data")
    .Range("B3").Value = "Type de fluide"
    .Range("B8").Value = "Fluide"
End With


With Sheets("Calculs")
    .Range("B4").Value = "Type de vanne"
End With

End Sub

Sub remplissage_anglais()
With Sheets("Données-Data")
    .Range("B3").Value = "Type of fluid"
    .Range("B8").Value = "Fluid"
End With

With Sheets("Calculs")
    .Range("B4").Value = "Valve type"
End With
End Sub

bye
 
Re : aide worksheet_change

Pas mieux avec With
Et va falloir que je regarde ca a fond parceque ca marchait impec pour faire le remplissage dans un onglet, j'ai fait des modifs pour y mettre le deuxième onglet et du coup ca marche plus.
Et ce que je comprend pas c'est le fait que ca boucle des que je rentre dans la fonction de remplissage (ca boucle, et je vois pas a cause de quoi).
En tout cas merci pour l'aide
 
Re : aide worksheet_change

Bon, alors pour être sur, j'ai créé un nouveau fichier avec juste ce morceau de code. Et j'ai rajouté un ou 2 espions pour voir ce qu'il se passe quand le je choisis ma valeur cible.
résultat : Effectivement, les cases se remplissent bien, mais par contre, j'ai tours un probleme. Je reste dans la boucle de remplissage.
Peut etre cela vient de private sub worksheet_change
Je vais chercher encore
 
Re : aide worksheet_change

Voila le fichier (enfin une partie : celle qui pose probleme).
A noter que je suis en train de faire une modificatin sur un fichier de maniere a pouvoir changer la langue en fonction de ce que demande la personne qui l'utilise. La partie calculs de mon fichier fonctionne impec et pour pas surcharger, je n'ai mis que la partie qui pose probleme.
Ceci etant, je viens de me rendre compte que si jamais je change une cellule de l'onglet "Donnees-Data", a ce moment la le controle est de nouveau effectuer avec la private sub et le remplissage recommence, et cela meme si ce n'est pas en changeant la langue.
 

Pièces jointes

Re : aide worksheet_change

Ben voilà, c'est ce que je supposais dans mon post précédent : tu modifies une cellule de la feuille qui contient le Worksheet_Change, donc forcément tu tournes en rond. 🙁

Il faurait, par exemple, tester le Target.address pour voir s'il est bien égal à $E$2.
 
Dernière édition:
Re : aide worksheet_change

Merci, c'est ce que je viens de voir, a chaque fois que je rentre une nouvelle valeur dans l onglet, ca repart pour un tour.
Donc soit tester le target adress, soit faire un nouvel onglet pour le choix de la langue.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
1 K
Réponses
1
Affichages
325
Réponses
10
Affichages
792
  • Question Question
Microsoft 365 Code VBA
Réponses
10
Affichages
1 K
Réponses
3
Affichages
923
Retour