OVH Cloud OVH Cloud

ActiveWorkbook.SaveAs filename

15 réponses
Avatar
Daniel
re bonjour et pardon d'abuser de ce forum!

Voilà mon souci! C'est la fonction ActiveWorkbook.SaveAs filename:= _
!!

Le problème est le message d'erreur suivant :
"La méthode 'range de l'objet'-global à échoué" !!!!
Je pense savoir pourquoi !!! J'explique :

J'ai un classeur principal que j'appele pour l'exemple "CX". Ma macro à pour
action de copier sur un nouveaux classeur (qui par défault s'appel
"classeur1") une feuille et d''enregistrer ce nouveau classeur dans un
répertoire! C'est ici qu'intervien le code suivant :

ActiveWorkbook.SaveAs filename:= _
Range("LIEN!B35") & ActiveSheet.Name & ".xls"

Dans cette cellule B35 du classeur X ce trouve le chemin d'accès vers le
répertoire ou doit être sauver le classeur1!

Mais le message d'erreur cité ci dessus n'est pas d'accord pour me
l'enregistrer!

Mon autodiagnostique :
Ce n'est pas un problème du au chemin d'accès. En effet j'ai tester ce code
sur mon classeur X et il s'enregistre bien là ou je veux! Pour moi c'est
parcequ'Excel ne parvient pas à retourné chercher cette cellule B35 dans mon
classeur X! Je pense que le bon code serai quelque chose du genre :

ActiveWorkbook.SaveAs filename:= _
Range("X.xls!LIEN!B35") & ActiveSheet.Name & ".xls"
où X.xls apparaitrait!!!!

Voilà, mon diagnostic est peut être faux dopnc je m'en remet à votre savoir
car le mien est en pleine apprentissage depuis que j'ai connu ce forum!!!

Merci beaucoup

5 réponses

1 2
Avatar
Daniel
Au fait si tu veut vraiment voir à quoi ça ressemble je t'envoi quand même le
fichié!!


.... Tu n'as pas répondu
Si tu utilises toujours la cellule B35
et toujours la même feuille du même classeur
Activesheet.name ...toujours le même nom!!???

Mets ton fichier là
http://cjoint.com
et donne le lien

lSteph

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

Je t'explique !
Sur mon classeur X j'ai sur une feuille 5 tableaux (TCD) !
La macro à pour action de copier les tableaux et de les coller dans les
bon
répertoires!

Donc elle fait 5 fois l'opération suivante :
- copie la feuille "rapport" du classeur "X" dans un nouveau classeur
- supprime dans ce nouveau classeur les colonnes inutiles
- enregistre dans le bon répertoire le nouveau classeur!

D'où l'utlisation de la macro pour sauvegarder dans le bon répertoire!
Avant le code était:
ActiveWorkbook.SaveAs filename:= _
"C:Documents and SettingsTISBABureauapplicationETIQUETTESRESULTAT" &
ActiveSheet.Name & ".xls"

et ça marchait! mais pour avoir un classeur qui s'adapte au répertoire
dans
lequel il est installé, j'ai voulut préparé les bon chemins d'accès dans
la
feuille "LIEN" du classeur "X"!
Voilà! J'aurai peut être du commencer par ça !! En espérant que ça
puisse

t'aider à comprendre ma problématique!!!




Tu veux écraser 5 fois le même fichier ou il sont différents ?
Sinon tu dois déjà fermer le premier en ajoutant ceci:
Activeworkbook.close

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

Ca y est ! avec ta façon ça marche ! Mais le problème c'est que ça
marche
qu'une seule fois! Car j'avais dans la même macro, 5 fois la même
opératiçon!!!!

Sinon vraiment pas possible de cette manière en ajoutant juste dans le
code
le nom du classeur qui contient la feuille lien et ça cellule B35 ???:
ActiveWorkbook.SaveAs filename:= _
Range("LIEN!B35") & ActiveSheet.Name & ".xls"

Dans tous les cas, ton aide à été béton!!! merci énormément



Le lien est bon! je reprend !

Le classeur principal est nommée X
Il contient dans ça feuille nomée "LIEN" en cellule B35 la valeur
suivante :
C:Documents and SettingsTISBABureauapplicationETIQUETTESRESULTAT
PAR
PODIUM6EMetiersSOIE
Ce chemin d'accès corespond à l'endroit où je veux sauvegarder un
autre
classeur.

Cet autre classeur est créer de la manière suivante: c'est une feuille
de
mon classeur "X" qui est copié est déplacée dans un nouveau classeur!
Cette
nouvelle feuille ("classeur1" par default) doit donc être sauvegarder
vers
son chemin d'accès (qui est donc dans le classeur "X" dans la feuille
"LIEN"
Cellule "B35") et il sera enregistré sous le nom de sa feuille active!

J'ai tester le code que tu m'as donnée mais il n'en veut pas non !
j'essaye
de le bidouillé pour voir en ce moment même!



Re,
Peux vérifier sans oublier aucun caractère le contenu de B35
Il faut que cela renvoie correctement un nom de chemin complet
Exemple: c:rep
et non c:rep

ActiveWorkbook.SaveAs filename:= _
Range("LIEN!B35") & ActiveSheet.Name & ".xls"


