VBA classeur qui interfère avec les autres
Résolu
Sansandrine
Messages postés
88
Date d'inscription
Statut
Membre
Dernière intervention
-
Le Pingou Messages postés 12249 Date d'inscription Statut Contributeur Dernière intervention -
Le Pingou Messages postés 12249 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Voilà j'ai un fichier qui contient des macros et qui interfère avec d'autres fichiers et je ne sais pas comment faire pour que la macro soit juste pour ce fichier.
Quand j'ouvre un autre fichier excel il me met :
Erreur d'exécution 9 : l'indice n'appartient pas à la sélection
Et quand le fichier est le seul ouvert il n'y a pas de problèmes. J'ai essayé de définir le classeur dans le début de la macro : woorkook(« ... »).sheets(« men_ext »).
Aussi j'ai du supprimer toutes les autres feuilles de ce classeur car elles interféraient aussi mais ça c'est pas le plus grave, je voudrais en priorité pouvoir travailler sur d'autres classeurs en même temps que sur celui-ci sans qu'il me mette le message d'erreur.
J'espère que quelqu'un pourra m'aider.
Merci d'avance.
Voici mon fichier : http://www.cijoint.fr/cjlink.php?file=cj201006/cij3nDGLTY.xls
Voilà j'ai un fichier qui contient des macros et qui interfère avec d'autres fichiers et je ne sais pas comment faire pour que la macro soit juste pour ce fichier.
Quand j'ouvre un autre fichier excel il me met :
Erreur d'exécution 9 : l'indice n'appartient pas à la sélection
Et quand le fichier est le seul ouvert il n'y a pas de problèmes. J'ai essayé de définir le classeur dans le début de la macro : woorkook(« ... »).sheets(« men_ext »).
Aussi j'ai du supprimer toutes les autres feuilles de ce classeur car elles interféraient aussi mais ça c'est pas le plus grave, je voudrais en priorité pouvoir travailler sur d'autres classeurs en même temps que sur celui-ci sans qu'il me mette le message d'erreur.
J'espère que quelqu'un pourra m'aider.
Merci d'avance.
Voici mon fichier : http://www.cijoint.fr/cjlink.php?file=cj201006/cij3nDGLTY.xls
A voir également:
- VBA classeur qui interfère avec les autres
- Imprimer un classeur excel sur mac - Guide
- Excel compter cellule couleur sans vba - Guide
- Étiquette classeur a imprimer gratuit excel - Forum Logiciels
- Classeur numérique gratuit - Télécharger - Bureautique
- Vba attendre 1 seconde ✓ - Forum VB / VBA
5 réponses
bonjour
Ton message n'est pas suffisamment précis pour que l'on te donne une réponse adéquate.
C'est sans doute ta macro qui n'est pas correctement codée mais sans la voir, ce n'est pas possible de deviner ce qui ne fonctionne pas : les possibilités d'erreur sont infinies !
Si tu pouvais nous mettre un exemple de classeur, sans données identifiables et privées, mais avec la structure de tes données et les macros sur http://www.cijoint.fr/ puis nous mettre le lien généré ici ce serait plus facile.
Ton message n'est pas suffisamment précis pour que l'on te donne une réponse adéquate.
C'est sans doute ta macro qui n'est pas correctement codée mais sans la voir, ce n'est pas possible de deviner ce qui ne fonctionne pas : les possibilités d'erreur sont infinies !
Si tu pouvais nous mettre un exemple de classeur, sans données identifiables et privées, mais avec la structure de tes données et les macros sur http://www.cijoint.fr/ puis nous mettre le lien généré ici ce serait plus facile.
Bonjour,
Je viens de voir le poste et il s'agit d'une procédure que j'ai écrite:
C'est bizare je vais regarder.
Pour gbinforme, le classeur concerner se trouve sous : http://www.cijoint.fr/cjlink.php?file=cj201006/cij3nDGLTY.xls
Je viens de voir le poste et il s'agit d'une procédure que j'ai écrite:
Private Sub Worksheet_Calculate() Sheets("MEN_EXT").Activate If ValVerif = "" Then Verification End If End SubEffectivement, si le classeur est ouvert et que l'on ouvre un autre, la procédure se elle se déclenche et provoque une erreur.
C'est bizare je vais regarder.
Pour gbinforme, le classeur concerner se trouve sous : http://www.cijoint.fr/cjlink.php?file=cj201006/cij3nDGLTY.xls
Bonjour Sansandrine,
Remplacer la procédure éxistante par celle-ci:
Note: contrôle que le nom du classeur est bien correct:
"MEN EXT avec calcul de surfaces.xls"
Salutations.
Le Pingou
Remplacer la procédure éxistante par celle-ci:
Private Sub Worksheet_Calculate() If Not ActiveWorkbook.Name = "MEN EXT avec calcul de surfaces.xls" Then Exit Sub Sheets("MEN_EXT").Activate If ValVerif = "" Then Verification End If End Sub
Note: contrôle que le nom du classeur est bien correct:
"MEN EXT avec calcul de surfaces.xls"
Salutations.
Le Pingou
Bonjour Le Pingou,
Effectivement je n'avais pas le classeur lors de mon message et je n'avais pas pensé à "calculate".
Cette fonction peut s'avérer utile mais elle a le gros inconvénient d'être sans arrêt déclenchée, à chaque modification de classeur concerné ou non. Elle est en activité aussi, bien sûr, à la moindre modification de feuille par macro, ce qui fait qu'il faut vraiment quelle soit très légère, parfaitement délimitée et utilisée avec parcimonie.
Effectivement je n'avais pas le classeur lors de mon message et je n'avais pas pensé à "calculate".
Cette fonction peut s'avérer utile mais elle a le gros inconvénient d'être sans arrêt déclenchée, à chaque modification de classeur concerné ou non. Elle est en activité aussi, bien sûr, à la moindre modification de feuille par macro, ce qui fait qu'il faut vraiment quelle soit très légère, parfaitement délimitée et utilisée avec parcimonie.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour Sansandrine,
Est-ce que c'est bon maintenant avec cette correction : https://forums.commentcamarche.net/forum/affich-17916795-vba-classeur-qui-interfere-avec-les-autres#8
Est-ce que c'est bon maintenant avec cette correction : https://forums.commentcamarche.net/forum/affich-17916795-vba-classeur-qui-interfere-avec-les-autres#8
Bonjour,
Remplacer la procédure éxistante par celle-ci:
Private Sub Worksheet_Calculate()
If Not ActiveWorkbook.Name = "MEN EXT avec calcul de surfaces.xls" Then Exit Sub
If Not ActiveSheet.Name = "MEN_EXT" Then Exit Sub
Sheets("MEN_EXT").Activate
If ValVerif = "" Then
Verification
End If
End Sub
Excusez-moi pour le désagrément causé.
Salutations.
Le Pingou
Remplacer la procédure éxistante par celle-ci:
Private Sub Worksheet_Calculate()
If Not ActiveWorkbook.Name = "MEN EXT avec calcul de surfaces.xls" Then Exit Sub
If Not ActiveSheet.Name = "MEN_EXT" Then Exit Sub
Sheets("MEN_EXT").Activate
If ValVerif = "" Then
Verification
End If
End Sub
Excusez-moi pour le désagrément causé.
Salutations.
Le Pingou
Bonjour Le Pingou,
En évitant les négations et en positivant, l'on peut aussi l'écrire :
J'aime bien simplifier au maximum pour faciliter la compréhension ultérieure...
La perfection est atteinte, non pas lorsqu'il n'y a plus rien à ajouter, mais lorsqu'il n'y a plus rien à retirer. Antoine de Saint-Exupéry
Bien amicalement et bonne journée à toi.
En évitant les négations et en positivant, l'on peut aussi l'écrire :
Private Sub Worksheet_Calculate() If ActiveWorkbook.Name = "MEN EXT avec calcul de surfaces.xls" _ And ActiveSheet.Name = "MEN_EXT" _ And ValVerif = "" Then Verification End Sub
J'aime bien simplifier au maximum pour faciliter la compréhension ultérieure...
La perfection est atteinte, non pas lorsqu'il n'y a plus rien à ajouter, mais lorsqu'il n'y a plus rien à retirer. Antoine de Saint-Exupéry
Bien amicalement et bonne journée à toi.