Bonjour le forum,
Je dois visualiser une feuille portant le même nom que celle active, elle se trouve dans un dossier parent.
ma feuille s'appelle "test" dans le dossier "2016" et dans le dossier "2015".
Pour pouvoir visualisé les deux feuilles en même temps j'ai créé une macro qui retrouve le fichier dans le dossier N-1, qui le renomme temporairement en temp.xlsm, qui me génère un pdf, et que je charge ensuite dans un Userform.
A la fermeture de l'userform le fichier "temp" reprend son nom d'origine et le pdf créé est supprimé.
Tout fonctionne, néanmoins je me retrouve face à une difficulté liée à l'extension!!
En effet, si dans mon dossier 2015 la feuille se nomme "temp.xls" dans mon dossier 2016 la feuille peut être nommée "temp.xlsx" et la je bloque car pour retrouver ma feuille je pars de mon ActiveWorbook.name...
je joint le code :
Ce que j'aimerais c'est pouvoir retrouver et renommer le fichier sans tenir compte de l’extension.
Je dois visualiser une feuille portant le même nom que celle active, elle se trouve dans un dossier parent.
ma feuille s'appelle "test" dans le dossier "2016" et dans le dossier "2015".
Pour pouvoir visualisé les deux feuilles en même temps j'ai créé une macro qui retrouve le fichier dans le dossier N-1, qui le renomme temporairement en temp.xlsm, qui me génère un pdf, et que je charge ensuite dans un Userform.
A la fermeture de l'userform le fichier "temp" reprend son nom d'origine et le pdf créé est supprimé.
Tout fonctionne, néanmoins je me retrouve face à une difficulté liée à l'extension!!
En effet, si dans mon dossier 2015 la feuille se nomme "temp.xls" dans mon dossier 2016 la feuille peut être nommée "temp.xlsx" et la je bloque car pour retrouver ma feuille je pars de mon ActiveWorbook.name...
je joint le code :
Code:
Dim AncienNom As String, NouveauNom As String
Dim AncienNom2 As String, NouveauNom2 As String
c = ThisWorkbook.Path
cc = Mid(ThisWorkbook.Path, 1, InStrRev(ThisWorkbook.Path, "\") - 1)
ccc = Mid(cc, 1, InStrRev(cc, "\") - 1)
pos1 = Len(c) - Len(cc)
pos2 = Len(cc) - Len(ccc)
dossier = Mid(cc, 1, InStrRev(cc, "\") - 1)
dossier2 = Mid(dossier, 1, InStrRev(dossier, "\") - 1)
Dim chem As String, pos&
chem = ActiveWorkbook.Name
cccc = Right(cc, pos2 - 1)
ccccc = Right(c, pos1 - 1)
pos3 = InStr(chem, ".")
PDF = Left(chem, pos3 - 1)
Cheminsource = dossier2 & "\" & "2015" & "\" & cccc & "\" & ccccc & "\" & ActiveWorkbook.Name
Fichier_Destination = dossier2 & "\" & "2015" & "\" & cccc & "\" & ccccc & "\" & PDF & ".pdf"
AncienNom = Cheminsource
NouveauNom = dossier2 & "\" & "2015" & "\" & cccc & "\" & ccccc & "\" & "temp.xlsm"
'Vérifie si le fichier à renommer existe.
If Dir(AncienNom) = "" Then Exit Sub
'Renomme le fichier
Name AncienNom As NouveauNom
Workbooks.Open NouveauNom ' ouverture du fichier
ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Fichier_Destination, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False ' sauvegarde du fichier au format pdf
ActiveWorkbook.Close (False) ' fermeture du fichier
AncienNom2 = dossier2 & "\" & "2015" & "\" & cccc & "\" & ccccc & "\" & "temp.xlsm"
NouveauNom2 = Cheminsource
'Vérifie si le fichier à renommer existe.
If Dir(AncienNom2) = "" Then Exit Sub
'Renomme le fichier
Name AncienNom2 As NouveauNom2
Ce que j'aimerais c'est pouvoir retrouver et renommer le fichier sans tenir compte de l’extension.
Dernière édition: