Re : VBA - plusieur confitions If dans la macro « Private Sub Worksheet_Change »
Bonjour Hub, le fil, le reste du forum,
Le problème, quand on débute est qu'on tire parfois des conclusions sur base d'essais concluants ... ou non.
Ta liste déroulante en Feuil1 est liée à C1. Malheureusement le changement de valeur dans cette cellule, lors de la sélection d'une langue dans ta liste n'est pas un événement qui peut être "intercepté".
Par contre, si tu avais utilisé une Validation des données dans une cellule quelconque pour proposer le choix de la langue, le
Changement de valeur de cette cellule serait bien un événement, quant à lui.
Pour contourner la difficulté rencontrée, tu as utilisé l'événement
Calculate ... le problème est que cet événement surviendra à de multiples reprises (et qu'à l'intérieur de cette procédure, tu en profites pour modifier le contenu des cellules de cette même feuille ... et même pour sélectionner cette feuille).
Dans son fichier
Si... utilisait une macro associée à la liste déroulante ... tu aurais pu t'en inspirer ... on ne sait même pas si tu as jeté un coup d'œil?
La méthode empirique c'est bien, mais elle a ses limites. Assembler des bouts de code avec de la ficelle et de la boue pour colmater c'est un comme ça qu'a été créé Frankenstein
(et chacun sait que la "créature" a fini par échapper à son créateur!)
Ça peut paraître décourageant, mais il vaut parfois mieux recommencer "proprement" (les parties problématiques ... je ne parle pas de la proposition de Robert)
[Edit:] pour illustrer ce que j'ai écrit (ce sera moins décourageant) un fichier à tester en pièce jointe: à chaque modif d'une des cellules jaunes, une boucle vérifie le contenu des 4 cellules et affiche le warning dans la langue sélectionnée. Le contenu de Feuil3 est supprimé (sauf les 2 messages) la procédure Calculate aussi et la Worksheet_Change de Feuil1 réduite à sa plus simple expression.
... Le tout
me semble conforme à la demande initiale?