Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 problème CHDIR

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 !

phil75016

XLDnaute Occasionnel
Bonjour j'ai beaucoup de macros avec l'instruction ChDir et depuis que l'on m'a changé mon ordi toutes mes macros qui contiennent cette instruction plantent. Ce que je ne comprends pas c'est que des collègues qui sont sensés avoir le même PC n'ont pas de plantage. D'où cela peut il venir? Est-ce une option? une version d'excel? J'ai ceci : Microsoft® Excel® pour Microsoft 365 MSO (Version 2507 Build 16.0.19029.20136) 64 bits
Je vous remercie car je suis dans la panade si je dois réécrire toutes mes macros.
 
En fait je n'ai pas forcément de message d'erreur mais la macro ne reconnait pas des variables.
Je mets un exemple :
Public fichier_recap, code, MONFICHIER, repertoire_fichiers, FICHIER_REPORTING

Sub fichiers()
repertoire_fichiers = "X:\Dossiers reçus\"
FICHIER_REPORTING = "*dossier 2023.xlsm"
End Sub

Sub recup_TOUT()
Dim mafeuille As Worksheet
Dim MONFICHIER As Workbook
fichier_recap = ActiveWorkbook.Name
Call fichiers
ChDir repertoire_fichiers
chemin = repertoire_fichiers & FICHIER_REPORTING

Lig = 0
D = Dir(chemin)
While D <> ""
Lig = Lig + 1
D = Dir
Wend

MONFICHIER = Dir(FICHIER_REPORTING)

La macro plante à MONFICHIER avec le message "erreur d'exécution 91". Je reprécise que tout fonctionnait avant ce changement de PC!! Je sais que mes macros ne sont pas forcément écrites dans les règles de l'art car je ne suis pas informaticien mais elles fonctionnent!!! (ou plutôt fonctionnaient!!!)
 
Dernière édition:
Salut phil75016

Oh punaise... v'la le développement 😱
Pourquoi mettre une "Sub Fichiers" 🤔 on peut simplement initialiser les variables dans le module principal...

Que ce genre d'exemple ne plante pas chez les autres est impossible !
Vous déclarez MONFICHIER comme objet Workbook
Et ensuite vous voulez lui attribuer une valeur texte !?
VB:
MONFICHIER = Dir(FICHIER_REPORTING)

Pour rappel 😠 sur ce forum et d'autres on met le code entre balises avec le bouton qui va bien 🙄
 
J'ai rajouté MONFICHIER as Workbook dans l'exemple mais même si je le supprime dans la macro je n'ai plus le message d'erreur 91 mais la valeur MONFICHIER est vide donc la macro se termine. Désolé pour la balise je ne connais pas!!
 
Dernière édition:
Bonjour,

Est-ce que ça ne viendrait pas simplement de l'unité de stockage qui ne serait pas celle par défaut ?

Mais ça plante sur ChDir ou sur l'affectation de MONFICHIER ???
 
Dernière édition:
VB:
Sub fichiers()
repertoire_fichiers = "X:\Dossiers reçus\"
FICHIER_REPORTING = "*dossier 2023.xlsm"
End Sub

Sub recup_TOUT()
Dim mafeuille As Worksheet
fichier_recap = ActiveWorkbook.Name
Call fichiers
ChDir repertoire_fichiers
chemin = repertoire_fichiers & FICHIER_REPORTING

Lig = 0
D = Dir(chemin)
While D <> ""
Lig = Lig + 1
D = Dir
Wend

MONFICHIER = Dir(FICHIER_REPORTING)

End Sub
C'est plus lisible ainsi, et avec indentation ce serait encore mieux. 😉
 
bonjour,
"erreur d'exécution 91"

il est de notoriété publique que nous connaissons toutes les significations des code erreur !

un développement, même male ficelé,qui fonctionne sur une bécane devrait fonctionner sur toutes les autres a moins que le problème soit lié à son environnement propre.

dans VBA vas dans le menu outils=>références et regarde si tu as des librairies manquantes ou Missing. si c'est le cas decoche les librairies.
 
Dernière édition:
Bonjour à @phil75016 🙂, @Oneida 😉, @wDog66 😉, @TooFatBoy 😉, @dysorthographie 😉, @patricktoulon 😉,

Comme nous n'avons pas le contexte du problème, comme nous n'avons qu'un petit bout de code, il va être difficile de vous aider.

Tentez ce qui suit avant les ChDir, on ne sait jamais...
  • Soit le répertoire repNom ="n:\toto"
  • ChDir(repNom) ne changera pas le lecteur courant. Si on était sur le lecteur courant C: (du point de vue VBA) et qu'on exécute ChDir(repNom), on ne passera pas sur le lecteur courant N:
  • Pour changer de lecteur, on exécutera l'instruction VBA: ChDrive Left(repNom, 1) - avant d'utiliser le ChDir(repNom)

On aura donc :
VB:
repNom ="n:\toto"
ChDrive Left(repNom, 1)
ChDir(repNom)

nota : Msgbox CurDrive donne le répertoire courant avec la lettre du lecteur courant
 
Dernière édition:
J'ai 4 références cochées : Visual basic for application/Microsoft excel 16.0 Object Library/OLE Automation et Microsoft office 16.0 object Library. Il en manque? Faut il cocher autre chose? Merci
 
un développement, même male ficelé,qui fonctionne sur une bécane devrait fonctionner sur toutes les autres a moins que le problème soit lié à son environnement propre.
Sauf si le code donné est plus qu'évasif et dénaturé 🤔
Je ne vois pas comment attribuer une valeur texte à une variable objet peux fonctionner sur d'autres PC...
Tu sais toi !?

Erreur pile poil dessus 🙄

 
Sauf si le code donné est plus qu'évasif et dénaturé 🤔
Je ne vois pas comment attribuer une valeur texte à une variable objet peux fonctionner sur d'autres PC...
Tu sais toi !?
Désolé mais j'ai dit que j'avais mis la variable objet dans ce forum (car je pensais bien faire) mais à l'origine je n'avais rien mis et cela fonctionnait bien sur mon autre PC mais pas sur celui-ci.
 
Re,
Ce qui n'est pas explicite pour moi et j'ai compris ainsi
Ligne gardée
VB:
Dim MONFICHIER As Workbook
Ligne supprimée
Code:
MONFICHIER = Dir(FICHIER_REPORTING)

Serait-ce l'inverse, ce qui du coup changerait tout 🤭
 
Pour moi il dit qu'il a ajouté la déclaration de la variable pour poster le code ici, mais que son affectation existe bien dans son vrai code.

C'est pour ça que j'avais enlevé la déclaration de la variable en postant son code "balisé" en #7. 😉
 
- 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
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…