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

Microsoft 365 Gestion des liens d'enregistrement

julien1982

XLDnaute Occasionnel
Bonjour a toutes et tous,

je vais essayer d’être clair dans mon explication et mon problème.
Je possède un fichier de gestion et création de bordereaux d'envoi qui fonctionnait parfaitement lorsque l'on travaillait en local.
Depuis peu, nous sommes passer sur office 365 avec sharepoint.

Depuis ce jour, mes macro ne fonctionnent pas correctement notamment la macro 'publier' situer dans l'onglet "Bordereau Destinataire' du fichier joint.

Cette macro me permettait de faire une copie des onglets "Bordereau Destinataire" et "Bordereau AR" dans le chemin enregistré et écrit en cellule C de l'onglet "Liste Chemins". Du moment ou nous sommes passer à Sharepoint, impossible de faire marcher cette macro pour qu'elle m'enregistre mes fichiers au bon endroit car les chemins sont différents suivant qui utilise le fichier. Par exemple, si je l'utilise sur mon PC portable j'aurai comme chemin:

C:\Users\dessin\chemin de destination....

hors si je le fais depuis mon PC fixe au bureau j'aurai le chemin suivant:

C:\Users\Julien Verdier\chemin de destination...

Seule la partie rouge du chemin est différente, tout le reste après est identique.

Du coup n'ayant pas le même nom d'utilisateur cela ne marche plus....

j’espère avoir été clair, si besoin je referai plus détaillé.

Je suis preneur si quelqu'un a une solution quitte à reprendre tout le code c'est pas un soucis.

merci par avance.
 

Phil69970

XLDnaute Barbatruc
Julien

Cela n'a rien à voir avec ta question du départ.....

Par contre, la macro bloque

Je pense que cela vient de la ligne d'avant en bleu

ActiveSheet.Unprotect
Sheets("Bordereau Destinataire").Select
ActiveSheet.Shapes("1 - Publier").Select
Selection.Delete

En clair la macro va dans la feuille "Bordereau Destinataire" et cette feuille est donc la feuille active maintenant et dans cette feuille il devrait y avoir la shape "1 - Publier" mais est ce qu'elle existe dans la feuille "Bordereau Destinataire" ???

Tu ne peux pas faire directement quelque chose comme ceci ....

Sheets("Bordereau Destinataire").Shapes("1 - Publier").Delete
Avec directement le nom de la feuille ==> et le nom de la shape ==> et le nom de l'action

C’est pas plus simple !
 

julien1982

XLDnaute Occasionnel
En fait la macro "1 - publier" est bien présente sur mon onglet "Bordereau Destinataire" c'est elle qui me sert a enregistrer mes documents au bon endroit donc je pensais que c’était lié a ma demande initiale
En gros cette macro, copie 2 onglets "Bordereau Destinataire" et "Bordereau AR" et l'enregistre au bon endroit c'est a dire le chemin inscrit dans la cellule F2 de l'onglet "Listes Chemins"
Extrait de cette feuille...



Bref, Pour revenir à mes moutons, ce que je ne comprend pas c'est qu'est ce que je dois mettre en cellule C2 dans l'onglet "listes Chemins" pour qu'il comprenne également mon pb de chemins diff"?
 

Phil69970

XLDnaute Barbatruc
Julien

1) Le chemin se définit comme ceci
Si en F2 il y a quelque chose c'est le chemin qui sera pris en compte
Si en F2 il y a rien on prend le chemin par défaut

2) Il faut maintenant le nom du fichier qui est défini par cette ligne
Fichier = Cells(X, Y).Value

Mais faut savoir ce que tu veux faire !!!
Cells(5,2) pour E2, c'est pour le nom de fichier.

Et au post #12
Fichier = Cells(8, 4).Value

Et au post #18
Bref, Pour revenir à mes moutons, ce que je ne comprend pas c'est qu'est ce que je dois mettre en cellule C2 dans l'onglet "listes Chemins" pour qu'il comprenne également mon pb de chemins diff"?