LIEN est une feuille pas un range
de quel classeur?
Donc soit LIEN.[b35]
....
Voici un exemple qui fonctionne (si le chemin est correct dans la
feuille
LIEN en B35)

'***
Sub test()
Dim mypath As String
mypath = Worksheets("LIEN").Range("b35")
ActiveSheet.Copy
ChDir mypath
ActiveWorkbook.SaveAs ActiveSheet.Name

End Sub
'***
'lSteph


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

re bonjour et pardon d'abuser de ce forum!

Voilà mon souci! C'est la fonction ActiveWorkbook.SaveAs
filename:= _
!!

Le problème est le message d'erreur suivant :
"La méthode 'range de l'objet'-global à échoué" !!!!
Je pense savoir pourquoi !!! J'explique :

J'ai un classeur principal que j'appele pour l'exemple "CX". Ma
macro
à
pour
action de copier sur un nouveaux classeur (qui par défault s'appel
"classeur1") une feuille et d''enregistrer ce nouveau classeur
dans
un
répertoire! C'est ici qu'intervien le code suivant :

ActiveWorkbook.SaveAs filename:= _
Range("LIEN!B35") & ActiveSheet.Name & ".xls"

Dans cette cellule B35 du classeur X ce trouve le chemin d'accès
vers
le
répertoire ou doit être sauver le classeur1!

Mais le message d'erreur cité ci dessus n'est pas d'accord pour me
l'enregistrer!

Mon autodiagnostique :
Ce n'est pas un problème du au chemin d'accès. En effet j'ai
tester
ce
code
sur mon classeur X et il s'enregistre bien là ou je veux! Pour moi
c'est
parcequ'Excel ne parvient pas à retourné chercher cette cellule
B35
dans
mon
classeur X! Je pense que le bon code serai quelque chose du genre
:

ActiveWorkbook.SaveAs filename:= _
Range("X.xls!LIEN!B35") & ActiveSheet.Name & ".xls"
où X.xls apparaitrait!!!!

Voilà, mon diagnostic est peut être faux dopnc je m'en remet à
votre
savoir
car le mien est en pleine apprentissage depuis que j'ai connu ce
forum!!!

Merci beaucoup

























Avatar
LSteph
Bonsoir Daniel
,
Juste pas compris pourquoi ActiveSheet.Name =
Sheets("RAPPORT_FINal").Range("c1")
(toujours la même chose sinon
sinon au vu de ce que tu proposes ceci devrait faire l'affaire:



'****
Sub Enregist5()
Dim c As Range
For Each c In Worksheets("LIEN").Range("b35:b39").Cells
ChDir c
ActiveSheet.Name = Sheets("RAPPORT_FINal").Range("c1")
ActiveSheet.Copy
ActiveWorkbook.SaveAs ActiveSheet.Name
ActiveWorkbook.Close
Next
End Sub
'***

'lSteph




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

Désolé, j'a des grosse galères avec mon PC!
J'utilise à chaque fois une cellule différente, la b35, b36, b37, b38 ...
qui se trouve toujours sur la même feuille!
Et le nom "activesheets.name " est différent à chaque fois!

Donc confirme moi si c bon (j'ai pas eu le temps de tester à cause de mon
pc) mais je peux donc à chaque nouvelle copie de feuille utiliser ces
codes
là :

Dim mypath1 As String
mypath1 = Worksheets("LIEN").Range("b35")
ActiveSheet.Copy
ActiveSheet.Name = Sheets("RAPPORT_FINal").Range("c1")
ChDir mypath
ActiveWorkbook.SaveAs ActiveSheet.Name

Dim mypath2 As String
mypath2 = Worksheets("LIEN").Range("b36")
ActiveSheet.Copy
ActiveSheet.Name = Sheets("RAPPORT_FINal").Range("c1")
ChDir mypath
ActiveWorkbook.SaveAs ActiveSheet.Name

Dim mypath3 As String
mypath3 = Worksheets("LIEN").Range("b37")
ActiveSheet.Copy
ActiveSheet.Name = Sheets("RAPPORT_FINal").Range("c1")
ChDir mypath
ActiveWorkbook.SaveAs ActiveSheet.Name

.....

Je pense que c'est bon!!

Mon fichier est super balaize! il fait plus de 11mo non zipé! il passera
pas
sur ci-joint! Dit moi si les codes précédent sont bon, sinon je te fait un
découpage de mon fichié!

j'attend ta réponse!!! Encore et gros MERCI pour ton aide en tout cas
Lsteph


.... Tu n'as pas répondu
Si tu utilises toujours la cellule B35
et toujours la même feuille du même classeur
Activesheet.name ...toujours le même nom!!???

Mets ton fichier là
http://cjoint.com
et donne le lien

lSteph

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

Je t'explique !
Sur mon classeur X j'ai sur une feuille 5 tableaux (TCD) !
La macro à pour action de copier les tableaux et de les coller dans les
bon
répertoires!

Donc elle fait 5 fois l'opération suivante :
- copie la feuille "rapport" du classeur "X" dans un nouveau classeur
- supprime dans ce nouveau classeur les colonnes inutiles
- enregistre dans le bon répertoire le nouveau classeur!

D'où l'utlisation de la macro pour sauvegarder dans le bon répertoire!
Avant le code était:
ActiveWorkbook.SaveAs filename:= _
"C:Documents and
SettingsTISBABureauapplicationETIQUETTESRESULTAT" &
ActiveSheet.Name & ".xls"

et ça marchait! mais pour avoir un classeur qui s'adapte au répertoire
dans
lequel il est installé, j'ai voulut préparé les bon chemins d'accès
dans
la
feuille "LIEN" du classeur "X"!
Voilà! J'aurai peut être du commencer par ça !! En espérant que ça
puisse

t'aider à comprendre ma problématique!!!




Tu veux écraser 5 fois le même fichier ou il sont différents ?
Sinon tu dois déjà fermer le premier en ajoutant ceci:
Activeworkbook.close

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

Ca y est ! avec ta façon ça marche ! Mais le problème c'est que ça
marche
qu'une seule fois! Car j'avais dans la même macro, 5 fois la même
opératiçon!!!!

Sinon vraiment pas possible de cette manière en ajoutant juste dans
le
code
le nom du classeur qui contient la feuille lien et ça cellule B35
???:
ActiveWorkbook.SaveAs filename:= _
Range("LIEN!B35") & ActiveSheet.Name & ".xls"

Dans tous les cas, ton aide à été béton!!! merci énormément



Le lien est bon! je reprend !

Le classeur principal est nommée X
Il contient dans ça feuille nomée "LIEN" en cellule B35 la valeur
suivante :
C:Documents and
SettingsTISBABureauapplicationETIQUETTESRESULTAT
PAR
PODIUM6EMetiersSOIE
Ce chemin d'accès corespond à l'endroit où je veux sauvegarder un
autre
classeur.

Cet autre classeur est créer de la manière suivante: c'est une
feuille
de
mon classeur "X" qui est copié est déplacée dans un nouveau
classeur!
Cette
nouvelle feuille ("classeur1" par default) doit donc être
sauvegarder
vers
son chemin d'accès (qui est donc dans le classeur "X" dans la
feuille
"LIEN"
Cellule "B35") et il sera enregistré sous le nom de sa feuille
active!

