IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Comportement très étrange [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2004
    Messages : 237
    Points : 120
    Points
    120
    Par défaut Comportement très étrange
    Salut,

    Je viens de vivre une expérience très étrange avec VBA Excel 2010. Si quelqu'un y comprend quelque chose qu'il me fasse signe.
    J'ai une macro complémentaire qui ajoute des feuilles dans mon classeur pour y copier certaines données.
    Quelquechose du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        Dim WS, Feuille As Worksheet
     
                Set WS = Sheets.Add
                WS.Name = "FeuilleA"
                ...
    qui fonctionnait parfaitement depuis plusieurs mois.
    J'avais une modification à apporter et mon pc habituel n'était pas disponible.
    J'ai donc fait la modif sur un autre poste avec Excel 2003.
    Ensuite j'ai recopié mon .xla sur 2010. Grave erreur.
    Maintenant, à la première exécution, la macro s'arrête après le sheets.add. Aucun message d'erreur, c'est comme si les lignes suivantes n'existaient pas. Lorsque je relance ma macro une deuxième fois, tout rentre dans l'ordre. Sauf que si je ferme excel, le même phénomène se produit à nouveau quand je relance ma macro à la prochaine réouverture.
    Le plus étrange c'est que c'est comme si ça avait corrompu mon installation car maintenant j'ai le même phénomène avec n'importe quelle macro. Dès qu'on rencontre une instruction sheets.add l'exécution s'arrête et ça uniquement à la première exécution.
    Est-ce que ma présentation est claire?
    Je ne sais plus quoi faire d'autre que de réinstaller excel 2010 en expérant que tout rentre dans l'ordre. À moins que vous ayez une idée.

    Merci d'avance,
    Jean

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 593
    Points : 34 257
    Points
    34 257
    Par défaut
    Salut,
    il faut aller dans le detail lorsqu'on code.

    Ton Sheets.Add est trop aléatoire (tu ne précises pas à quel Workbook tu fais appel).

    En codant "proprement", tu devrais t'affranchir du bug

    Essaie pour commencer avec un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub piou()
    Dim test As Worksheet
    Set test = ThisWorkbook.Sheets.Add
    test.Name = "piou"
    End Sub
    Attention à tes déclarations aussi, tel qu'écrit dans ton exemple WS est de type Variant et non pas Worksheet
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2004
    Messages : 237
    Points : 120
    Points
    120
    Par défaut
    Salut jpcheck,

    Merci, ça semble fonctionner et, ce qui est définitivement étrange, c'est que d'avoir exécuter ton code ça a aussi régler mon problème pour ma macro complémentaire ??????? Je vais corriger tout mon code pour ajouter activeworkbook partout où c'est nécessaire.
    Sauf que maintenant j'ai perdu mon onglet complément.
    J'ai cherché sur le web et il semble que ce soit un problème assez courant mais aucune des solutions proposées ne fonctionne.
    J'ai désinstallé ma macro complémentaire, j'ai même supprimé mon xla du dossier addins. J'ai réinstallé cette même macro, j'ai essayé avec d'autres, rien n'y fait. L'onglet est toujours absent.
    As-tu une idée?

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2004
    Messages : 237
    Points : 120
    Points
    120
    Par défaut
    Je vais ouvrir un nouveau post pour ce problème de menu.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. DateTime comportement très étrange
    Par pjmorce dans le forum C#
    Réponses: 7
    Dernier message: 25/11/2013, 12h25
  2. Comportement boucle WHILE très étrange
    Par czar1983 dans le forum C
    Réponses: 18
    Dernier message: 18/06/2013, 09h43
  3. Comportement très étrange pour CString
    Par squale32 dans le forum Visual C++
    Réponses: 15
    Dernier message: 15/05/2008, 11h55
  4. Probleme très étrange mais pourtant si simple ! (Alias)
    Par Artanis dans le forum Langage SQL
    Réponses: 2
    Dernier message: 13/05/2005, 19h56
  5. Problème très étrange...
    Par TitiFr dans le forum Requêtes
    Réponses: 4
    Dernier message: 31/03/2005, 21h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo