Ouvrir indifféremment un .xls ou un .xlsx (VBA)

  • Initiateur de la discussion Initiateur de la discussion migou
  • Date de début Date de début

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 !

migou

XLDnaute Nouveau
Bonjour,

je suis face à un curieux problème que je n'arrive pas à résoudre. Je vous explique.

Je dois depuis un classeur donné en ouvrir un autre pour effectuer des opérations dessus. Je souhaite que cet autre classeur soit au choix au format .xls ou .xlsx. Il se situe dans un sous-répertoire nommé "sources" par rapport au classeur sur lequel je travaille.

Voici la macro que j'ai rédigée :

Code:
Private Sub OuvertureFichiers() 
   
    ChDir ThisWorkbook.Path

    Set classeur_rmf = Workbooks.Open(ThisWorkbook.Path & "\Sources\Mon Fichier.xls*")
    
End sub

Jusqu'à présent je travaillais sur le serveur de ma boite et cela fonctionnait très bien, peu importe si je déplaçais le dossier de mon projet, il arrivait toujours à trouver le fichier.

Seulement je viens d'essayer de déplacer le projet sur le bureau et j'obtiens désormais une erreur (excel n'arrive pas à trouver Mon Fichier.xls*). De même quelque soit l'endroit où je positionne le projet sur le lecteur C. Pourtant le chemin renvoyé par ThisWorkbook.path est toujours bon.

Si j'enlève l'étoile cela fonctionne toujours mais il faut alors que mon classeur soit un .xls (logique). Je trouve ça curieux.

Je vous appelle à l'aide, merci par avance 😀
 
Dernière édition:
Re : Ouvrir indifféremment un .xls ou un .xlsx (VBA)

Hello,

On peut imaginé un double test sur le type de fichier pour résoudre ton problème.

J'entend par la tu fait une
Code:
On Error Resume Next
au dessus de la ligne qui ouvre le classeur. si sa bug car tu essais d'ouvrir un fichier .xls tu passe à la ligne suivante ou tu tente d'ouvrir le .xlsx avec la même ligne en gros sa donne un truc du style.

Code:
Private Sub OuvertureFichiers()
   
    ChDir ThisWorkbook.Path
        On Error Resume Next
        Set classeur_rmf = Workbooks.Open(ThisWorkbook.Path & "\Sources\Mon Fichier.xls*")
        
        If Not classeur_rmf Is Nothing Then 'Control si le classeur a été ouvert précèdement
        
        Set classeur_rmf = Workbooks.Open(ThisWorkbook.Path & "\Sources\Mon Fichier.xlsx*")
        
        End If
End Sub

En espérant que sa répond à ton soucis

Meilleures salutations
 
Re : Ouvrir indifféremment un .xls ou un .xlsx (VBA)

Bonjour,

Où avez-vous vu qu'on peut utiliser des caractères génériques avec Workbooks.Open 😕

Code:
Set classeur_rmf = Workbooks.Open(ThisWorkbook.Path & "\Sources\Mon Fichier")
ouvrira le 1er fichier nommé "Mon fichier" trouvé, quelle que soit l'extension.

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

Discussions similaires

Retour