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

Xl perd son chemin

6 réponses
Avatar
rthompson
Bonjour et surtout Bonne Année à toutes et tous

Pour une fois, ceci n'est pas une question mais un constat

Ceci dit, je suis certain que nos génies vont trouver une ereur dans mon
code
rien pour pour sauver la face de notre Bilou

Le code ci-dessous fonctionne impecable MERCI A VOUS
Et il peut certainement être amélioré

MAIS
Ce qui se passe est ceci:
Si le code est mis dans un module, il sauve le fichier dans le même
répertoire que l'original
Si le code est mis dans la feuille, il sauve le fichier dans "Mes Documents"

Y a-t-il une raison?

A bientôt

Bonne Année

Rex

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Sub Sauvegarder_Commande()
Application.ScreenUpdating = False


If MsgBox("Sauvegarder la commande? Ceci remet la page à zéro!",
vbYesNo, "OUI") = vbYes Then

Dim rg As Range
On Error Resume Next
With ThisWorkbook
With .Worksheets("Commande")
Sheets("Commande").Cells.Copy
Workbooks.Add
With ActiveSheet
.Paste: .Name = "Commande"
rg.Copy
.Range("A1").PasteSpecial xlPasteAll
.Range("A1").Select
ActiveSheet.Shapes("Button 1").Cut
ActiveSheet.Shapes("Button 2").Cut
Range("F11").Select

Dim strDate As String
Dim MyCell
MyCell = Sheets("Commande").Range("B3").Text
Count = Len(ActiveWorkbook.Name)
Name = (B4)
strDate = Format(Date, "yyyy-mm-dd") & " " & Format(Time, "h-mm")
ActiveWorkbook.SaveAs Filename:=MyCell & " - " & strDate & ".xls",
CreateBackup:=False
End With
End With
End With
Application.DisplayAlerts = False

Sheets("Sheet2").Delete

ActiveWorkbook.Close

Sheets("Commande").Select
Range("A1:K150").Select
Selection.ClearContents
Sheets("Commande").Range("A1:P150").ClearContents
Application.CutCopyMode = False
Range("A1").Select
Sheets("Entree").Select
Cells.Select
Selection.EntireRow.Hidden = False
Range("F13:F137").Select
Selection.ClearContents
ActiveSheet.Shapes("monbox").Select
Selection.Characters.Text = "" & Chr(10) & ""
Range("C1").Select
Application.ScreenUpdating = True
End If
End Sub
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

6 réponses

Avatar
LSteph
Bonjour,

Pour ton code quand tu enregistres le nom du fichier juste avant
utilise comme chemin ThisWorkbook.Path & "" &
ou Chdir Thisworkbook.path puis tu enregistre
et ce sera dans le répertoire du classeur projet.
Sinon idem avec ActiveWorkbook si c'est pour le classeur actif

Pourquoi ca fait comme tu dis: lorsque tu es dans VBA tu dis constater
que c'est le projet qui détermine ce chemin.
Lorsque tu es dans Excel, coté application donc, si tu n'en spécifie
pas C'est le chemin courant d'excel qui sera utilisé.
....
Nota: Hypothese , préalablement tu as ouvert ce fichier en cliquant
depuis windows et non depuis fichier ouvrir
Ca fait quinze ans que je recommande à mes collaborateurs et cinq ans
sur ce forum qu'amha la seule vraie bonne façon d'ouvrir un fichier
Excel c'est depuis le menu Fichier Ouvrir d'Excel!!!
Une des moindres parmi 5 ou 6 bonnes raisons à ce choix:
(Pire si c'est depuis un message , on est dans un rep temp de
LocalsSettings!)
Quand on clique sur un lien depuis l'explorateur ou autre c'est le
chemin par défaut d'excel qu'utilise Windows
pour lancer l'application et charger le fichier (qq soit son chemin
indiqué)
Regarde dans fichier ouvrir t'es sur Mesdocuments ..soit
Documents&settings...utilisateur..)
Quand on ouvre le Fichier depuis Excel on fait parcourir, donc le
répertoire courant d'excel et le fichier concerné sur le même chemin.
Maintenant si tu ouvres d'autres fichiers ce sera certes celui du
dernier ouvert .
....

