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

XL 2016 RESOLU : Accéder à un dossier parent en VBA

roybaf

XLDnaute Occasionnel
Bonjour à tous,

J'ai un projet bien difficile à mettre en oeuvre...

Je souhaite offrir la possibilité d'ouvrir une feuille excel convertie en PDF via Userform, jusqu'à la rien de bien compliqué je vais pouvoir m'en sortir.

Néanmoins la feuille porte le même nom que celle sur laquelle je vais exécuter ma macro.
Cette feuille ne se situe pas dans le même dossier (évidement).

Celle que je veux convertir : C:\Bureau\Dossier clients\2015\synthèse.xls
Celle que je veux utiliser pour l'affichage : C:\Bureau\Dossier clients\2016\synthèse.xls

Je dois pouvoir avoir une visu en simultanée des deux feuilles (d'où la conversion en PDF et utilisation Userform...).

Jusqu'à la rien de compliqué vous me dirais mais beaucoup d'utilisateurs utilisent l'outil et le répertoire de l'année précédente peut avoir un nom différent : 3 types

2015
14-15
15


Et la je sèche!! si je n'avais que "2015" j'aurais extrait la chaîne de caractère et j'aurais fais -1 quelque chose du genre...

Je joins un code pour l'export d'un TCD en PDF dans un répertoire parent au cas ou nous pourrions en faire quelque chose, je l'utilise dans une feuille et fonctionne bien.

Merci à tous

Code:
Public c As String

Public cc As String

Public chem As String, pos&

Public ccc As String

Sub valeursvariables()
c = Mid(ThisWorkbook.Path, 1, InStrRev(ThisWorkbook.Path, "\") - 1)
cc = Mid(c, 1, InStrRev(c, "\") - 1)
Dim chem As String, pos&
chem = ActiveWorkbook.Name
pos = InStr(chem, ".")
ccc = Left(chem, pos - 1)
End Sub
Sub Export_Acte()
'
Application.ScreenUpdating = False
On Error Resume Next
Call valeursvariables
Sheets("TCD-Acte").Activate
Call format_page
    ActiveWorkbook.Save
ActiveSheet.PivotTables("TCD_Acte").TableRange1.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        cc & "\" _
        & "Pièces jointes" & "\" & ccc & "\" & Range("F1").Value & ".pdf" _
        , Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
        :=False, OpenAfterPublish:=True
Sheets("Menu").Activate
MsgBox ("Fichier enregistré en Pièces jointes")
Application.ScreenUpdating = True
End Sub
 

sousou

XLDnaute Barbatruc
Bonjour
Sans fichier! voici une fonction qui peut t'inspirer pour transformer le nom du répertoire
Function nom(rep)
Select Case Len(rep)
Case Is = 4
nom = Val(rep) + 1
Case Is = 5
nom = Val(Right(rep, 2)) + 2001
Case Is = 2
nom = Val(rep) + 2001
End Select
End Function
 

Discussions similaires

Réponses
6
Affichages
391
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…