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.
Microsoft 365VBA ouvrir fichier excel sans connaitre son extension
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 !
j'utilise le code suivant pour ouvrir le fichier
Workbooks.Open Filename:=ThisWorkbook.Path & "\TEST.xls"
Mais si ce fichier est enregistré en .xlsx ou .xlsm ou autre, le code ne fonctionne plus
@_Thierry@Yoyo01000
J'ai modifié mon code sachant que j'ai 3 variables :
1 - L'adresse ou lien du dossier (répertoire)
2 - Le nom du fichier
3 - L'extension
Ce qui est bizarre c'est que si tu vas jusqu'à ce niveau de détails de tes variables pour construire le FullPath en trois "morceaux" tu ne soies pas en mesure de savoir ce qu'il y a dans ton répertoire....
Tu peux aussi faire un loop préalable pour tester l'existence du fichier avec DIR(adresse_dossier + "\" + nom_fichier + extension) pour voir celui qui est bon entre XLS, XLSX et XLSM...
Et ensuite "recalibrer" extension ....
Et comme dans mon post #2, il reste la solution de GetOpenFilename ...
re
bonjour on connait le chemin et le nom d'un fichier mais pas le type xl de l'extension ;comment faire? voyons voir 😉 dim chemin$,nom$
chemin=thisworkbook.path &"\"
nom="test"
x=dir(chemin & nom &".xl*")
if x<>"" then Workbooks.Open Filename:=chemin & x
else
msgbox "pas de fichier portant ce nom "
end if
Pour ta solution Patrick, oui en effet ca ouvre n'importe quelle extension "xl*" et finlament ca revient au même que ce que je propose en Post #2
(A savoir SANS extension du tout : Workbooks.Open Filename:=ThisWorkbook.Path & "\TEST" )
La différence c'est que Patrick teste avec Dir l'existence pour eviter un plantage..
La problématique de @RCAVBA est plus "tordue" car il nous "impose" dans sa construction les trois variables :
@_Thierry @Yoyo01000
J'ai modifié mon code sachant que j'ai 3 variables :
1 - L'adresse ou lien du dossier (répertoire)
2 - Le nom du fichier
3 - L'extension
Ce qui me "chiffonne" ce sont les répercussions éventuelles si on ouvre un file existant "TestOpen.XLSM" alors que dans le même répertoire on a aussi un "TestOpen.XLS" et un "TestOpen.XLSX" ... qui pourraient tous être totalement différents chacun d'entres eux.... D'où des effets totalement imprévisibles dans les traitements suivants....
Comme ceci :
Pour tenter de pallier à ce risque (comme précisé dans mon Post #6) , je propose "l'armada" (LoL !!!)
VB:
Option Explicit
Sub Test_Extension()
'Les Variables "imposées" par RCAVBA -------------------------------
Dim MyFolder As String, MyFileName As String, MyExtention As Variant
'-------------------------------------------------------------------
Dim x As Byte
Dim MyFullPath As String
Dim DirFullPath As String
Dim MyCounter As Integer
Dim ExtentionFound As String
MyFolder = ThisWorkbook.Path & "\"
MyFileName = "OpenTest"
MyExtention = Array(".XLSX", ".XLSM", ".XLS") 'RCAVBA : Je ne sais comment laisser la variable extension prendre toutes les valeurs : xls, xlsx...
For x = 0 To UBound(MyExtention)
MyFullPath = MyFolder & MyFileName & MyExtention(x)
DirFullPath = Dir(MyFullPath)
If DirFullPath <> "" Then
MyCounter = MyCounter + 1
ExtentionFound = ExtentionFound & MyFileName & MyExtention(x) & vbCrLf
Workbooks.Open DirFullPath
Else
'Do Nothing
End If
Next x
If ExtentionFound <> "" Then
Select Case MyCounter
Case 2
MsgBox "Attention 2 fichiers ont été trouvés et ouverts !" & vbCrLf & ExtentionFound
Case 3
MsgBox "Attention 3 fichiers ont été trouvés et ouverts !" & vbCrLf & ExtentionFound
End Select
Else
MsgBox "Aucun fichier trouvé !"
End If
End Sub
Je vois déjà la réponse de Patrick qui va nous sortir la même chose en 6 lignes plus optimisées 😉
Mais bon pour faire avancer le shmilblick !
- 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