je souhaite enregistrer un fichier qui me sert de base sous le nom x de la
cellule "i1"
et je voudrais que cette copie ne contienne pas les macro de ma base, juste
la feuille 1 et la mise en forme de cette feuille.
mais avec cette macro empruntée sur excelabo et un peu remaniée, l'onglet
reception se trouve sur la feuille 2 de mon classeur
le probleme est que toutes les info pour renommer la copie figure sur la
feuille 1 en f2 (mercredi-02-mars-08) mais au format date avec des / et non
au format texte, ce qui fait buguer la macro,
voici la macro
Sub enregistre_auto()
Dim Fichier As String
Dim x As String
Sheets("reception").Select
x = Range("i1").Value
Fichier = Format(Date, "dd mm yy") & " " & x & ".xls"
ThisWorkbook.SaveCopyAs Filename:=ThisWorkbook.Path & "\" & Fichier
ActiveWorkbook.Saved = True
ActiveWorkbook.Close
x = Sheets("reception").Range("i1").Value Fichier = Format(Sheets("Feuil1").Range("F2"), "dd mm yy") & " " & x & ".xls" Sheets("feuil1").Copy ActiveWorkbook.SaveCopyAs Filename:=ThisWorkbook.Path & "" & Fichier ActiveWorkbook.Saved = True ActiveWorkbook.Close
Celà devrait fonctionner
Dis moi !!!!
francois45
salut, je viens d'essayer ton code et je te remercie de te pencher sur mon problème mais il ne fonctionne pas. j'ai posté mon fichier à l'adresse ci dessous cela permettera de mieux comprendre ce que je veux faire (j'ai mis les explications dans le module.
http://cjoint.com/?eEuCc40gGF
a écrit dans le message de news:
Salut à toi
Je te propose ce code :
Dim Fichier As String Dim x As String
x = Sheets("reception").Range("i1").Value Fichier = Format(Sheets("Feuil1").Range("F2"), "dd mm yy") & " " & x & ".xls" Sheets("feuil1").Copy ActiveWorkbook.SaveCopyAs Filename:=ThisWorkbook.Path & "" & Fichier ActiveWorkbook.Saved = True ActiveWorkbook.Close
Celà devrait fonctionner
Dis moi !!!!
salut,
je viens d'essayer ton code et je te remercie de te pencher sur mon problème
mais il ne fonctionne pas.
j'ai posté mon fichier à l'adresse ci dessous cela permettera de mieux
comprendre ce que je veux faire (j'ai mis les explications dans le module.
http://cjoint.com/?eEuCc40gGF
<francois.forcet@wanadoo.fr> a écrit dans le message de news:
8018976c-0bd7-4a9a-adf0-a8beab3c23e7@w7g2000hsa.googlegroups.com...
Salut à toi
Je te propose ce code :
Dim Fichier As String
Dim x As String
x = Sheets("reception").Range("i1").Value
Fichier = Format(Sheets("Feuil1").Range("F2"), "dd mm yy") & " "
& x & ".xls"
Sheets("feuil1").Copy
ActiveWorkbook.SaveCopyAs Filename:=ThisWorkbook.Path & "" &
Fichier
ActiveWorkbook.Saved = True
ActiveWorkbook.Close
salut, je viens d'essayer ton code et je te remercie de te pencher sur mon problème mais il ne fonctionne pas. j'ai posté mon fichier à l'adresse ci dessous cela permettera de mieux comprendre ce que je veux faire (j'ai mis les explications dans le module.
http://cjoint.com/?eEuCc40gGF
a écrit dans le message de news:
Salut à toi
Je te propose ce code :
Dim Fichier As String Dim x As String
x = Sheets("reception").Range("i1").Value Fichier = Format(Sheets("Feuil1").Range("F2"), "dd mm yy") & " " & x & ".xls" Sheets("feuil1").Copy ActiveWorkbook.SaveCopyAs Filename:=ThisWorkbook.Path & "" & Fichier ActiveWorkbook.Saved = True ActiveWorkbook.Close
Celà devrait fonctionner
Dis moi !!!!
francois45
re-bonjour,
les explications pour suivre le fil, le fichier est dans le post précédent...
Sub engsansmacro()
'celle ci ne marche pas 'je veux pouvoir enregistrer la feuil1 sipac avec toute la mise en page '(entete et pieds de page compris) 'sans enregistrer les autres feuilles ni les macro ne conservant que 'la feuil1 sur mon nouveau fichier renommé de la date d'extraction situé 'en f2 de la feuil1.
'j'aurais préféré utiliser la cellule f2 de la feuil1 pour renommer mon fichier 'soit le jour "dd"0(pourquoi pas la date entière 30 04 08 c'est peut être trop demander..) 'car mon fichier de base TST est déjà dans un dossier mensuel 'je me heurte au format de date car les barres font bugger l'enregistrement 30/04/08 'donc j'utilise la cellule i1 de la feuil2 reception.... 'enfin à la fin de la macro, il faut que ma base TST se ferme sans s'enregistrer(ça marche)
'les bouton n'existent pas dans la vraie version TST (cachés dans des menus commandbar)
Dim Fichier As String Dim x As String
x = Sheets("reception").Range("i1").Value Fichier = Format(Sheets("Feuil1").Range("F2"), "dd mm yy") & " " & x & ".xls"
Sub enregistre_auto() 'celle ci marche mais je veux conserver uniquement la feuil1 'sans les macros car ma base TST fait 950ko (allègée ici) alors que la feuil1 85ko
Dim Fichier As String Dim x As String
Sheets("reception").Select x = Range("i1").Value Fichier = Format(Date, "dd mm yy") & " " & x & ".xls" ThisWorkbook.SaveCopyAs Filename:=ThisWorkbook.Path & "" & Fichier ActiveWorkbook.Saved = True ActiveWorkbook.Close
End Sub
re-bonjour,
les explications pour suivre le fil, le fichier est dans le post
précédent...
Sub engsansmacro()
'celle ci ne marche pas
'je veux pouvoir enregistrer la feuil1 sipac avec toute la mise en page
'(entete et pieds de page compris)
'sans enregistrer les autres feuilles ni les macro ne conservant que
'la feuil1 sur mon nouveau fichier renommé de la date d'extraction situé
'en f2 de la feuil1.
'j'aurais préféré utiliser la cellule f2 de la feuil1 pour renommer mon
fichier
'soit le jour "dd"0(pourquoi pas la date entière 30 04 08 c'est peut être
trop demander..)
'car mon fichier de base TST est déjà dans un dossier mensuel
'je me heurte au format de date car les barres font bugger l'enregistrement
30/04/08
'donc j'utilise la cellule i1 de la feuil2 reception....
'enfin à la fin de la macro, il faut que ma base TST se ferme sans
s'enregistrer(ça marche)
'les bouton n'existent pas dans la vraie version TST (cachés dans des menus
commandbar)
Dim Fichier As String
Dim x As String
x = Sheets("reception").Range("i1").Value
Fichier = Format(Sheets("Feuil1").Range("F2"), "dd mm yy") & " " & x &
".xls"
Sub enregistre_auto()
'celle ci marche mais je veux conserver uniquement la feuil1
'sans les macros car ma base TST fait 950ko (allègée ici) alors que la
feuil1 85ko
Dim Fichier As String
Dim x As String
Sheets("reception").Select
x = Range("i1").Value
Fichier = Format(Date, "dd mm yy") & " " & x & ".xls"
ThisWorkbook.SaveCopyAs Filename:=ThisWorkbook.Path & "" & Fichier
ActiveWorkbook.Saved = True
ActiveWorkbook.Close
les explications pour suivre le fil, le fichier est dans le post précédent...
Sub engsansmacro()
'celle ci ne marche pas 'je veux pouvoir enregistrer la feuil1 sipac avec toute la mise en page '(entete et pieds de page compris) 'sans enregistrer les autres feuilles ni les macro ne conservant que 'la feuil1 sur mon nouveau fichier renommé de la date d'extraction situé 'en f2 de la feuil1.
'j'aurais préféré utiliser la cellule f2 de la feuil1 pour renommer mon fichier 'soit le jour "dd"0(pourquoi pas la date entière 30 04 08 c'est peut être trop demander..) 'car mon fichier de base TST est déjà dans un dossier mensuel 'je me heurte au format de date car les barres font bugger l'enregistrement 30/04/08 'donc j'utilise la cellule i1 de la feuil2 reception.... 'enfin à la fin de la macro, il faut que ma base TST se ferme sans s'enregistrer(ça marche)
'les bouton n'existent pas dans la vraie version TST (cachés dans des menus commandbar)
Dim Fichier As String Dim x As String
x = Sheets("reception").Range("i1").Value Fichier = Format(Sheets("Feuil1").Range("F2"), "dd mm yy") & " " & x & ".xls"
Sub enregistre_auto() 'celle ci marche mais je veux conserver uniquement la feuil1 'sans les macros car ma base TST fait 950ko (allègée ici) alors que la feuil1 85ko
Dim Fichier As String Dim x As String
Sheets("reception").Select x = Range("i1").Value Fichier = Format(Date, "dd mm yy") & " " & x & ".xls" ThisWorkbook.SaveCopyAs Filename:=ThisWorkbook.Path & "" & Fichier ActiveWorkbook.Saved = True ActiveWorkbook.Close
End Sub
francois45
bonjour à tous,
j'ai essayé de regrouper les 2 macros dans cet extrait de fichier, l'une marche (adaptée d'excellabo mais conserve la totalité du fichier soit 950 ko pour l'original et l'autre pas (merci à françois), je ne sais pas si j'ai bien réalisé la manip (je débute)
'je veux pouvoir enregistrer la feuil1 sipac avec toute la mise en page '(entete et pieds de page compris) 'sans enregistrer les autres feuilles ni les macro ne conservant que 'la feuil1 sur mon nouveau fichier renommé de la date d'extraction situé 'en f2 de la feuil1.
'j'aurais préféré utiliser la cellule f2 de la feuil1 pour renommer mon fichier 'soit le jour "dd"0(pourquoi pas la date entière 30 04 08 c'est peut être trop demander..) 'car mon fichier de base TST est déjà dans un dossier mensuel 'je me heurte au format de date car les barres "/" font bugger l'enregistrement 30/04/08 'donc j'utilise la cellule i1 de la feuil2 reception.... 'enfin à la fin de la macro, il faut que ma base TST se ferme sans s'enregistrer(ça marche)
'les bouton n'existent pas dans la vraie version TST (cachés dans des menus commandbar)
http://cjoint.com/?eEuCc40gGF
bonjour à tous,
j'ai essayé de regrouper les 2 macros dans cet extrait de fichier, l'une
marche (adaptée d'excellabo mais conserve la totalité du fichier soit 950 ko
pour l'original et l'autre pas (merci à françois), je ne sais pas si j'ai
bien réalisé la manip (je débute)
'je veux pouvoir enregistrer la feuil1 sipac avec toute la mise en page
'(entete et pieds de page compris)
'sans enregistrer les autres feuilles ni les macro ne conservant que
'la feuil1 sur mon nouveau fichier renommé de la date d'extraction situé
'en f2 de la feuil1.
'j'aurais préféré utiliser la cellule f2 de la feuil1 pour renommer mon
fichier
'soit le jour "dd"0(pourquoi pas la date entière 30 04 08 c'est peut être
trop demander..)
'car mon fichier de base TST est déjà dans un dossier mensuel
'je me heurte au format de date car les barres "/" font bugger
l'enregistrement 30/04/08
'donc j'utilise la cellule i1 de la feuil2 reception....
'enfin à la fin de la macro, il faut que ma base TST se ferme sans
s'enregistrer(ça marche)
'les bouton n'existent pas dans la vraie version TST (cachés dans des menus
commandbar)
j'ai essayé de regrouper les 2 macros dans cet extrait de fichier, l'une marche (adaptée d'excellabo mais conserve la totalité du fichier soit 950 ko pour l'original et l'autre pas (merci à françois), je ne sais pas si j'ai bien réalisé la manip (je débute)
'je veux pouvoir enregistrer la feuil1 sipac avec toute la mise en page '(entete et pieds de page compris) 'sans enregistrer les autres feuilles ni les macro ne conservant que 'la feuil1 sur mon nouveau fichier renommé de la date d'extraction situé 'en f2 de la feuil1.
'j'aurais préféré utiliser la cellule f2 de la feuil1 pour renommer mon fichier 'soit le jour "dd"0(pourquoi pas la date entière 30 04 08 c'est peut être trop demander..) 'car mon fichier de base TST est déjà dans un dossier mensuel 'je me heurte au format de date car les barres "/" font bugger l'enregistrement 30/04/08 'donc j'utilise la cellule i1 de la feuil2 reception.... 'enfin à la fin de la macro, il faut que ma base TST se ferme sans s'enregistrer(ça marche)
'les bouton n'existent pas dans la vraie version TST (cachés dans des menus commandbar)
http://cjoint.com/?eEuCc40gGF
francois.forcet
Rebonjours à toi
Pour fonctionner mon code à besoin d'être actualisé du nom de l'Onglet dont tu souhaites enregistrer la copie que je ne le connais pas Il faut donc corriger ces 2 lignes :
Fichier = Format(Sheets("Feuil1").Range("F2"), "dd mm yy") & " " & x & ".xls"
Sheets("Feuil1").Copy
"Feuil1" représente le nom de l'onglet Remplaces le par le nom de baptème que tu lui as affécté
J'ai testé avec succés en prenant "sipac" Seule anomalie la présence de code Macro lié e à celui présent dans le VBA de cette feuille Il faudrait pour celle-ci le déplacer pour ne pas enregitrer dans sa copie de la Macro
Et celà devrait fonctionner
Tiens moi informé
Rebonjours à toi
Pour fonctionner mon code à besoin d'être actualisé du nom de l'Onglet
dont tu souhaites enregistrer la copie que je ne le connais pas
Il faut donc corriger ces 2 lignes :
Fichier = Format(Sheets("Feuil1").Range("F2"), "dd mm yy") & " " & x &
".xls"
Sheets("Feuil1").Copy
"Feuil1" représente le nom de l'onglet
Remplaces le par le nom de baptème que tu lui as affécté
J'ai testé avec succés en prenant "sipac"
Seule anomalie la présence de code Macro lié e à celui présent dans le
VBA de cette feuille
Il faudrait pour celle-ci le déplacer pour ne pas enregitrer dans sa
copie de la Macro
Pour fonctionner mon code à besoin d'être actualisé du nom de l'Onglet dont tu souhaites enregistrer la copie que je ne le connais pas Il faut donc corriger ces 2 lignes :
Fichier = Format(Sheets("Feuil1").Range("F2"), "dd mm yy") & " " & x & ".xls"
Sheets("Feuil1").Copy
"Feuil1" représente le nom de l'onglet Remplaces le par le nom de baptème que tu lui as affécté
J'ai testé avec succés en prenant "sipac" Seule anomalie la présence de code Macro lié e à celui présent dans le VBA de cette feuille Il faudrait pour celle-ci le déplacer pour ne pas enregitrer dans sa copie de la Macro
Et celà devrait fonctionner
Tiens moi informé
francois45
bonjour, François,
j'ai réessayé ta macro mais elle ne referme pas sans enregistrer mon fichier TST qui me sert de base. en fait mon modèle me sert à tirer des états journaliers mais comme un certain nombre de macros tournent, et que ma charmante collègue à une facheuse tendance a cliquer oui sans lire, elle m'écrase sans arrêt ma base, et il ne me reste plus qu'à rechercher les dernières mise à jour que j'avais faite...pas toujours facile quoi !!! (ça m'est arrivé aussi...) donc pour éviter ça il faut que le fichier se ferme sans s'enregistrer dès qu'elle aura lancé l'impression. je n'ai pas l'impression que les 2 dernières lignes de la macro fonctionnent ?! ActiveWorkbook.Saved = True ActiveWorkbook.Close en mettant de la couleur dans mon fichier rien ne se passe, il ne se referme pas ???
Sub macrodefrabcois()
Dim Fichier As String Dim x As String
x = Sheets("reception").Range("i1").Value Fichier = Format(Sheets("sipac").Range("F2"), "dd mm yy") & " " & x & ".xls"
j'ai réessayé ta macro mais elle ne referme pas sans enregistrer mon fichier
TST qui me sert de base.
en fait mon modèle me sert à tirer des états journaliers mais comme un
certain nombre de macros tournent, et que ma charmante collègue à une
facheuse tendance a cliquer oui sans lire, elle m'écrase sans arrêt ma base,
et il ne me reste plus qu'à rechercher les dernières mise à jour que j'avais
faite...pas toujours facile quoi !!! (ça m'est arrivé aussi...)
donc pour éviter ça il faut que le fichier se ferme sans s'enregistrer dès
qu'elle aura lancé l'impression.
je n'ai pas l'impression que les 2 dernières lignes de la macro fonctionnent
?!
ActiveWorkbook.Saved = True
ActiveWorkbook.Close
en mettant de la couleur dans mon fichier rien ne se passe, il ne se referme
pas ???
Sub macrodefrabcois()
Dim Fichier As String
Dim x As String
x = Sheets("reception").Range("i1").Value
Fichier = Format(Sheets("sipac").Range("F2"), "dd mm yy") & " " & x & ".xls"
j'ai réessayé ta macro mais elle ne referme pas sans enregistrer mon fichier TST qui me sert de base. en fait mon modèle me sert à tirer des états journaliers mais comme un certain nombre de macros tournent, et que ma charmante collègue à une facheuse tendance a cliquer oui sans lire, elle m'écrase sans arrêt ma base, et il ne me reste plus qu'à rechercher les dernières mise à jour que j'avais faite...pas toujours facile quoi !!! (ça m'est arrivé aussi...) donc pour éviter ça il faut que le fichier se ferme sans s'enregistrer dès qu'elle aura lancé l'impression. je n'ai pas l'impression que les 2 dernières lignes de la macro fonctionnent ?! ActiveWorkbook.Saved = True ActiveWorkbook.Close en mettant de la couleur dans mon fichier rien ne se passe, il ne se referme pas ???
Sub macrodefrabcois()
Dim Fichier As String Dim x As String
x = Sheets("reception").Range("i1").Value Fichier = Format(Sheets("sipac").Range("F2"), "dd mm yy") & " " & x & ".xls"
Ferme en enregistrant le classeur actif qui est celui créé par la copie de la feuille "sipac" avec la ligne :
Sheets("sipac").Copy
Si tu veux en plus fermer ton classeur TST sans l'enregistrer il faut rajouter la ligne :
ActiveWorkbook.Close SaveChanges:úlse
à la suite
La copie sipac ne répond pas tout à fait à ce que tu attends Mon code fait une copie intégrale de la feuille "sipac" y compris ses lignes de code correspondant au fonctionnement des boutons qui se trouve dans son VBA Ce qui donne à son ouverture la demande d'activation de Macros De plus une liaison est instaurée entre cette copie et ton fichier "TST" liée à la présence de la formule en G2
Je te propose pour résoudre toutes ces imperfections un nouveau code :
Dim Fichier As String Dim x As String Chemin = ThisWorkbook.Path x = Sheets("reception").Range("i1").Value Fichier = Format(Sheets("sipac").Range("F2"), "dd mm yy") & " " & x & ".xls" Sheets("sipac").Cells.Copy Workbooks.Add ActiveSheet.Range("A1").PasteSpecial Paste:=xlPasteValues ActiveSheet.Range("A1").PasteSpecial Paste:=xlPasteFormats ActiveSheet.Name = "sipac" ActiveWorkbook.SaveAs Filename:=Chemin & "" & Fichier ActiveWorkbook.Close ActiveWorkbook.Close SaveChanges:úlse
La copie de la feuille "sipac" (Sheets("sipac").Cells.Copy) est rapportée dans un nouveau classeur (Workbooks.Add) avec ses seules valeurs et format (ActiveSheet.Range("A1").PasteSpecial Paste:=xlPasteValues
ActiveSheet.Range("A1").PasteSpecial Paste:=xlPasteFormats) La nouvelle feuille utilisée est renommée "sipac" (ActiveSheet.Name = "sipac") Le nouveau classeur est enregistré avec les paramètres souhaités (ActiveWorkbook.SaveAs Filename:=Chemin & "" & Fichier) Puis fermé (ActiveWorkbook.Close) Le classeur "TST" est à son tour fermé sans être enregistré (ActiveWorkbook.Close SaveChanges:úlse)
Tu trouveras sur ce lien ton classeur modifié ainsi
Ferme en enregistrant le classeur actif qui est celui créé par la
copie de la feuille "sipac" avec la ligne :
Sheets("sipac").Copy
Si tu veux en plus fermer ton classeur TST sans l'enregistrer il faut
rajouter la ligne :
ActiveWorkbook.Close SaveChanges:=False
à la suite
La copie sipac ne répond pas tout à fait à ce que tu attends
Mon code fait une copie intégrale de la feuille "sipac" y compris ses
lignes de code correspondant au fonctionnement des boutons qui se
trouve dans son VBA
Ce qui donne à son ouverture la demande d'activation de Macros
De plus une liaison est instaurée entre cette copie et ton fichier
"TST" liée à la présence de la formule en G2
Je te propose pour résoudre toutes ces imperfections un nouveau code :
Dim Fichier As String
Dim x As String
Chemin = ThisWorkbook.Path
x = Sheets("reception").Range("i1").Value
Fichier = Format(Sheets("sipac").Range("F2"), "dd mm yy") & " " & x &
".xls"
Sheets("sipac").Cells.Copy
Workbooks.Add
ActiveSheet.Range("A1").PasteSpecial Paste:=xlPasteValues
ActiveSheet.Range("A1").PasteSpecial Paste:=xlPasteFormats
ActiveSheet.Name = "sipac"
ActiveWorkbook.SaveAs Filename:=Chemin & "" & Fichier
ActiveWorkbook.Close
ActiveWorkbook.Close SaveChanges:=False
La copie de la feuille "sipac" (Sheets("sipac").Cells.Copy) est
rapportée dans un nouveau classeur (Workbooks.Add) avec ses seules
valeurs et format (ActiveSheet.Range("A1").PasteSpecial
Paste:=xlPasteValues
ActiveSheet.Range("A1").PasteSpecial Paste:=xlPasteFormats)
La nouvelle feuille utilisée est renommée "sipac" (ActiveSheet.Name =
"sipac")
Le nouveau classeur est enregistré avec les paramètres souhaités
(ActiveWorkbook.SaveAs Filename:=Chemin & "" & Fichier)
Puis fermé (ActiveWorkbook.Close)
Le classeur "TST" est à son tour fermé sans être enregistré
(ActiveWorkbook.Close SaveChanges:=False)
Tu trouveras sur ce lien ton classeur modifié ainsi
Ferme en enregistrant le classeur actif qui est celui créé par la copie de la feuille "sipac" avec la ligne :
Sheets("sipac").Copy
Si tu veux en plus fermer ton classeur TST sans l'enregistrer il faut rajouter la ligne :
ActiveWorkbook.Close SaveChanges:úlse
à la suite
La copie sipac ne répond pas tout à fait à ce que tu attends Mon code fait une copie intégrale de la feuille "sipac" y compris ses lignes de code correspondant au fonctionnement des boutons qui se trouve dans son VBA Ce qui donne à son ouverture la demande d'activation de Macros De plus une liaison est instaurée entre cette copie et ton fichier "TST" liée à la présence de la formule en G2
Je te propose pour résoudre toutes ces imperfections un nouveau code :
Dim Fichier As String Dim x As String Chemin = ThisWorkbook.Path x = Sheets("reception").Range("i1").Value Fichier = Format(Sheets("sipac").Range("F2"), "dd mm yy") & " " & x & ".xls" Sheets("sipac").Cells.Copy Workbooks.Add ActiveSheet.Range("A1").PasteSpecial Paste:=xlPasteValues ActiveSheet.Range("A1").PasteSpecial Paste:=xlPasteFormats ActiveSheet.Name = "sipac" ActiveWorkbook.SaveAs Filename:=Chemin & "" & Fichier ActiveWorkbook.Close ActiveWorkbook.Close SaveChanges:úlse
La copie de la feuille "sipac" (Sheets("sipac").Cells.Copy) est rapportée dans un nouveau classeur (Workbooks.Add) avec ses seules valeurs et format (ActiveSheet.Range("A1").PasteSpecial Paste:=xlPasteValues
ActiveSheet.Range("A1").PasteSpecial Paste:=xlPasteFormats) La nouvelle feuille utilisée est renommée "sipac" (ActiveSheet.Name = "sipac") Le nouveau classeur est enregistré avec les paramètres souhaités (ActiveWorkbook.SaveAs Filename:=Chemin & "" & Fichier) Puis fermé (ActiveWorkbook.Close) Le classeur "TST" est à son tour fermé sans être enregistré (ActiveWorkbook.Close SaveChanges:úlse)
Tu trouveras sur ce lien ton classeur modifié ainsi