Indépendament de tout cela dont le comportement peut varier selon les
versions et le systeme,
quand on écris en VBA le plus simple pour savoir où cela va
s'enregistrer c'est de le spécifier dans le code!

Et puis STP Rex depuis le temps que je te le suggère , épure un peu
ce langage à .Select inutiles.


Et bon finish de 2009 si on se revoit pas avant 2010!

AmiCordialement.

--
lSteph



On 31 déc, 11:01, "rthompson"
wrote:
Bonjour et surtout Bonne Année à toutes et tous

Pour une fois, ceci n'est pas une question mais un constat

Ceci dit, je suis certain que nos génies vont trouver une ereur dans mo n
code
rien pour pour sauver la face de notre Bilou

Le code ci-dessous fonctionne impecable MERCI A VOUS
Et il peut certainement être amélioré

MAIS
Ce qui se passe est ceci:
Si le code est mis dans un module, il sauve le fichier dans le même
répertoire que l'original
Si le code est mis dans la feuille, il sauve le fichier dans "Mes Documen ts"

Y a-t-il une raison?

A bientôt

Bonne Année

Rex

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Sub Sauvegarder_Commande()
    Application.ScreenUpdating = False

    If MsgBox("Sauvegarder la commande? Ceci remet la page à zéro !",
vbYesNo, "OUI") = vbYes Then

    Dim rg As Range
         On Error Resume Next
        With ThisWorkbook
            With .Worksheets("Commande")
             Sheets("Commande").Cells.Copy
             Workbooks.Add
               With ActiveSheet
                .Paste: .Name = "Commande"
               rg.Copy
              .Range("A1").PasteSpecial xlPasteAll
              .Range("A1").Select
                  ActiveSheet.Shapes("Button 1").Cut
              ActiveSheet.Shapes("Button 2").Cut
              Range("F11").Select

          Dim strDate As String
          Dim MyCell
          MyCell = Sheets("Commande").Range("B3").Text
          Count = Len(ActiveWorkbook.Name)
          Name = (B4)
          strDate = Format(Date, "yyyy-mm-dd") & " " & Format (Time, "h-mm")
          ActiveWorkbook.SaveAs Filename:=MyCell & " - " & st rDate & ".xls",
CreateBackup:úlse
               End With
            End With
         End With
                      Application.DisplayAlerts = False

             Sheets("Sheet2").Delete

        ActiveWorkbook.Close

    Sheets("Commande").Select
    Range("A1:K150").Select
    Selection.ClearContents
    Sheets("Commande").Range("A1:P150").ClearContents
    Application.CutCopyMode = False
    Range("A1").Select
    Sheets("Entree").Select
    Cells.Select
    Selection.EntireRow.Hidden = False
    Range("F13:F137").Select
    Selection.ClearContents
    ActiveSheet.Shapes("monbox").Select
    Selection.Characters.Text = "" & Chr(10) & ""
    Range("C1").Select
    Application.ScreenUpdating = True
    End If
End Sub
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx


Avatar
Jacky
Bonjour,

Et puis STP Rex depuis le temps que je te le suggère , épure un peu ce
langage à .Select inutiles.


Une bonne résolution pour bien commencer 2010
;o))

--
Meilleurs voux pour 2010
JJ


"LSteph" a écrit dans le message de news:

Bonjour,

Pour ton code quand tu enregistres le nom du fichier juste avant
utilise comme chemin ThisWorkbook.Path & "" &
ou Chdir Thisworkbook.path puis tu enregistre
et ce sera dans le répertoire du classeur projet.
Sinon idem avec ActiveWorkbook si c'est pour le classeur actif

Pourquoi ca fait comme tu dis: lorsque tu es dans VBA tu dis constater
que c'est le projet qui détermine ce chemin.
Lorsque tu es dans Excel, coté application donc, si tu n'en spécifie
pas C'est le chemin courant d'excel qui sera utilisé.
....
Nota: Hypothese , préalablement tu as ouvert ce fichier en cliquant
depuis windows et non depuis fichier ouvrir
Ca fait quinze ans que je recommande à mes collaborateurs et cinq ans
sur ce forum qu'amha la seule vraie bonne façon d'ouvrir un fichier
Excel c'est depuis le menu Fichier Ouvrir d'Excel!!!
Une des moindres parmi 5 ou 6 bonnes raisons à ce choix:
(Pire si c'est depuis un message , on est dans un rep temp de
LocalsSettings!)
Quand on clique sur un lien depuis l'explorateur ou autre c'est le
chemin par défaut d'excel qu'utilise Windows
pour lancer l'application et charger le fichier (qq soit son chemin
indiqué)
Regarde dans fichier ouvrir t'es sur Mesdocuments ..soit
Documents&settings...utilisateur..)
Quand on ouvre le Fichier depuis Excel on fait parcourir, donc le
répertoire courant d'excel et le fichier concerné sur le même chemin.
Maintenant si tu ouvres d'autres fichiers ce sera certes celui du
dernier ouvert .
....

Indépendament de tout cela dont le comportement peut varier selon les
versions et le systeme,
quand on écris en VBA le plus simple pour savoir où cela va
s'enregistrer c'est de le spécifier dans le code!

Et puis STP Rex depuis le temps que je te le suggère , épure un peu
ce langage à .Select inutiles.


Et bon finish de 2009 si on se revoit pas avant 2010!

AmiCordialement.

--
lSteph



On 31 déc, 11:01, "rthompson"
wrote:
Bonjour et surtout Bonne Année à toutes et tous

Pour une fois, ceci n'est pas une question mais un constat

Ceci dit, je suis certain que nos génies vont trouver une ereur dans mon
code
rien pour pour sauver la face de notre Bilou

Le code ci-dessous fonctionne impecable MERCI A VOUS
Et il peut certainement être amélioré

MAIS
Ce qui se passe est ceci:
Si le code est mis dans un module, il sauve le fichier dans le même
répertoire que l'original
Si le code est mis dans la feuille, il sauve le fichier dans "Mes
Documents"

Y a-t-il une raison?

A bientôt

Bonne Année

Rex

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Sub Sauvegarder_Commande()
Application.ScreenUpdating = False

If MsgBox("Sauvegarder la commande? Ceci remet la page à zéro!",
vbYesNo, "OUI") = vbYes Then

Dim rg As Range
On Error Resume Next
With ThisWorkbook
With .Worksheets("Commande")
Sheets("Commande").Cells.Copy
Workbooks.Add
With ActiveSheet
.Paste: .Name = "Commande"
rg.Copy
.Range("A1").PasteSpecial xlPasteAll
.Range("A1").Select
ActiveSheet.Shapes("Button 1").Cut
ActiveSheet.Shapes("Button 2").Cut
Range("F11").Select

Dim strDate As String
Dim MyCell
MyCell = Sheets("Commande").Range("B3").Text
Count = Len(ActiveWorkbook.Name)
Name = (B4)
strDate = Format(Date, "yyyy-mm-dd") & " " & Format(Time, "h-mm")
ActiveWorkbook.SaveAs Filename:=MyCell & " - " & strDate & ".xls",
CreateBackup:úlse
End With
End With
End With
Application.DisplayAlerts = False

Sheets("Sheet2").Delete

ActiveWorkbook.Close

Sheets("Commande").Select
Range("A1:K150").Select
Selection.ClearContents
Sheets("Commande").Range("A1:P150").ClearContents
Application.CutCopyMode = False
Range("A1").Select
Sheets("Entree").Select
Cells.Select
Selection.EntireRow.Hidden = False
Range("F13:F137").Select
Selection.ClearContents
ActiveSheet.Shapes("monbox").Select
Selection.Characters.Text = "" & Chr(10) & ""
Range("C1").Select
Application.ScreenUpdating = True
End If
End Sub
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx


Avatar
rthompson
Bonjour et MERCI

Promis, juré, Croix de bois croix de fer, si je mens j'vais en enfer

Tant que j'y penserai je n'ouvrirais plus jamais un fichier autrement que
par fichier ouvrir

Quoique de temps en temps j'utiliserais File Open


Pour ce qui est de l'épuration étique (By jove quel subtil jeu de mot, my
dear)
je ferais tout mon possible
Mais n'étant pas un spécialiste VBA (ayant en plus des soucis de mémoire)
j'utilise (trop) régulièrement l'enregistreur

Comme je l'ai dis la tout de suite à Garnot
Il y a ici des noms en qui on a une confiance totale quant à leur
commentaires et conseils

