XL 2016 nom des chemin pour plusieurs macros

phil0202

XLDnaute Nouveau
Bonjour,
je suis face à 2 problèmes
Probleme1
dans un fichier, j'utilise plusieurs marcro +- indépendants l'une de l'autre.
pour faciliter l'écriture et la lecture, j'utilise des nom pour mes fichiers
CheminCPTA = "C:\Users\XXX\Comptable\"
FichierCPTA = " vente 2019.xlsx"

il est supposé que ce fichier est déjà ouvert

ainsi pour aller dans le fichier le fichier comptable, je me contente de la ligne suivante
Workbooks(FichierCPTA).Sheets("IN aperçu 2019").Activate

ce que je voudrais c'est définir une seule fois pour tout le classeur mes différents noms : CheminCPTA FichierCPTA ....

Problème2
Cerise sur le gâteau, je voudrai à terme, via un userform (presque prêt) choisir si je travail avec l'ordi1 et donc la série de chemin1 OU sur l'ordi 2 et donc la série de chemin2 (je travaille avec 2 ordi dont les chemin d'accès sont différents.
 

job75

XLDnaute Barbatruc
Bonjour phil0202, bienvenue sur XLD,

Placez cette macro dans ThisWorkbook :
VB:
Private Sub Workbook_Open()
Names.Add "CheminCPTA", "C:\Users\XXX\Comptable\" 'nom défini
Names.Add "FichierCPTA", "vente 2019.xlsx" 'nom défini
End Sub
Enregistrez le fichier en .xlsm, fermez-le puis rouvrez-le.

Ensuite vous pouvez utiliser en VBA ces noms définis en les mettant entre crochets, exécutez par exemple :
VB:
Sub Test()
MsgBox [CheminCPTA], , "Chemin"
MsgBox [FichierCPTA], , "Fichier"
End Sub
A+
 

job75

XLDnaute Barbatruc
Si le chemin est toujours le chemin d'accès du fichier utiliser :
VB:
Private Sub Workbook_Open()
Names.Add "CheminCPTA", Path & "\" 'nom défini
Names.Add "FichierCPTA", "vente 2019.xlsx" 'nom défini
Saved = True 'évite l'invite à la fermeture si aucune modification
End Sub
Sinon il suffirait de tester le nom de l'ordi avec If Environ("UserName") = "TOTO" Then ... Else ...

J'ai complété avec Saved = True c'est mieux.
 

phil0202

XLDnaute Nouveau
Si le chemin est toujours le chemin d'accès du fichier utiliser :
VB:
Private Sub Workbook_Open()
Names.Add "CheminCPTA", Path & "\" 'nom défini
Names.Add "FichierCPTA", "vente 2019.xlsx" 'nom défini
Saved = True 'évite l'invite à la fermeture si aucune modification
End Sub
Sinon il suffirait de tester le nom de l'ordi avec If Environ("UserName") = "TOTO" Then ... Else ...

J'ai complété avec Saved = True c'est mieux.

le probleme est ...
avec l'ordi 1
user = AZERT
chemin = C:\ABC\....\Comptable\

avec l'ordi 2
user = AZERT
chemin = D:\DEF\...\Comptable\

Je suis en train de tester une solution (dans ThisWorkbook - et suivant ton exlication)

VB:
Private Sub Workbook_Open()
Names.Add "O_CheminCPTA", "C:\ABC\....\Comptable\"
Names.Add "N_CheminCPTA", "D:\DEF\...\Comptable\"
End Sub

ensuite, avec un userform, je demande si ordi 1 ou ordi 2
en fonction, la cellule A1 contiendra 1 ou 2

et ensuite, en début de chaque macro qui utilise des noms, je place ce code :

VB:
choixordi.Show
'c'est le usforme que j'ai adapté

Dim CheminCPTA As String, CheminFACT As String, CheminCLIENT As String, fichierCPTA As String, fichierFACT As String, fichierCLIENT As String

fichierCPTA = [fichierCPTA]
fichierFACT = [fichierFACT]
fichierCLIENT = [fichierCLIENT]

If Range("a1") = 1 Then
CheminCPTA = [N_cheminCPTA]
CheminFACT = [N_cheminFACT]
CheminCLIENT = [N_cheminCLIENT]
        Else
CheminCPTA = [O_cheminCPTA]
CheminFACT = [O_cheminFACT]
CheminCLIENT = [O_cheminCLIENT]
        End If
    Workbooks.Open Filename:=CheminCLIENT & fichierCLIENT
    Workbooks.Open Filename:=CheminCPTA & fichierCPTA
    
'le reste du code suit mais est sans importance pour ce problème'

ce 2ème code est répété a chaque début de macro ( sauf choixordi.Show)
si tu vois un moyen d’alléger, je suis preneur :)
Merci
 

Discussions similaires

Réponses
5
Affichages
396

Statistiques des forums

Discussions
312 082
Messages
2 085 171
Membres
102 805
dernier inscrit
emes