Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Enregistrer sous...dans le même répertoire

6 réponses
Avatar
ManBas
Bonsoir,



Je reprends un fil d'hier, dans lequel JB et MichDenis m'ont fourni la
solution efficace.

Efficace dans un classeur...

Hélas, ce soir sur un autre classeur, la même solution ne fonctionne pas.



Dim NomClasseur As String

NomClasseur = Range("feuil1!a1").Value

'sauve dans le même répertoire que l'actuel fichier de démarrage

Chdir ActiveWorkBook.Path

With ActiveWorkbook

.SaveAs .Path & NomClasseur

End With

Application.Dialogs(xlDialogSendMail).Show , "Feuille " &
Range("FEUIL1!a1").Value



Le résultat:

- le classeur est envoyé en s'appelant Bureau (!) suivi de la valeur de A1
(la valeur de A1 me suffirait!). Le fichier de départ se trouve (pour
l'instant) sur le bureau.

- le classeur est enregistré dans Documents And Settings (ce qui n'est pas
l'emplacement de départ du fichier de la macro).



J'ai tout essayé (avec ou sans ThisWorkbook).

Pouvez-vous me fournir la solution pour que:

- le classeur envoyé se nomme seulement avec la valeur de A1,

- le classeur s'enregistre réellement dans le répertoire d'origine



Merci infiniment pour votre aide.

6 réponses

Avatar
michdenis
Bonjour ManBas,

Pour enregistrer sur le bureau dans windows xp pro, le chemin est :

C:Documents and SettingsDenisBureau

Est-ce que l'origine de ton classeur sur le bureau est un raccourci d'un fichier situé ailleurs ?
Si c'est un raccourci, ActiveWorkBook.Path va retourner le chemin où réellement situé le fichier et non le raccourci


IL va falloir que tu précises ta demande !


Salutations!




"ManBas" a écrit dans le message de news: Or6zBhR%
Bonsoir,



Je reprends un fil d'hier, dans lequel JB et MichDenis m'ont fourni la
solution efficace.

Efficace dans un classeur...

Hélas, ce soir sur un autre classeur, la même solution ne fonctionne pas.



Dim NomClasseur As String

NomClasseur = Range("feuil1!a1").Value

'sauve dans le même répertoire que l'actuel fichier de démarrage

Chdir ActiveWorkBook.Path

With ActiveWorkbook

.SaveAs .Path & NomClasseur

End With

Application.Dialogs(xlDialogSendMail).Show , "Feuille " &
Range("FEUIL1!a1").Value



Le résultat:

- le classeur est envoyé en s'appelant Bureau (!) suivi de la valeur de A1
(la valeur de A1 me suffirait!). Le fichier de départ se trouve (pour
l'instant) sur le bureau.

- le classeur est enregistré dans Documents And Settings (ce qui n'est pas
l'emplacement de départ du fichier de la macro).



J'ai tout essayé (avec ou sans ThisWorkbook).

Pouvez-vous me fournir la solution pour que:

- le classeur envoyé se nomme seulement avec la valeur de A1,

- le classeur s'enregistre réellement dans le répertoire d'origine



Merci infiniment pour votre aide.
Avatar
ManBas
Bonsoir MichDenis,
Le classeur d'où part la macro se trouve sur le bureau, parce que c'est le
plus simple.
Pas de raccourci du tout dans l'histoire.
Je mets au point l'application chez moi (Windows XP) mais elle fonctionne au
quotidien dans un réseau en NT2000. Dans ce réseau le fichier est
habituellement téléchargé (par défaut) sur le bureau à partir d'un intranet.


"michdenis" a écrit dans le message de news:
%23W8sjoR%
Bonjour ManBas,

Pour enregistrer sur le bureau dans windows xp pro, le chemin est :

C:Documents and SettingsDenisBureau

Est-ce que l'origine de ton classeur sur le bureau est un raccourci d'un
fichier situé ailleurs ?
Si c'est un raccourci, ActiveWorkBook.Path va retourner le chemin où
réellement situé le fichier et non le raccourci


IL va falloir que tu précises ta demande !


Salutations!




"ManBas" a écrit dans le message de news:
Or6zBhR%
Bonsoir,



Je reprends un fil d'hier, dans lequel JB et MichDenis m'ont fourni la
solution efficace.

Efficace dans un classeur...

Hélas, ce soir sur un autre classeur, la même solution ne fonctionne pas.



Dim NomClasseur As String

NomClasseur = Range("feuil1!a1").Value

'sauve dans le même répertoire que l'actuel fichier de démarrage

Chdir ActiveWorkBook.Path

With ActiveWorkbook

.SaveAs .Path & NomClasseur

End With

Application.Dialogs(xlDialogSendMail).Show , "Feuille " &
Range("FEUIL1!a1").Value



Le résultat:

- le classeur est envoyé en s'appelant Bureau (!) suivi de la valeur de A1
(la valeur de A1 me suffirait!). Le fichier de départ se trouve (pour
l'instant) sur le bureau.

- le classeur est enregistré dans Documents And Settings (ce qui n'est pas
l'emplacement de départ du fichier de la macro).



J'ai tout essayé (avec ou sans ThisWorkbook).

Pouvez-vous me fournir la solution pour que:

- le classeur envoyé se nomme seulement avec la valeur de A1,

- le classeur s'enregistre réellement dans le répertoire d'origine



Merci infiniment pour votre aide.





Avatar
michdenis
Il fallait le dire toute suite que ton problème en était un de réseau !

Ceci fut proposé par Laurent Longre.

Dans le haut d'un module standard, tu places ceci :
'--------------------------------
Private Declare Function SetCurrentDirectoryA Lib _
"kernel32" (ByVal lpPathName As String) As Long

Sub ChDirNet(szPath As String)
'collectif, d'après Laurent Longre, mpep
Dim lReturn As Long
lReturn = SetCurrentDirectoryA(szPath)
If lReturn = 0 Then Err.Raise vbObjectError + 1, "Error setting path."
End Sub
'--------------------------------


Voici comment t'y prendre pour modifier le lecteur lorsque tu
te retrouves sur un réseau

Tu remplaces ceci "LOGD0FILESOGILVTWDocsTemp"
par ton truc à toi - réseaul


On Error GoTo ErrHandler
ChDirNet "LOGD0FILESOGILVTWDocsTemp"
'le reste de ton code ....

Exit Sub
ErrHandler:
MsgBox "Chemin pas trouvé."


Salutations!



"ManBas" a écrit dans le message de news: uQwmptR%
Bonsoir MichDenis,
Le classeur d'où part la macro se trouve sur le bureau, parce que c'est le
plus simple.
Pas de raccourci du tout dans l'histoire.
Je mets au point l'application chez moi (Windows XP) mais elle fonctionne au
quotidien dans un réseau en NT2000. Dans ce réseau le fichier est
habituellement téléchargé (par défaut) sur le bureau à partir d'un intranet.


"michdenis" a écrit dans le message de news:
%23W8sjoR%
Bonjour ManBas,

Pour enregistrer sur le bureau dans windows xp pro, le chemin est :

C:Documents and SettingsDenisBureau

Est-ce que l'origine de ton classeur sur le bureau est un raccourci d'un
fichier situé ailleurs ?
Si c'est un raccourci, ActiveWorkBook.Path va retourner le chemin où
réellement situé le fichier et non le raccourci


IL va falloir que tu précises ta demande !


Salutations!




"ManBas" a écrit dans le message de news:
Or6zBhR%
Bonsoir,



Je reprends un fil d'hier, dans lequel JB et MichDenis m'ont fourni la
solution efficace.

Efficace dans un classeur...

Hélas, ce soir sur un autre classeur, la même solution ne fonctionne pas.



Dim NomClasseur As String

NomClasseur = Range("feuil1!a1").Value

'sauve dans le même répertoire que l'actuel fichier de démarrage

Chdir ActiveWorkBook.Path

With ActiveWorkbook

.SaveAs .Path & NomClasseur

End With

Application.Dialogs(xlDialogSendMail).Show , "Feuille " &
Range("FEUIL1!a1").Value



Le résultat:

- le classeur est envoyé en s'appelant Bureau (!) suivi de la valeur de A1
(la valeur de A1 me suffirait!). Le fichier de départ se trouve (pour
l'instant) sur le bureau.

- le classeur est enregistré dans Documents And Settings (ce qui n'est pas
l'emplacement de départ du fichier de la macro).



J'ai tout essayé (avec ou sans ThisWorkbook).

Pouvez-vous me fournir la solution pour que:

- le classeur envoyé se nomme seulement avec la valeur de A1,

- le classeur s'enregistre réellement dans le répertoire d'origine



Merci infiniment pour votre aide.





Avatar
ManBas
Merci de ton aide Michel.
Mais en ce moment je ne suis pas sur le réseau: je suis chez moi sur WinXP.
"En général" lorsque ça fonctionne ici, ça fonctionne là-bas aussi...


"michdenis" a écrit dans le message de news:
ejQ8azR%
Il fallait le dire toute suite que ton problème en était un de réseau !

Ceci fut proposé par Laurent Longre.

Dans le haut d'un module standard, tu places ceci :
'--------------------------------
Private Declare Function SetCurrentDirectoryA Lib _
"kernel32" (ByVal lpPathName As String) As Long

Sub ChDirNet(szPath As String)
'collectif, d'après Laurent Longre, mpep
Dim lReturn As Long
lReturn = SetCurrentDirectoryA(szPath)
If lReturn = 0 Then Err.Raise vbObjectError + 1, "Error setting path."
End Sub
'--------------------------------


Voici comment t'y prendre pour modifier le lecteur lorsque tu
te retrouves sur un réseau

Tu remplaces ceci "LOGD0FILESOGILVTWDocsTemp"
par ton truc à toi - réseaul


On Error GoTo ErrHandler
ChDirNet "LOGD0FILESOGILVTWDocsTemp"
'le reste de ton code ....

Exit Sub
ErrHandler:
MsgBox "Chemin pas trouvé."


Salutations!



"ManBas" a écrit dans le message de news:
uQwmptR%
Bonsoir MichDenis,
Le classeur d'où part la macro se trouve sur le bureau, parce que c'est le
plus simple.
Pas de raccourci du tout dans l'histoire.
Je mets au point l'application chez moi (Windows XP) mais elle fonctionne
au
quotidien dans un réseau en NT2000. Dans ce réseau le fichier est
habituellement téléchargé (par défaut) sur le bureau à partir d'un
intranet.


"michdenis" a écrit dans le message de news:
%23W8sjoR%
Bonjour ManBas,

Pour enregistrer sur le bureau dans windows xp pro, le chemin est :

C:Documents and SettingsDenisBureau

Est-ce que l'origine de ton classeur sur le bureau est un raccourci d'un
fichier situé ailleurs ?
Si c'est un raccourci, ActiveWorkBook.Path va retourner le chemin où
réellement situé le fichier et non le raccourci


IL va falloir que tu précises ta demande !


Salutations!




"ManBas" a écrit dans le message de news:
Or6zBhR%
Bonsoir,



Je reprends un fil d'hier, dans lequel JB et MichDenis m'ont fourni la
solution efficace.

Efficace dans un classeur...

Hélas, ce soir sur un autre classeur, la même solution ne fonctionne pas.



Dim NomClasseur As String

NomClasseur = Range("feuil1!a1").Value

'sauve dans le même répertoire que l'actuel fichier de démarrage

Chdir ActiveWorkBook.Path

With ActiveWorkbook

.SaveAs .Path & NomClasseur

End With

Application.Dialogs(xlDialogSendMail).Show , "Feuille " &
Range("FEUIL1!a1").Value



Le résultat:

- le classeur est envoyé en s'appelant Bureau (!) suivi de la valeur de
A1
(la valeur de A1 me suffirait!). Le fichier de départ se trouve (pour
l'instant) sur le bureau.

- le classeur est enregistré dans Documents And Settings (ce qui n'est
pas
l'emplacement de départ du fichier de la macro).



J'ai tout essayé (avec ou sans ThisWorkbook).

Pouvez-vous me fournir la solution pour que:

- le classeur envoyé se nomme seulement avec la valeur de A1,

- le classeur s'enregistre réellement dans le répertoire d'origine



Merci infiniment pour votre aide.










Avatar
michdenis
Bonjour ManBas,

Si tu es chez toi,

ThisWorkbook.Path devrait retourner ceci si ton fichier est sur le bureau
C:Documents and SettingsDenisBureau

Mais au bureau, si tu es en réseau, et que tu veuilles modifier le lecteur réseau,
au lieu d'utiliser ChDir "D:" , pour passer du lecteur C à D, tu dois utiliser
la procédure de Laurent Longre du message précédent.

Si il y a autre chose, je ne comprends pas ta demande!


Salutations!


"ManBas" a écrit dans le message de news: uv33H3R%
Merci de ton aide Michel.
Mais en ce moment je ne suis pas sur le réseau: je suis chez moi sur WinXP.
"En général" lorsque ça fonctionne ici, ça fonctionne là-bas aussi...


"michdenis" a écrit dans le message de news:
ejQ8azR%
Il fallait le dire toute suite que ton problème en était un de réseau !

Ceci fut proposé par Laurent Longre.

Dans le haut d'un module standard, tu places ceci :
'--------------------------------
Private Declare Function SetCurrentDirectoryA Lib _
"kernel32" (ByVal lpPathName As String) As Long

Sub ChDirNet(szPath As String)
'collectif, d'après Laurent Longre, mpep
Dim lReturn As Long
lReturn = SetCurrentDirectoryA(szPath)
If lReturn = 0 Then Err.Raise vbObjectError + 1, "Error setting path."
End Sub
'--------------------------------


Voici comment t'y prendre pour modifier le lecteur lorsque tu
te retrouves sur un réseau

Tu remplaces ceci "LOGD0FILESOGILVTWDocsTemp"
par ton truc à toi - réseaul


On Error GoTo ErrHandler
ChDirNet "LOGD0FILESOGILVTWDocsTemp"
'le reste de ton code ....

Exit Sub
ErrHandler:
MsgBox "Chemin pas trouvé."


Salutations!



"ManBas" a écrit dans le message de news:
uQwmptR%
Bonsoir MichDenis,
Le classeur d'où part la macro se trouve sur le bureau, parce que c'est le
plus simple.
Pas de raccourci du tout dans l'histoire.
Je mets au point l'application chez moi (Windows XP) mais elle fonctionne
au
quotidien dans un réseau en NT2000. Dans ce réseau le fichier est
habituellement téléchargé (par défaut) sur le bureau à partir d'un
intranet.


"michdenis" a écrit dans le message de news:
%23W8sjoR%
Bonjour ManBas,

Pour enregistrer sur le bureau dans windows xp pro, le chemin est :

C:Documents and SettingsDenisBureau

Est-ce que l'origine de ton classeur sur le bureau est un raccourci d'un
fichier situé ailleurs ?
Si c'est un raccourci, ActiveWorkBook.Path va retourner le chemin où
réellement situé le fichier et non le raccourci


IL va falloir que tu précises ta demande !


Salutations!




"ManBas" a écrit dans le message de news:
Or6zBhR%
Bonsoir,



Je reprends un fil d'hier, dans lequel JB et MichDenis m'ont fourni la
solution efficace.

Efficace dans un classeur...

Hélas, ce soir sur un autre classeur, la même solution ne fonctionne pas.



Dim NomClasseur As String

NomClasseur = Range("feuil1!a1").Value

'sauve dans le même répertoire que l'actuel fichier de démarrage

Chdir ActiveWorkBook.Path

With ActiveWorkbook

.SaveAs .Path & NomClasseur

End With

Application.Dialogs(xlDialogSendMail).Show , "Feuille " &
Range("FEUIL1!a1").Value



Le résultat:

- le classeur est envoyé en s'appelant Bureau (!) suivi de la valeur de
A1
(la valeur de A1 me suffirait!). Le fichier de départ se trouve (pour
l'instant) sur le bureau.

- le classeur est enregistré dans Documents And Settings (ce qui n'est
pas
l'emplacement de départ du fichier de la macro).



J'ai tout essayé (avec ou sans ThisWorkbook).

Pouvez-vous me fournir la solution pour que:

- le classeur envoyé se nomme seulement avec la valeur de A1,

- le classeur s'enregistre réellement dans le répertoire d'origine



Merci infiniment pour votre aide.










Avatar
ManBas
ThisWorkbook .Path renvoie le nouveau classeur dans Documents And Settings.
Peut-être parce que l'enregistrement se fait avant l'envoi par mail?
Car dans un autre classeur (sans envoi), avec ce code, l'enregistrement se
fait effectivement dans le même répertoire que le fichier d'origine.

Bon ben tant pis.

Mille merci +++ pour tout.

A bientôt.

"michdenis" a écrit dans le message de news:
u0GTzCS%
Bonjour ManBas,

Si tu es chez toi,

ThisWorkbook.Path devrait retourner ceci si ton fichier est sur le bureau
C:Documents and SettingsDenisBureau

Mais au bureau, si tu es en réseau, et que tu veuilles modifier le lecteur
réseau,
au lieu d'utiliser ChDir "D:" , pour passer du lecteur C à D, tu dois
utiliser
la procédure de Laurent Longre du message précédent.

Si il y a autre chose, je ne comprends pas ta demande!


Salutations!


"ManBas" a écrit dans le message de news:
uv33H3R%
Merci de ton aide Michel.
Mais en ce moment je ne suis pas sur le réseau: je suis chez moi sur
WinXP.
"En général" lorsque ça fonctionne ici, ça fonctionne là-bas aussi...


"michdenis" a écrit dans le message de news:
ejQ8azR%
Il fallait le dire toute suite que ton problème en était un de réseau !

Ceci fut proposé par Laurent Longre.

Dans le haut d'un module standard, tu places ceci :
'--------------------------------
Private Declare Function SetCurrentDirectoryA Lib _
"kernel32" (ByVal lpPathName As String) As Long

Sub ChDirNet(szPath As String)
'collectif, d'après Laurent Longre, mpep
Dim lReturn As Long
lReturn = SetCurrentDirectoryA(szPath)
If lReturn = 0 Then Err.Raise vbObjectError + 1, "Error setting path."
End Sub
'--------------------------------


Voici comment t'y prendre pour modifier le lecteur lorsque tu
te retrouves sur un réseau

Tu remplaces ceci "LOGD0FILESOGILVTWDocsTemp"
par ton truc à toi - réseaul


On Error GoTo ErrHandler
ChDirNet "LOGD0FILESOGILVTWDocsTemp"
'le reste de ton code ....

Exit Sub
ErrHandler:
MsgBox "Chemin pas trouvé."


Salutations!



"ManBas" a écrit dans le message de news:
uQwmptR%
Bonsoir MichDenis,
Le classeur d'où part la macro se trouve sur le bureau, parce que c'est
le
plus simple.
Pas de raccourci du tout dans l'histoire.
Je mets au point l'application chez moi (Windows XP) mais elle fonctionne
au
quotidien dans un réseau en NT2000. Dans ce réseau le fichier est
habituellement téléchargé (par défaut) sur le bureau à partir d'un
intranet.


"michdenis" a écrit dans le message de news:
%23W8sjoR%
Bonjour ManBas,

Pour enregistrer sur le bureau dans windows xp pro, le chemin est :

C:Documents and SettingsDenisBureau

Est-ce que l'origine de ton classeur sur le bureau est un raccourci d'un
fichier situé ailleurs ?
Si c'est un raccourci, ActiveWorkBook.Path va retourner le chemin où
réellement situé le fichier et non le raccourci


IL va falloir que tu précises ta demande !


Salutations!




"ManBas" a écrit dans le message de news:
Or6zBhR%
Bonsoir,



Je reprends un fil d'hier, dans lequel JB et MichDenis m'ont fourni la
solution efficace.

Efficace dans un classeur...

Hélas, ce soir sur un autre classeur, la même solution ne fonctionne
pas.



Dim NomClasseur As String

NomClasseur = Range("feuil1!a1").Value

'sauve dans le même répertoire que l'actuel fichier de démarrage

Chdir ActiveWorkBook.Path

With ActiveWorkbook

.SaveAs .Path & NomClasseur

End With

Application.Dialogs(xlDialogSendMail).Show , "Feuille " &
Range("FEUIL1!a1").Value



Le résultat:

- le classeur est envoyé en s'appelant Bureau (!) suivi de la valeur de
A1
(la valeur de A1 me suffirait!). Le fichier de départ se trouve (pour
l'instant) sur le bureau.

- le classeur est enregistré dans Documents And Settings (ce qui n'est
pas
l'emplacement de départ du fichier de la macro).



J'ai tout essayé (avec ou sans ThisWorkbook).

Pouvez-vous me fournir la solution pour que:

- le classeur envoyé se nomme seulement avec la valeur de A1,

- le classeur s'enregistre réellement dans le répertoire d'origine



Merci infiniment pour votre aide.