Merci et bonne année à toi et au tiens

En ce qui me concerne j'espère qu'elle commencera mieux que celle-ci se
termine
Je viens de prendre livraison de ma nouvelle voiture (cinq mois d'attente)
Elle n'est pas la bonne couleur, il manque des accessoires (retro, vitre
teintés, essuieGlaces )
Elle est 25cm plus courte que prévu
Et en plus après 500 KM je viens de perdre la roue de réserve sur
l'autoroute!!


Enfin

Keep Smiling et à bientôt

Rex

"LSteph" a écrit dans le message de news:

Bonjour,

Pour ton code quand tu enregistres le nom du fichier juste avant
utilise comme chemin ThisWorkbook.Path & "" &
ou Chdir Thisworkbook.path puis tu enregistre
et ce sera dans le répertoire du classeur projet.
Sinon idem avec ActiveWorkbook si c'est pour le classeur actif

Pourquoi ca fait comme tu dis: lorsque tu es dans VBA tu dis constater
que c'est le projet qui détermine ce chemin.
Lorsque tu es dans Excel, coté application donc, si tu n'en spécifie
pas C'est le chemin courant d'excel qui sera utilisé.
....
Nota: Hypothese , préalablement tu as ouvert ce fichier en cliquant
depuis windows et non depuis fichier ouvrir
Ca fait quinze ans que je recommande à mes collaborateurs et cinq ans
sur ce forum qu'amha la seule vraie bonne façon d'ouvrir un fichier
Excel c'est depuis le menu Fichier Ouvrir d'Excel!!!
Une des moindres parmi 5 ou 6 bonnes raisons à ce choix:
(Pire si c'est depuis un message , on est dans un rep temp de
LocalsSettings!)
Quand on clique sur un lien depuis l'explorateur ou autre c'est le
chemin par défaut d'excel qu'utilise Windows
pour lancer l'application et charger le fichier (qq soit son chemin
indiqué)
Regarde dans fichier ouvrir t'es sur Mesdocuments ..soit
Documents&settings...utilisateur..)
Quand on ouvre le Fichier depuis Excel on fait parcourir, donc le
répertoire courant d'excel et le fichier concerné sur le même chemin.
Maintenant si tu ouvres d'autres fichiers ce sera certes celui du
dernier ouvert .
....

Indépendament de tout cela dont le comportement peut varier selon les
versions et le systeme,
quand on écris en VBA le plus simple pour savoir où cela va
s'enregistrer c'est de le spécifier dans le code!

Et puis STP Rex depuis le temps que je te le suggère , épure un peu
ce langage à .Select inutiles.


Et bon finish de 2009 si on se revoit pas avant 2010!

AmiCordialement.

--
lSteph



On 31 déc, 11:01, "rthompson"
wrote:
Bonjour et surtout Bonne Année à toutes et tous

Pour une fois, ceci n'est pas une question mais un constat

Ceci dit, je suis certain que nos génies vont trouver une ereur dans mon
code
rien pour pour sauver la face de notre Bilou

Le code ci-dessous fonctionne impecable MERCI A VOUS
Et il peut certainement être amélioré

MAIS
Ce qui se passe est ceci:
Si le code est mis dans un module, il sauve le fichier dans le même
répertoire que l'original
Si le code est mis dans la feuille, il sauve le fichier dans "Mes
Documents"

Y a-t-il une raison?

A bientôt

Bonne Année

Rex

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Sub Sauvegarder_Commande()
Application.ScreenUpdating = False

If MsgBox("Sauvegarder la commande? Ceci remet la page à zéro!",
vbYesNo, "OUI") = vbYes Then

Dim rg As Range
On Error Resume Next
With ThisWorkbook
With .Worksheets("Commande")
Sheets("Commande").Cells.Copy
Workbooks.Add
With ActiveSheet
.Paste: .Name = "Commande"
rg.Copy
.Range("A1").PasteSpecial xlPasteAll
.Range("A1").Select
ActiveSheet.Shapes("Button 1").Cut
ActiveSheet.Shapes("Button 2").Cut
Range("F11").Select