Mais un coup tu parles de C2 un coup de E2 voir D8 bref c'est pas clair du tout

Et si tu veux avoir la valeur de la cellule C2 ou E2 ou D8 tu peux faire simplement

Fichier = Range("E2").Value ou Fichier = Range("C2").Value ou Fichier = Range("G8").Value
C'est peut être plus parlant et visible.

J'ai l'impression que tu mélanges le chemin et le nom du fichier


Ceci est le chemin par défaut
CheminDefaut = Environ("USERPROFILE") & "\" & "Documents\_DATA\05_Gestion BE\60-Bordereaux"
Ceci est le chemin enregistré en F2 si il existe
CheminEnr = Worksheets("Listes Chemins").Range("F2").Value
Sinon
CheminEnr = CheminDefaut

Ceci est le nom du fichier
Fichier = Range("E2").Value ou Fichier = Range("C2").Value ou Fichier = Range("G8").Value

Donc le total CheminEnr + fichier donnera ceci
ActiveWorkbook.SaveAs Filename:=CheminEnr & "\" & Fichier & ".xlsm", _
FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False

Ceci devrait répondre à ta question

3)Après je ne suis pas sur du tout que ceci fasse ce que tu veux faire
ActiveSheet.Unprotect
Sheets("Bordereau Destinataire").Select
ActiveSheet.Shapes("1 - Publier").Select
Selection.Delete
En clair que veux tu faire ici ?
Supprimer le bouton ?
Si oui ceci devrait le faire
Sheets("Bordereau Destinataire").Shapes("1 - Publier").Delete
 

julien1982

XLDnaute Occasionnel
Bonjour Phil69970,

merci déjà pour ton retour et tes explications.
En fait, je pense que c'est dan mes explications que cela n'est pas clair (pas simple d'expliquer un truc que tu utilise tout le temps ).

Je vais essayer d’être clair.

Mon code permets 2 choses, soit enregistrer mon fichier sur un chemin par defaut:
VB:
CheminDefaut = Environ("USERPROFILE") & "\" & "Documents\_DATA\05_Gestion BE\60-Bordereaux"

ca c'est OK ca marche nickel.

Autre solution, mon fichier doit s'enregistrer sur le chemin inscrit en cellule F2 où il y a une formule qui cherche le numéro de l'affaire (cellule A3) et si c'est non vide, le chemin inscrit en C3 est ecrit.

Du coup, soit mon fichier est enregistré sur le chemin inscrit en F2 si celui ci est non vide,

Code:
CheminEnr = Worksheets("Listes Chemins").Range("F2").Value

sinon il est enregistré sur le chemin par defaut.

Jusque la tout est ok, la formule marche, le code aussi pour l'enregistrement par defaut quelque soit le PC ou je soit.

Par contre, comment faire pour que le chemin enregistré en F2 comprenne qu'il y ai plusieurs chemin possible a cause du nom du PC?




Directement dans la formule ou par du code?

Pour le reste, oui l’idéal c'est que lors de la copie le bouton "1 - publier" soit supprimer du fichier copié mais bon ca c'est du détail si c'est pas OP c'est pas grave
 

Phil69970

XLDnaute Barbatruc
Julien

Par contre, comment faire pour que le chemin enregistré en F2 comprenne qu'il y ai plusieurs chemin possible a cause du nom du PC?

Et bien tu fait pareil en F2 (A vérifier que j'ai bien recopier TON IMAGE !!!)
Environ("OneDrive")\Bureau\EtudesCAT\2023\EC-23003 Talence Médoquine\05- COURRIER

Ceci :
Environ("OneDrive")
Devrait te donner



ou bien cela


suivant ou tu te trouves .....
 

julien1982

XLDnaute Occasionnel

Pièces jointes

  • Bordereau_V1.xlsm
    71.4 KB · Affichages: 1

Discussions similaires

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