J'ai tester le code que tu m'as donnée mais il n'en veut pas non !
j'essaye
de le bidouillé pour voir en ce moment même!



Re,
Peux vérifier sans oublier aucun caractère le contenu de B35
Il faut que cela renvoie correctement un nom de chemin complet
Exemple: c:rep
et non c:rep

ActiveWorkbook.SaveAs filename:= _
Range("LIEN!B35") & ActiveSheet.Name & ".xls"


LIEN est une feuille pas un range
de quel classeur?
Donc soit LIEN.[b35]
....
Voici un exemple qui fonctionne (si le chemin est correct dans la
feuille
LIEN en B35)

'***
Sub test()
Dim mypath As String
mypath = Worksheets("LIEN").Range("b35")
ActiveSheet.Copy
ChDir mypath
ActiveWorkbook.SaveAs ActiveSheet.Name

End Sub
'***
'lSteph


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

re bonjour et pardon d'abuser de ce forum!

Voilà mon souci! C'est la fonction ActiveWorkbook.SaveAs
filename:= _
!!

Le problème est le message d'erreur suivant :
"La méthode 'range de l'objet'-global à échoué" !!!!
Je pense savoir pourquoi !!! J'explique :

J'ai un classeur principal que j'appele pour l'exemple "CX". Ma
macro
à
pour
action de copier sur un nouveaux classeur (qui par défault
s'appel
"classeur1") une feuille et d''enregistrer ce nouveau classeur
dans
un
répertoire! C'est ici qu'intervien le code suivant :

ActiveWorkbook.SaveAs filename:= _
Range("LIEN!B35") & ActiveSheet.Name & ".xls"

Dans cette cellule B35 du classeur X ce trouve le chemin
d'accès
vers
le
répertoire ou doit être sauver le classeur1!

Mais le message d'erreur cité ci dessus n'est pas d'accord pour
me
l'enregistrer!

Mon autodiagnostique :
Ce n'est pas un problème du au chemin d'accès. En effet j'ai
tester
ce
code
sur mon classeur X et il s'enregistre bien là ou je veux! Pour
moi
c'est
parcequ'Excel ne parvient pas à retourné chercher cette cellule
B35
dans
mon
classeur X! Je pense que le bon code serai quelque chose du
genre
:

ActiveWorkbook.SaveAs filename:= _
Range("X.xls!LIEN!B35") & ActiveSheet.Name & ".xls"
où X.xls apparaitrait!!!!

Voilà, mon diagnostic est peut être faux dopnc je m'en remet à
votre
savoir
car le mien est en pleine apprentissage depuis que j'ai connu
ce
forum!!!

Merci beaucoup



























Avatar
Daniel
Oups pardon! En fait la feuille copiée du classeur X s'appelait
"RAPPORT_FINAL"! Je demande donc à la macro de renommer la feuille par la
valeur de la cellule C1! Ainsi lorsque la maro applique la macro qui
sauvegarde le fichié, elle le sauvegarde sous le nom approprié! Voilà!