Dim strDate As String
Dim MyCell
MyCell = Sheets("Commande").Range("B3").Text
Count = Len(ActiveWorkbook.Name)
Name = (B4)
strDate = Format(Date, "yyyy-mm-dd") & " " & Format(Time, "h-mm")
ActiveWorkbook.SaveAs Filename:=MyCell & " - " & strDate & ".xls",
CreateBackup:úlse
End With
End With
End With
Application.DisplayAlerts = False

Sheets("Sheet2").Delete

ActiveWorkbook.Close

Sheets("Commande").Select
Range("A1:K150").Select
Selection.ClearContents
Sheets("Commande").Range("A1:P150").ClearContents
Application.CutCopyMode = False
Range("A1").Select
Sheets("Entree").Select
Cells.Select
Selection.EntireRow.Hidden = False
Range("F13:F137").Select
Selection.ClearContents
ActiveSheet.Shapes("monbox").Select
Selection.Characters.Text = "" & Chr(10) & ""
Range("C1").Select
Application.ScreenUpdating = True
End If
End Sub
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx


Avatar
rthompson
Une bonne résolution ne résouds rien si elle n'est pas mise en application

Et puis, comme on dis chez nous

May your troubles in this new year be as short lived as your New Year
resolutions


Bonne année Jacky

Rex


"Jacky" a écrit dans le message de news:
%
Bonjour,

Et puis STP Rex depuis le temps que je te le suggère , épure un peu ce
langage à .Select inutiles.


Une bonne résolution pour bien commencer 2010
;o))

--
Meilleurs voux pour 2010
JJ


"LSteph" a écrit dans le message de news:

Bonjour,

Pour ton code quand tu enregistres le nom du fichier juste avant
utilise comme chemin ThisWorkbook.Path & "" &
ou Chdir Thisworkbook.path puis tu enregistre
et ce sera dans le répertoire du classeur projet.
Sinon idem avec ActiveWorkbook si c'est pour le classeur actif

Pourquoi ca fait comme tu dis: lorsque tu es dans VBA tu dis constater
que c'est le projet qui détermine ce chemin.
Lorsque tu es dans Excel, coté application donc, si tu n'en spécifie
pas C'est le chemin courant d'excel qui sera utilisé.
....
Nota: Hypothese , préalablement tu as ouvert ce fichier en cliquant
depuis windows et non depuis fichier ouvrir
Ca fait quinze ans que je recommande à mes collaborateurs et cinq ans
sur ce forum qu'amha la seule vraie bonne façon d'ouvrir un fichier
Excel c'est depuis le menu Fichier Ouvrir d'Excel!!!
Une des moindres parmi 5 ou 6 bonnes raisons à ce choix:
(Pire si c'est depuis un message , on est dans un rep temp de
LocalsSettings!)
Quand on clique sur un lien depuis l'explorateur ou autre c'est le
chemin par défaut d'excel qu'utilise Windows
pour lancer l'application et charger le fichier (qq soit son chemin
indiqué)
Regarde dans fichier ouvrir t'es sur Mesdocuments ..soit
Documents&settings...utilisateur..)
Quand on ouvre le Fichier depuis Excel on fait parcourir, donc le
répertoire courant d'excel et le fichier concerné sur le même chemin.
Maintenant si tu ouvres d'autres fichiers ce sera certes celui du
dernier ouvert .
....

Indépendament de tout cela dont le comportement peut varier selon les
versions et le systeme,
quand on écris en VBA le plus simple pour savoir où cela va
s'enregistrer c'est de le spécifier dans le code!

Et puis STP Rex depuis le temps que je te le suggère , épure un peu
ce langage à .Select inutiles.


Et bon finish de 2009 si on se revoit pas avant 2010!

AmiCordialement.

--
lSteph



On 31 déc, 11:01, "rthompson"
wrote:
Bonjour et surtout Bonne Année à toutes et tous

Pour une fois, ceci n'est pas une question mais un constat

Ceci dit, je suis certain que nos génies vont trouver une ereur dans mon
code
rien pour pour sauver la face de notre Bilou

Le code ci-dessous fonctionne impecable MERCI A VOUS
Et il peut certainement être amélioré

MAIS
Ce qui se passe est ceci:
Si le code est mis dans un module, il sauve le fichier dans le même
répertoire que l'original
Si le code est mis dans la feuille, il sauve le fichier dans "Mes
Documents"

Y a-t-il une raison?

A bientôt

Bonne Année

