Enregistrer oui, mais sur un nom de disque différent

M12, sa me donne ceci :

capture fofo

Re,

Ok, maintenant teste ceci

Sub test()
  Dim nomf As String
    nomf = Left(ThisWorkbook.Path, 1) & ":\ASSISTANT QUALITE\Calcul des Indicateurs\OTD clients mensuel\" & Range("E15").Value & "_" & Range("E19").Value & ".xlsx"
    msgbox nomf
End Sub

J'ai ceci maintenant :

capturefofo2

Re,

Donc le chemin est bon en Y

sur l'autre pc, il prendra la lettre Z

D'accord merci!

Grand merci à vous 2 vraiment ! Vous avez un sacré courage à aider des gents perdus comme moi ^^

Je vais manger je reviendrai après je pense avoir encore 1 ou 2 soucis avec ce genre de problème, sa sera par rapport à l'ouverture de fichier cette fois ci avec mon problème de Y: et Z: ^^

Bon ap à vous !

Nicolas.

Me revoila !!!

Bon cette fois ci je veux ouvrir ce fichier "extraction de donnée clipper premiere partie.xlsm"

Workbooks.Open Filename:= _
        "Y:\Indicateur\OTD\Outil de calcul OTD\Calcul OTD ms query\extraction de donnée clipper premiere partie.xlsm"

Comment faire pour virer le Y: comme on a fait précédemment?

Merci d'avance

Bonjour

texte = "Y:\Indicateur\OTD\Outil de calcul OTD\Calcul OTD ms query\extraction de donnée clipper premiere partie.xlsm"
texte = texte = Mid(texte, 3)
msgbox(texte) 'pour tester

bonjour

Il me répond "FAUX"

Oups désolé, un text = en trop sur la ligne 2, j'ai retesté le programme après correction, ça fonctionne maintenant :

Sub test()
texte = "Y:\Indicateur\OTD\Outil de calcul OTD\Calcul OTD ms query\extraction de donnée clipper premiere partie.xlsm"
texte = Mid(texte, 3)
MsgBox (texte) 'pour tester
End Sub

Il n'y aura plus qu'a avoir le chemin d'accès du fichier

D'accord, mais sur l'ordinateur de mon collègue sa ne va pas fonctionner non? ces fichiers lui seront en Z:

J'ai ce message :

capturefofo3

Si il faut rajouter le lecteur qui contient par exemple le classeur dans lequel la macro est lancée il faudra faire ceci :

Sub test()
texte = "Y:\Indicateur\OTD\Outil de calcul OTD\Calcul OTD ms query\extraction de donnée clipper premiere partie.xlsm"
texte = Left(ActiveWorkbook.Path,2) & Mid(texte, 3)
MsgBox (texte) 'pour tester
End Sub

Le Left aura pour effet de rajouter le lecteur Z: par exemple dans le nom du fichier,

En clair tu peux presque considérer la fonction comme une fonction qui remplace le lecteur de ton nom de fichier par celui où est enregistré le classeur où tu lances ta macro, mois ça m'affichait : C:\Indicateur\OTD\Outil de calcul OTD\Calcul OTD ms query\extraction de donnée clipper premiere partie.xlsm

d'accord, Donc sa devrais fonctionner la? peux tu me mettre toute la macro stp?

Merci pour l'explication c'est plus clair

Bonjour, du coup je ne sais pas qu'elle code il faut que je mette ...

Bonjour,

Voici ce que ça devrait donner :

Sub test()
nomf = "Y:\Indicateur\OTD\Outil de calcul OTD\Calcul OTD ms query\extraction de donnée clipper premiere partie.xlsm"
nomf = Left(ActiveWorkbook.Path,1) & Mid(nomf, 2) 'on peut même y faire avec 1 et 2, on a juste besoin de changer le Y par Z, pas le : par :
Workbooks.Open Filename:= nomf
End Sub

Bonjour merci pour ta réponse

"'on peut même y faire avec 1 et 2, on a juste besoin de changer le Y par Z, pas le : par :"

C'est à dire?

Bonjour,

juste une petite suggestion (adaptation du code d'Ausecour) :

Sub test()
  nomf = "Y:\Indicateur\OTD\Outil de calcul OTD\Calcul OTD ms query\extraction de donnée clipper premiere partie.xlsm"
  Mid$(nomf, 1, 1) = "Z": Workbooks.Open Filename:=nomf
End Sub

c'est l'instruction avec Mid$() qui change le Y en Z (unité différente, de disque ou réseau)

dhany

Merci, mais admettons que un autre collègue soit en R:

Comment faire? cela va fonctionner?

ah non, faudra mettre : Mid$(nomf, 1, 1) = "R"

dhany

Ah ... donc comment faire alors? :/ Je penses que plusieurs de mes collègue utiliseront mon outil et je pense que leur réseau "Qualité" n'est pas tous en Y ou Z ...

En fait, je parle des valeurs renseignées dans la fonction Left et Mid que j'ai changé par rapport à l'exemple que je t'avais donné.

Si je t'explique plus en détail ce qui est fait sur la ligne

nomf = Left(ActiveWorkbook.Path,1) & Mid(nomf, 2)

tu comprendras mieux

En fait à la base ta variable nomf c'est "Y:\Indicateur\OTD\Outil de calcul OTD\Calcul OTD ms query\extraction de donnée clipper premiere partie.xlsm"

Le but c'est d'enlever le Y et de le remplacer par le lecteur qu'utilise la personne lançant le programme

Pour ce faire tu fais ceci :

Tu vas chercher la lettre du lecteur utilisé en prenant la première du chemin où est enregistré le classeur de la macro via un Left(ActiveWorkbook.Path,1)

ActiveWorkbook.Path ça devrait te renvoyer un truc comme ça : Y:\Documents\UnDossier\Unautredossier\ ...

Le Left(ActiveWorkbook.Path,1) va te donner la première lettre du chemin en partant de la gauche (le 1), ce que je veux dire c'est que tu as juste besoin du Y, le : qui suit, tu t'en fiches, tu as le même dans le nom du fichier.

Quand au mid, il repprend tout le nom du fichier en partant du deuxième caractère, le : du nom du fichier.

En gros tu remplaces le Y de ton nom de fichier par la lettre du lecteur dans lequel est enregistré le classeur contenant ta macro, pas besoin de remplacer le : par un autre : en faisant un Left (,2) et un Mid(,3), c'est simplement ce que je voulais dire

dhany :

Pas bête

Mais je ferais plutôt ça du coup, pas toi?

Mid$(nomf, 1, 1) = Left(ActiveWorkbook.Path,1)
Rechercher des sujets similaires à "enregistrer nom disque different"