Vous utilisez un navigateur obsolète. Il se peut que ce site ou d'autres sites Web ne s'affichent pas correctement. Vous devez le mettre à jour ou utiliser un navigateur alternatif.
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 !
bonjour à tous
J'ai sur une feuille une procédure évenementielle selectionchange. J'aimerais que cette procedure ne se déclenche pas sur changement de n'importe que cellule mais juste lorsque les cellules A1:C10 sont modifiées
Merci
If Not Intersect(Target, Range("A10:C10")) Is Nothing Then
peut-il s'écrire
Code:
If Intersect(Target, Range("A10:C10")) Then
?
Si oui alors pourquoi l'écrire de cette manière (if not....is nothing) ?
Si non quelle est la différence de résultat entre les 2 ?
On pourrait peut-être également écrire quelque chose (non testé) dans le genre :
n'est pas vraiment correct, Target.Address va renvoyer une adresse de cellule, c'est à dire un texte du type "$A$10"
donc on pourrait être tenté par
Code:
if target.address = "$A$10:$C$10" Then
mais dans ce cas la procédure ne se lance que si la plage est parfaitement égale à $A$10:$C$10, pas s'il y a certaines cellules en commun... d'où l'intéret d'Intersect
L'intersection des deux 'Est rien' -> erreur car [B]vba ne sait pas travailler sur rien.[/B]
expliqué comme ça je comprends.
Tototiti 🙂
Code:
mais dans ce cas la procédure ne se lance que [B]si la plage est parfaitement égale à $A$10:$C$10[/B], pas s'il y a certaines cellules en commun... d'où l'intérêt d'Intersect
Re
oui kjin ça je l'avais compris. J'ai d'ailleurs ressorti le fichier exemple que tu m'avais fait pour expliquer intersect😉. La question ne portait pas sur :
If Intersect(Target, Range("A10:C10")) Is Nothing Then ..
Pour moi If Intersect(Target, Range("A10:C10")) Then et If Not Intersect(Target, Range("A10:C10")) Is Nothing Then ... voulaient dire la même chose🙄.
Ce qui m'a permis de comprendre la différence entre les 2 c'est l'explication de Hasco:
"vba ne sait pas travailler sur rien."
A+
L'autre chose qui n'est pas correcte dans cette expression est que ce qui se trouve entre le If et le Then doit renvoyer un Booléen ou quelque chose de compréhensible comme un Booléen (True ou False, -1 ou 0)
Or Intersect ne renvoie pas un Booléen mais soit un objet Range, soit Nothing...
Re 🙂
je ne sais pas si ta science est infuse ou non mais je sais qu'en matière de VBA, elle est grande😱😱😱.
Merci à toi de me répondre quand je pose une question dans ce domaine et sache que je suis très sensible à tes petits fichiers explicatifs (sur intersect et la notion des variables tableau par exemple) qui valent souvent mieux qu'un long discours et que je garde dans un répertoire à ton nom😉.
Cordialement
David
Re
Merci pour ces réponses. je vais tester tout ça pour bien comprendre.
Je serais très interessée par ces "petits fichiers explicatifs" (intersect et variables tableau). J'ai bien un petit exemple d'utilisation d'une variable tableau à 1 dim. qui compte le nombre d'occurences de chaque lettre d'un mot, mais franchement, ce code est vraiment pas simple (si y a des amateurs, je le mets en fichier joint)
Salut alexane et le forum
J'ai juste jeté un oeil sur les postes, et il y a une chose que je ne comprends pas :
J'ai sur une feuille une procédure évenementielle selectionchange. J'aimerais que cette procedure ne se déclenche pas sur changement de n'importe que cellule mais juste lorsque les cellules A1:C10 sont modifiées
Or, chez moi, SelectionChange ne se déclenche qu'au changement de sélection, pas quand une cellule est modifiée. Donc, plutôt que la manière de limiter la plage concernée, je me pose la question de savoir si ce n'est pas Worksheet_Change qu'il faudrait utiliser ?
A+
- 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