Rex

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Sub Sauvegarder_Commande()
Application.ScreenUpdating = False

If MsgBox("Sauvegarder la commande? Ceci remet la page à zéro!",
vbYesNo, "OUI") = vbYes Then

Dim rg As Range
On Error Resume Next
With ThisWorkbook
With .Worksheets("Commande")
Sheets("Commande").Cells.Copy
Workbooks.Add
With ActiveSheet
.Paste: .Name = "Commande"
rg.Copy
.Range("A1").PasteSpecial xlPasteAll
.Range("A1").Select
ActiveSheet.Shapes("Button 1").Cut
ActiveSheet.Shapes("Button 2").Cut
Range("F11").Select

Dim strDate As String
Dim MyCell
MyCell = Sheets("Commande").Range("B3").Text
Count = Len(ActiveWorkbook.Name)
Name = (B4)
strDate = Format(Date, "yyyy-mm-dd") & " " & Format(Time, "h-mm")
ActiveWorkbook.SaveAs Filename:=MyCell & " - " & strDate & ".xls",
CreateBackup:úlse
End With
End With
End With
Application.DisplayAlerts = False

Sheets("Sheet2").Delete

ActiveWorkbook.Close

Sheets("Commande").Select
Range("A1:K150").Select
Selection.ClearContents
Sheets("Commande").Range("A1:P150").ClearContents
Application.CutCopyMode = False
Range("A1").Select
Sheets("Entree").Select
Cells.Select
Selection.EntireRow.Hidden = False
Range("F13:F137").Select
Selection.ClearContents
ActiveSheet.Shapes("monbox").Select
Selection.Characters.Text = "" & Chr(10) & ""
Range("C1").Select
Application.ScreenUpdating = True
End If
End Sub
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx






Avatar
Jacky
Re..
Une bonne résolution ne résouds rien si elle n'est pas mise en application



La bonne résolution serait justement de la mettre en application.
;o))
--
e glëckliches nëies
JJ


"rthompson" a écrit dans le message de
news: O%

Une bonne résolution ne résouds rien si elle n'est pas mise en application

Et puis, comme on dis chez nous

May your troubles in this new year be as short lived as your New Year
resolutions


Bonne année Jacky

Rex


"Jacky" a écrit dans le message de news:
%
Bonjour,

Et puis STP Rex depuis le temps que je te le suggère , épure un peu ce
langage à .Select inutiles.


Une bonne résolution pour bien commencer 2010
;o))

--
Meilleurs voux pour 2010
JJ


"LSteph" a écrit dans le message de news:

Bonjour,

Pour ton code quand tu enregistres le nom du fichier juste avant
utilise comme chemin ThisWorkbook.Path & "" &
ou Chdir Thisworkbook.path puis tu enregistre
et ce sera dans le répertoire du classeur projet.
Sinon idem avec ActiveWorkbook si c'est pour le classeur actif

Pourquoi ca fait comme tu dis: lorsque tu es dans VBA tu dis constater
que c'est le projet qui détermine ce chemin.
Lorsque tu es dans Excel, coté application donc, si tu n'en spécifie
pas C'est le chemin courant d'excel qui sera utilisé.
....
Nota: Hypothese , préalablement tu as ouvert ce fichier en cliquant
depuis windows et non depuis fichier ouvrir
Ca fait quinze ans que je recommande à mes collaborateurs et cinq ans
sur ce forum qu'amha la seule vraie bonne façon d'ouvrir un fichier
Excel c'est depuis le menu Fichier Ouvrir d'Excel!!!
Une des moindres parmi 5 ou 6 bonnes raisons à ce choix:
(Pire si c'est depuis un message , on est dans un rep temp de
LocalsSettings!)
Quand on clique sur un lien depuis l'explorateur ou autre c'est le
chemin par défaut d'excel qu'utilise Windows
pour lancer l'application et charger le fichier (qq soit son chemin
indiqué)
Regarde dans fichier ouvrir t'es sur Mesdocuments ..soit
Documents&settings...utilisateur..)
Quand on ouvre le Fichier depuis Excel on fait parcourir, donc le
répertoire courant d'excel et le fichier concerné sur le même chemin.
Maintenant si tu ouvres d'autres fichiers ce sera certes celui du
dernier ouvert .
....