Excellente soirée à toi stephane et merci encor (je sais ça fait beaucoup de
fois que je le dis mais bon, vaut mieux plusieurs fois qu'une) ! et peut être
à bientôt dans la nuit!!! ; - ) g pas encror fini de mon coté ; -(


Bonsoir Daniel
,
Juste pas compris pourquoi ActiveSheet.Name =
Sheets("RAPPORT_FINal").Range("c1")
(toujours la même chose sinon
sinon au vu de ce que tu proposes ceci devrait faire l'affaire:



'****
Sub Enregist5()
Dim c As Range
For Each c In Worksheets("LIEN").Range("b35:b39").Cells
ChDir c
ActiveSheet.Name = Sheets("RAPPORT_FINal").Range("c1")
ActiveSheet.Copy
ActiveWorkbook.SaveAs ActiveSheet.Name
ActiveWorkbook.Close
Next
End Sub
'***

'lSteph




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

Désolé, j'a des grosse galères avec mon PC!
J'utilise à chaque fois une cellule différente, la b35, b36, b37, b38 ...
qui se trouve toujours sur la même feuille!
Et le nom "activesheets.name " est différent à chaque fois!

Donc confirme moi si c bon (j'ai pas eu le temps de tester à cause de mon
pc) mais je peux donc à chaque nouvelle copie de feuille utiliser ces
codes
là :

Dim mypath1 As String
mypath1 = Worksheets("LIEN").Range("b35")
ActiveSheet.Copy
ActiveSheet.Name = Sheets("RAPPORT_FINal").Range("c1")
ChDir mypath
ActiveWorkbook.SaveAs ActiveSheet.Name

Dim mypath2 As String
mypath2 = Worksheets("LIEN").Range("b36")
ActiveSheet.Copy
ActiveSheet.Name = Sheets("RAPPORT_FINal").Range("c1")
ChDir mypath
ActiveWorkbook.SaveAs ActiveSheet.Name

Dim mypath3 As String
mypath3 = Worksheets("LIEN").Range("b37")
ActiveSheet.Copy
ActiveSheet.Name = Sheets("RAPPORT_FINal").Range("c1")
ChDir mypath
ActiveWorkbook.SaveAs ActiveSheet.Name

.....

Je pense que c'est bon!!

Mon fichier est super balaize! il fait plus de 11mo non zipé! il passera
pas
sur ci-joint! Dit moi si les codes précédent sont bon, sinon je te fait un
découpage de mon fichié!

j'attend ta réponse!!! Encore et gros MERCI pour ton aide en tout cas
Lsteph


.... Tu n'as pas répondu
Si tu utilises toujours la cellule B35
et toujours la même feuille du même classeur
Activesheet.name ...toujours le même nom!!???

Mets ton fichier là
http://cjoint.com
et donne le lien

lSteph

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

Je t'explique !
Sur mon classeur X j'ai sur une feuille 5 tableaux (TCD) !
La macro à pour action de copier les tableaux et de les coller dans les
bon
répertoires!

Donc elle fait 5 fois l'opération suivante :
- copie la feuille "rapport" du classeur "X" dans un nouveau classeur
- supprime dans ce nouveau classeur les colonnes inutiles
- enregistre dans le bon répertoire le nouveau classeur!

D'où l'utlisation de la macro pour sauvegarder dans le bon répertoire!
Avant le code était:
ActiveWorkbook.SaveAs filename:= _
"C:Documents and
SettingsTISBABureauapplicationETIQUETTESRESULTAT" &
ActiveSheet.Name & ".xls"

et ça marchait! mais pour avoir un classeur qui s'adapte au répertoire
dans
lequel il est installé, j'ai voulut préparé les bon chemins d'accès
dans
la
feuille "LIEN" du classeur "X"!
Voilà! J'aurai peut être du commencer par ça !! En espérant que ça
puisse

t'aider à comprendre ma problématique!!!




Tu veux écraser 5 fois le même fichier ou il sont différents ?
Sinon tu dois déjà fermer le premier en ajoutant ceci:
Activeworkbook.close

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

Ca y est ! avec ta façon ça marche ! Mais le problème c'est que ça
marche
qu'une seule fois! Car j'avais dans la même macro, 5 fois la même
opératiçon!!!!

Sinon vraiment pas possible de cette manière en ajoutant juste dans
le
code
le nom du classeur qui contient la feuille lien et ça cellule B35
???:
ActiveWorkbook.SaveAs filename:= _
Range("LIEN!B35") & ActiveSheet.Name & ".xls"

Dans tous les cas, ton aide à été béton!!! merci énormément



Le lien est bon! je reprend !

Le classeur principal est nommée X
Il contient dans ça feuille nomée "LIEN" en cellule B35 la valeur
suivante :
C:Documents and
SettingsTISBABureauapplicationETIQUETTESRESULTAT
PAR
PODIUM6EMetiersSOIE
Ce chemin d'accès corespond à l'endroit où je veux sauvegarder un
autre
classeur.

Cet autre classeur est créer de la manière suivante: c'est une
feuille
de
mon classeur "X" qui est copié est déplacée dans un nouveau
classeur!
Cette
nouvelle feuille ("classeur1" par default) doit donc être
sauvegarder
vers
son chemin d'accès (qui est donc dans le classeur "X" dans la
feuille
"LIEN"
Cellule "B35") et il sera enregistré sous le nom de sa feuille
active!

J'ai tester le code que tu m'as donnée mais il n'en veut pas non !
j'essaye
de le bidouillé pour voir en ce moment même!



Re,
Peux vérifier sans oublier aucun caractère le contenu de B35
Il faut que cela renvoie correctement un nom de chemin complet
Exemple: c:rep
et non c:rep

ActiveWorkbook.SaveAs filename:= _
Range("LIEN!B35") & ActiveSheet.Name & ".xls"


LIEN est une feuille pas un range
de quel classeur?
Donc soit LIEN.[b35]
....
Voici un exemple qui fonctionne (si le chemin est correct dans la
feuille
LIEN en B35)

'***
Sub test()
Dim mypath As String
mypath = Worksheets("LIEN").Range("b35")
ActiveSheet.Copy
ChDir mypath
ActiveWorkbook.SaveAs ActiveSheet.Name

End Sub
'***
'lSteph


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

re bonjour et pardon d'abuser de ce forum!

Voilà mon souci! C'est la fonction ActiveWorkbook.SaveAs
filename:= _
!!

Le problème est le message d'erreur suivant :
"La méthode 'range de l'objet'-global à échoué" !!!!
Je pense savoir pourquoi !!! J'explique :

J'ai un classeur principal que j'appele pour l'exemple "CX". Ma
macro
à
pour
action de copier sur un nouveaux classeur (qui par défault
s'appel
"classeur1") une feuille et d''enregistrer ce nouveau classeur
dans
un
répertoire! C'est ici qu'intervien le code suivant :

ActiveWorkbook.SaveAs filename:= _
Range("LIEN!B35") & ActiveSheet.Name & ".xls"

Dans cette cellule B35 du classeur X ce trouve le chemin
d'accès
vers
le
répertoire ou doit être sauver le classeur1!

Mais le message d'erreur cité ci dessus n'est pas d'accord pour
me
l'enregistrer!

Mon autodiagnostique :
Ce n'est pas un problème du au chemin d'accès. En effet j'ai
tester
ce
code
sur mon classeur X et il s'enregistre bien là ou je veux! Pour
moi
c'est
parcequ'Excel ne parvient pas à retourné chercher cette cellule
B35
dans
mon
classeur X! Je pense que le bon code serai quelque chose du
genre
:

ActiveWorkbook.SaveAs filename:= _
Range("X.xls!LIEN!B35") & ActiveSheet.Name & ".xls"
où X.xls apparaitrait!!!!

Voilà, mon diagnostic est peut être faux dopnc je m'en remet à
votre
savoir
car le mien est en pleine apprentissage depuis que j'ai connu
ce
forum!!!

Merci beaucoup
































Avatar
LSteph
Bonjour,

Est-ce que la Sub Enregist5()
que je t'ai donnée convient?

Car vu ton explication (je suis dur à la comprenette) soit
tu enregistres exactement le même fichier dans les 5 répertoire différents
soit
si C1ou quelquechose doit changer avant chacun des 5 enregistrements ,
il faut le prévoit dans la boucle!(Alors préciser quoi pour le mettre dans
la macro).

a+

lSteph


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

Oups pardon! En fait la feuille copiée du classeur X s'appelait
"RAPPORT_FINAL"! Je demande donc à la macro de renommer la feuille par la
valeur de la cellule C1! Ainsi lorsque la maro applique la macro qui
sauvegarde le fichié, elle le sauvegarde sous le nom approprié! Voilà!

Excellente soirée à toi stephane et merci encor (je sais ça fait beaucoup
de
fois que je le dis mais bon, vaut mieux plusieurs fois qu'une) ! et peut
être
à bientôt dans la nuit!!! ; - ) g pas encror fini de mon coté ; -(


Bonsoir Daniel
,
Juste pas compris pourquoi ActiveSheet.Name >> Sheets("RAPPORT_FINal").Range("c1")
(toujours la même chose sinon
sinon au vu de ce que tu proposes ceci devrait faire l'affaire:



'****
Sub Enregist5()
Dim c As Range
For Each c In Worksheets("LIEN").Range("b35:b39").Cells
ChDir c
ActiveSheet.Name = Sheets("RAPPORT_FINal").Range("c1")
ActiveSheet.Copy
ActiveWorkbook.SaveAs ActiveSheet.Name
ActiveWorkbook.Close
Next
End Sub
'***

'lSteph




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

Désolé, j'a des grosse galères avec mon PC!
J'utilise à chaque fois une cellule différente, la b35, b36, b37, b38
...
qui se trouve toujours sur la même feuille!
Et le nom "activesheets.name " est différent à chaque fois!

Donc confirme moi si c bon (j'ai pas eu le temps de tester à cause de
mon
pc) mais je peux donc à chaque nouvelle copie de feuille utiliser ces
codes
là :

Dim mypath1 As String
mypath1 = Worksheets("LIEN").Range("b35")
ActiveSheet.Copy
ActiveSheet.Name = Sheets("RAPPORT_FINal").Range("c1")
ChDir mypath
ActiveWorkbook.SaveAs ActiveSheet.Name

Dim mypath2 As String
mypath2 = Worksheets("LIEN").Range("b36")
ActiveSheet.Copy
ActiveSheet.Name = Sheets("RAPPORT_FINal").Range("c1")
ChDir mypath
ActiveWorkbook.SaveAs ActiveSheet.Name

Dim mypath3 As String
mypath3 = Worksheets("LIEN").Range("b37")
ActiveSheet.Copy
ActiveSheet.Name = Sheets("RAPPORT_FINal").Range("c1")
ChDir mypath
ActiveWorkbook.SaveAs ActiveSheet.Name

.....

Je pense que c'est bon!!

Mon fichier est super balaize! il fait plus de 11mo non zipé! il
passera
pas
sur ci-joint! Dit moi si les codes précédent sont bon, sinon je te fait
un
découpage de mon fichié!

j'attend ta réponse!!! Encore et gros MERCI pour ton aide en tout cas
Lsteph


.... Tu n'as pas répondu
Si tu utilises toujours la cellule B35
et toujours la même feuille du même classeur
Activesheet.name ...toujours le même nom!!???

Mets ton fichier là
http://cjoint.com
et donne le lien

lSteph

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

Je t'explique !
Sur mon classeur X j'ai sur une feuille 5 tableaux (TCD) !
La macro à pour action de copier les tableaux et de les coller dans
les
bon
répertoires!

Donc elle fait 5 fois l'opération suivante :
- copie la feuille "rapport" du classeur "X" dans un nouveau
classeur
- supprime dans ce nouveau classeur les colonnes inutiles
- enregistre dans le bon répertoire le nouveau classeur!

D'où l'utlisation de la macro pour sauvegarder dans le bon
répertoire!
Avant le code était:
ActiveWorkbook.SaveAs filename:= _
"C:Documents and
SettingsTISBABureauapplicationETIQUETTESRESULTAT" &
ActiveSheet.Name & ".xls"

et ça marchait! mais pour avoir un classeur qui s'adapte au
répertoire
dans
lequel il est installé, j'ai voulut préparé les bon chemins d'accès
dans
la
feuille "LIEN" du classeur "X"!
Voilà! J'aurai peut être du commencer par ça !! En espérant que
ça

puisse
t'aider à comprendre ma problématique!!!




Tu veux écraser 5 fois le même fichier ou il sont différents ?
Sinon tu dois déjà fermer le premier en ajoutant ceci:
Activeworkbook.close

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

Ca y est ! avec ta façon ça marche ! Mais le problème c'est que
ça
marche
qu'une seule fois! Car j'avais dans la même macro, 5 fois la même
opératiçon!!!!

Sinon vraiment pas possible de cette manière en ajoutant juste
dans
le
code
le nom du classeur qui contient la feuille lien et ça cellule B35
???:
ActiveWorkbook.SaveAs filename:= _
Range("LIEN!B35") & ActiveSheet.Name & ".xls"

Dans tous les cas, ton aide à été béton!!! merci énormément



Le lien est bon! je reprend !

Le classeur principal est nommée X
Il contient dans ça feuille nomée "LIEN" en cellule B35 la
valeur
suivante :
C:Documents and
SettingsTISBABureauapplicationETIQUETTESRESULTAT
PAR
PODIUM6EMetiersSOIE
Ce chemin d'accès corespond à l'endroit où je veux sauvegarder
un
autre
classeur.

Cet autre classeur est créer de la manière suivante: c'est une
feuille
de
mon classeur "X" qui est copié est déplacée dans un nouveau
classeur!
Cette
nouvelle feuille ("classeur1" par default) doit donc être
sauvegarder
vers
son chemin d'accès (qui est donc dans le classeur "X" dans la
feuille
"LIEN"
Cellule "B35") et il sera enregistré sous le nom de sa feuille
active!

J'ai tester le code que tu m'as donnée mais il n'en veut pas non
!
j'essaye
de le bidouillé pour voir en ce moment même!



Re,
Peux vérifier sans oublier aucun caractère le contenu de B35
Il faut que cela renvoie correctement un nom de chemin complet
Exemple: c:rep
et non c:rep

ActiveWorkbook.SaveAs filename:= _
Range("LIEN!B35") & ActiveSheet.Name & ".xls"


LIEN est une feuille pas un range
de quel classeur?
Donc soit LIEN.[b35]
....
Voici un exemple qui fonctionne (si le chemin est correct dans
la
feuille
LIEN en B35)

'***
Sub test()
Dim mypath As String
mypath = Worksheets("LIEN").Range("b35")
ActiveSheet.Copy
ChDir mypath
ActiveWorkbook.SaveAs ActiveSheet.Name

End Sub
'***
'lSteph


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

re bonjour et pardon d'abuser de ce forum!

Voilà mon souci! C'est la fonction ActiveWorkbook.SaveAs
filename:= _
!!

Le problème est le message d'erreur suivant :
"La méthode 'range de l'objet'-global à échoué" !!!!
Je pense savoir pourquoi !!! J'explique :

J'ai un classeur principal que j'appele pour l'exemple "CX".
Ma
macro
à
pour
action de copier sur un nouveaux classeur (qui par défault
s'appel
"classeur1") une feuille et d''enregistrer ce nouveau
classeur
dans
un
répertoire! C'est ici qu'intervien le code suivant :

ActiveWorkbook.SaveAs filename:= _
Range("LIEN!B35") & ActiveSheet.Name & ".xls"

Dans cette cellule B35 du classeur X ce trouve le chemin
d'accès
vers
le
répertoire ou doit être sauver le classeur1!

Mais le message d'erreur cité ci dessus n'est pas d'accord
pour
me
l'enregistrer!

Mon autodiagnostique :
Ce n'est pas un problème du au chemin d'accès. En effet j'ai
tester
ce
code
sur mon classeur X et il s'enregistre bien là ou je veux!
Pour
moi
c'est
parcequ'Excel ne parvient pas à retourné chercher cette
cellule
B35
dans
mon
classeur X! Je pense que le bon code serai quelque chose du
genre
:

ActiveWorkbook.SaveAs filename:= _
Range("X.xls!LIEN!B35") & ActiveSheet.Name & ".xls"
où X.xls apparaitrait!!!!

Voilà, mon diagnostic est peut être faux dopnc je m'en remet
à
votre
savoir
car le mien est en pleine apprentissage depuis que j'ai
connu
ce
forum!!!

Merci beaucoup


































Avatar
Daniel
Bonjour Lsteph !

Oh que oui elle marche à merveille! En fait la feuille avant chaque
enregistrement prend le nom de la cellule C1! Mais comme entre chaque
enregistrement il y à suppression de collone, c1 est à chaque fois différent!

Mais j'ai changé cette méthode (pas ta sub! elle est génial) ! Maintenant
j'ai 5 macros pour les extractions (enregistrement) et une macro qui enfait
fait les 5 à la fois tout simplement en lanceant par la voie du VBA ces 5
macro (application run!......) ! Et CA MARCHE !

J'essaye aussi d'optimiser en ne choisisant que ce que je veux etraiire. Je
pense à de liste déroulante devant le nom de mes 5 extractions! la liste à 2
choix : oui ou non! si il y à un oui devant l'etraction 1 et 3, la macro doit
me lancer la macro d'extraction 1 et 3!
Il y aussi la méthode des cases à cocher et un bouton validé! si je coche
l'extraction 1 et 3 et je valide, la macro doit me lancer la macro
d'extraction 1 et 3 ! Ou un système de ce genre! Mais j'ai jaùmias fait
encore!!! c'est peut être un user form!!! mais comme j'en ai jamais utilisé!!!


Je vais m'y remettre !!! merci steph

Bonjour,

Est-ce que la Sub Enregist5()
que je t'ai donnée convient?

Car vu ton explication (je suis dur à la comprenette) soit
tu enregistres exactement le même fichier dans les 5 répertoire différents
soit
si C1ou quelquechose doit changer avant chacun des 5 enregistrements ,
il faut le prévoit dans la boucle!(Alors préciser quoi pour le mettre dans
la macro).

a+

lSteph


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

Oups pardon! En fait la feuille copiée du classeur X s'appelait
"RAPPORT_FINAL"! Je demande donc à la macro de renommer la feuille par la
valeur de la cellule C1! Ainsi lorsque la maro applique la macro qui
sauvegarde le fichié, elle le sauvegarde sous le nom approprié! Voilà!

Excellente soirée à toi stephane et merci encor (je sais ça fait beaucoup
de
fois que je le dis mais bon, vaut mieux plusieurs fois qu'une) ! et peut
être
à bientôt dans la nuit!!! ; - ) g pas encror fini de mon coté ; -(


Bonsoir Daniel
,
Juste pas compris pourquoi ActiveSheet.Name > >> Sheets("RAPPORT_FINal").Range("c1")
(toujours la même chose sinon
sinon au vu de ce que tu proposes ceci devrait faire l'affaire:



'****
Sub Enregist5()
Dim c As Range
For Each c In Worksheets("LIEN").Range("b35:b39").Cells
ChDir c
ActiveSheet.Name = Sheets("RAPPORT_FINal").Range("c1")
ActiveSheet.Copy
ActiveWorkbook.SaveAs ActiveSheet.Name
ActiveWorkbook.Close
Next
End Sub
'***

'lSteph




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

Désolé, j'a des grosse galères avec mon PC!
J'utilise à chaque fois une cellule différente, la b35, b36, b37, b38
...
qui se trouve toujours sur la même feuille!
Et le nom "activesheets.name " est différent à chaque fois!

Donc confirme moi si c bon (j'ai pas eu le temps de tester à cause de
mon
pc) mais je peux donc à chaque nouvelle copie de feuille utiliser ces
codes
là :

Dim mypath1 As String
mypath1 = Worksheets("LIEN").Range("b35")
ActiveSheet.Copy
ActiveSheet.Name = Sheets("RAPPORT_FINal").Range("c1")
ChDir mypath
ActiveWorkbook.SaveAs ActiveSheet.Name

Dim mypath2 As String
mypath2 = Worksheets("LIEN").Range("b36")
ActiveSheet.Copy
ActiveSheet.Name = Sheets("RAPPORT_FINal").Range("c1")
ChDir mypath
ActiveWorkbook.SaveAs ActiveSheet.Name

Dim mypath3 As String
mypath3 = Worksheets("LIEN").Range("b37")
ActiveSheet.Copy
ActiveSheet.Name = Sheets("RAPPORT_FINal").Range("c1")
ChDir mypath
ActiveWorkbook.SaveAs ActiveSheet.Name

.....

Je pense que c'est bon!!

Mon fichier est super balaize! il fait plus de 11mo non zipé! il
passera
pas
sur ci-joint! Dit moi si les codes précédent sont bon, sinon je te fait
un
découpage de mon fichié!

j'attend ta réponse!!! Encore et gros MERCI pour ton aide en tout cas
Lsteph


.... Tu n'as pas répondu
Si tu utilises toujours la cellule B35
et toujours la même feuille du même classeur
Activesheet.name ...toujours le même nom!!???

Mets ton fichier là
http://cjoint.com
et donne le lien

lSteph

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

Je t'explique !
Sur mon classeur X j'ai sur une feuille 5 tableaux (TCD) !
La macro à pour action de copier les tableaux et de les coller dans
les
bon
répertoires!

Donc elle fait 5 fois l'opération suivante :
- copie la feuille "rapport" du classeur "X" dans un nouveau
classeur
- supprime dans ce nouveau classeur les colonnes inutiles
- enregistre dans le bon répertoire le nouveau classeur!

D'où l'utlisation de la macro pour sauvegarder dans le bon
répertoire!
Avant le code était:
ActiveWorkbook.SaveAs filename:= _
"C:Documents and
SettingsTISBABureauapplicationETIQUETTESRESULTAT" &
ActiveSheet.Name & ".xls"

et ça marchait! mais pour avoir un classeur qui s'adapte au
répertoire
dans
lequel il est installé, j'ai voulut préparé les bon chemins d'accès
dans
la
feuille "LIEN" du classeur "X"!
Voilà! J'aurai peut être du commencer par ça !! En espérant que
ça

puisse
t'aider à comprendre ma problématique!!!




Tu veux écraser 5 fois le même fichier ou il sont différents ?
Sinon tu dois déjà fermer le premier en ajoutant ceci:
Activeworkbook.close

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

Ca y est ! avec ta façon ça marche ! Mais le problème c'est que
ça
marche
qu'une seule fois! Car j'avais dans la même macro, 5 fois la même
opératiçon!!!!

Sinon vraiment pas possible de cette manière en ajoutant juste
dans
le
code
le nom du classeur qui contient la feuille lien et ça cellule B35
???:
ActiveWorkbook.SaveAs filename:= _
Range("LIEN!B35") & ActiveSheet.Name & ".xls"

Dans tous les cas, ton aide à été béton!!! merci énormément



Le lien est bon! je reprend !

Le classeur principal est nommée X
Il contient dans ça feuille nomée "LIEN" en cellule B35 la
valeur
suivante :
C:Documents and
SettingsTISBABureauapplicationETIQUETTESRESULTAT
PAR
PODIUM6EMetiersSOIE
Ce chemin d'accès corespond à l'endroit où je veux sauvegarder
un
autre
classeur.

Cet autre classeur est créer de la manière suivante: c'est une
feuille
de
mon classeur "X" qui est copié est déplacée dans un nouveau
classeur!
Cette
nouvelle feuille ("classeur1" par default) doit donc être
sauvegarder
vers
son chemin d'accès (qui est donc dans le classeur "X" dans la
feuille
"LIEN"
Cellule "B35") et il sera enregistré sous le nom de sa feuille
active!

J'ai tester le code que tu m'as donnée mais il n'en veut pas non
!
j'essaye
de le bidouillé pour voir en ce moment même!



Re,
Peux vérifier sans oublier aucun caractère le contenu de B35
Il faut que cela renvoie correctement un nom de chemin complet
Exemple: c:rep
et non c:rep

ActiveWorkbook.SaveAs filename:= _
Range("LIEN!B35") & ActiveSheet.Name & ".xls"


LIEN est une feuille pas un range
de quel classeur?
Donc soit LIEN.[b35]
....
Voici un exemple qui fonctionne (si le chemin est correct dans
la
feuille
LIEN en B35)

'***
Sub test()
Dim mypath As String
mypath = Worksheets("LIEN").Range("b35")
ActiveSheet.Copy
ChDir mypath
ActiveWorkbook.SaveAs ActiveSheet.Name

End Sub
'***
'lSteph


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

re bonjour et pardon d'abuser de ce forum!

Voilà mon souci! C'est la fonction ActiveWorkbook.SaveAs
filename:= _
!!

Le problème est le message d'erreur suivant :
"La méthode 'range de l'objet'-global à échoué" !!!!
Je pense savoir pourquoi !!! J'explique :

J'ai un classeur principal que j'appele pour l'exemple "CX".
Ma
macro
à
pour
action de copier sur un nouveaux classeur (qui par défault
s'appel
"classeur1") une feuille et d''enregistrer ce nouveau
classeur
dans
un
répertoire! C'est ici qu'intervien le code suivant :

ActiveWorkbook.SaveAs filename:= _
Range("LIEN!B35") & ActiveSheet.Name & ".xls"

Dans cette cellule B35 du classeur X ce trouve le chemin
d'accès
vers
le
répertoire ou doit être sauver le classeur1!

Mais le message d'erreur cité ci dessus n'est pas d'accord
pour
me
l'enregistrer!






















1 2