Indépendament de tout cela dont le comportement peut varier selon les
versions et le systeme,
quand on écris en VBA le plus simple pour savoir où cela va
s'enregistrer c'est de le spécifier dans le code!

Et puis STP Rex depuis le temps que je te le suggère , épure un peu
ce langage à .Select inutiles.


Et bon finish de 2009 si on se revoit pas avant 2010!

AmiCordialement.

--
lSteph



On 31 déc, 11:01, "rthompson"
wrote:
Bonjour et surtout Bonne Année à toutes et tous

Pour une fois, ceci n'est pas une question mais un constat

Ceci dit, je suis certain que nos génies vont trouver une ereur dans mon
code
rien pour pour sauver la face de notre Bilou

Le code ci-dessous fonctionne impecable MERCI A VOUS
Et il peut certainement être amélioré

MAIS
Ce qui se passe est ceci:
Si le code est mis dans un module, il sauve le fichier dans le même
répertoire que l'original
Si le code est mis dans la feuille, il sauve le fichier dans "Mes
Documents"

Y a-t-il une raison?

A bientôt

Bonne Année

Rex

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Sub Sauvegarder_Commande()
Application.ScreenUpdating = False

If MsgBox("Sauvegarder la commande? Ceci remet la page à zéro!",
vbYesNo, "OUI") = vbYes Then

Dim rg As Range
On Error Resume Next
With ThisWorkbook
With .Worksheets("Commande")
Sheets("Commande").Cells.Copy
Workbooks.Add
With ActiveSheet
.Paste: .Name = "Commande"
rg.Copy
.Range("A1").PasteSpecial xlPasteAll
.Range("A1").Select
ActiveSheet.Shapes("Button 1").Cut
ActiveSheet.Shapes("Button 2").Cut
Range("F11").Select

Dim strDate As String
Dim MyCell
MyCell = Sheets("Commande").Range("B3").Text
Count = Len(ActiveWorkbook.Name)
Name = (B4)
strDate = Format(Date, "yyyy-mm-dd") & " " & Format(Time, "h-mm")
ActiveWorkbook.SaveAs Filename:=MyCell & " - " & strDate & ".xls",
CreateBackup:úlse
End With
End With
End With
Application.DisplayAlerts = False

Sheets("Sheet2").Delete

ActiveWorkbook.Close

Sheets("Commande").Select
Range("A1:K150").Select
Selection.ClearContents
Sheets("Commande").Range("A1:P150").ClearContents
Application.CutCopyMode = False
Range("A1").Select
Sheets("Entree").Select
Cells.Select
Selection.EntireRow.Hidden = False
Range("F13:F137").Select
Selection.ClearContents
ActiveSheet.Shapes("monbox").Select
Selection.Characters.Text = "" & Chr(10) & ""
Range("C1").Select
Application.ScreenUpdating = True
End If
End Sub
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx










Avatar
FS
Bonjour,

> Quand on clique sur un lien depuis l'explorateur ou autre c'est le
> chemin par défaut d'excel qu'utilise Windows
> pour lancer l'application et charger le fichier (qq soit son chemin
> indiqué)
> Regarde dans fichier ouvrir t'es sur Mesdocuments ..soit
> Documents&settings...utilisateur..)

C'est tout à fait vrai mais il ne faut pas oublier que ce chemin par
défaut (Mes Documents) n'est pas une fatalité ! C'est ce que Bilou a
décidé pour une installation par défaut d'Excel mais tu peux depuis
longtemps paramétrer le répertoire par défaut de ton choix (dans Excel
2003 : OutilsOptions onglet Général et tu mets ce que tu veux dans
'Dossier par défaut').

> Une des moindres parmi 5 ou 6 bonnes raisons à ce choix

J'avoue que tu piques ma curiosité. Tu peux détailler un peu ?

FS
--
Frédéric SIGONNEAU
Modules et modèles pour Excel :
http://frederic.sigonneau.free.fr/

LSteph a écrit :
Bonjour,

Pour ton code quand tu enregistres le nom du fichier juste avant
utilise comme chemin ThisWorkbook.Path & "" &
ou Chdir Thisworkbook.path puis tu enregistre
et ce sera dans le répertoire du classeur projet.
Sinon idem avec ActiveWorkbook si c'est pour le classeur actif

Pourquoi ca fait comme tu dis: lorsque tu es dans VBA tu dis constater
que c'est le projet qui détermine ce chemin.
Lorsque tu es dans Excel, coté application donc, si tu n'en spécifie
pas C'est le chemin courant d'excel qui sera utilisé.
.....
Nota: Hypothese , préalablement tu as ouvert ce fichier en cliquant
depuis windows et non depuis fichier ouvrir
Ca fait quinze ans que je recommande à mes collaborateurs et cinq ans
sur ce forum qu'amha la seule vraie bonne façon d'ouvrir un fichier
Excel c'est depuis le menu Fichier Ouvrir d'Excel!!!
Une des moindres parmi 5 ou 6 bonnes raisons à ce choix:
(Pire si c'est depuis un message , on est dans un rep temp de
LocalsSettings!)
Quand on clique sur un lien depuis l'explorateur ou autre c'est le
chemin par défaut d'excel qu'utilise Windows
pour lancer l'application et charger le fichier (qq soit son chemin
indiqué)
Regarde dans fichier ouvrir t'es sur Mesdocuments ..soit
Documents&settings...utilisateur..)
Quand on ouvre le Fichier depuis Excel on fait parcourir, donc le
répertoire courant d'excel et le fichier concerné sur le même chemin.
Maintenant si tu ouvres d'autres fichiers ce sera certes celui du
dernier ouvert .
.....

Indépendament de tout cela dont le comportement peut varier selon les
versions et le systeme,
quand on écris en VBA le plus simple pour savoir où cela va
s'enregistrer c'est de le spécifier dans le code!

Et puis STP Rex depuis le temps que je te le suggère , épure un peu
ce langage à .Select inutiles.


Et bon finish de 2009 si on se revoit pas avant 2010!

AmiCordialement.

--
lSteph



On 31 déc, 11:01, "rthompson"
wrote:
Bonjour et surtout Bonne Année à toutes et tous

Pour une fois, ceci n'est pas une question mais un constat

Ceci dit, je suis certain que nos génies vont trouver une ereur dans mon
code
rien pour pour sauver la face de notre Bilou

Le code ci-dessous fonctionne impecable MERCI A VOUS
Et il peut certainement être amélioré

MAIS
Ce qui se passe est ceci:
Si le code est mis dans un module, il sauve le fichier dans le même
répertoire que l'original
Si le code est mis dans la feuille, il sauve le fichier dans "Mes Documents"

Y a-t-il une raison?

A bientôt

Bonne Année

Rex

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Sub Sauvegarder_Commande()
Application.ScreenUpdating = False

If MsgBox("Sauvegarder la commande? Ceci remet la page à zéro!",
vbYesNo, "OUI") = vbYes Then

Dim rg As Range
On Error Resume Next
With ThisWorkbook
With .Worksheets("Commande")
Sheets("Commande").Cells.Copy
Workbooks.Add
With ActiveSheet
.Paste: .Name = "Commande"
rg.Copy
.Range("A1").PasteSpecial xlPasteAll
.Range("A1").Select
ActiveSheet.Shapes("Button 1").Cut
ActiveSheet.Shapes("Button 2").Cut
Range("F11").Select

Dim strDate As String
Dim MyCell
MyCell = Sheets("Commande").Range("B3").Text
Count = Len(ActiveWorkbook.Name)
Name = (B4)
strDate = Format(Date, "yyyy-mm-dd") & " " & Format(Time, "h-mm")
ActiveWorkbook.SaveAs Filename:=MyCell & " - " & strDate & ".xls",
CreateBackup:úlse
End With
End With
End With
Application.DisplayAlerts = False

Sheets("Sheet2").Delete

ActiveWorkbook.Close

Sheets("Commande").Select
Range("A1:K150").Select
Selection.ClearContents
Sheets("Commande").Range("A1:P150").ClearContents
Application.CutCopyMode = False
Range("A1").Select
Sheets("Entree").Select
Cells.Select
Selection.EntireRow.Hidden = False
Range("F13:F137").Select
Selection.ClearContents
ActiveSheet.Shapes("monbox").Select
Selection.Characters.Text = "" & Chr(10) & ""
Range("C1").Select
Application.ScreenUpdating = True
End If
End Sub
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx