OVH Cloud OVH Cloud

VBA : sauvegarde partielle dans le repertoire actif...?

5 réponses
Avatar
Domi
Rebonsoir,

deux questions de sauvagarde....

Sub SauverClasseur()
Dim strDate As String
Count = Len(ActiveWorkbook.Name)
Name = "Sauvegarde " & Left(ActiveWorkbook.Name, Count - 4) & " "
strDate = Format(Date, "dd-mm-yy") & " " & Format(Time, "h-mm-ss")
ThisWorkbook.SaveCopyAs Filename:=Name & strDate & ".xls"
End Sub

Ce bout de code récupéré et adapté me permet de sauvagarder le classeur
actif avec un nouveau nom incluant la date et l'heure...
Tout va bien jusque là !

2 questions
1°) Comment faire en sorte que la sauvegarde se fasse dans le même
repertoire que celui du classeur dont on fait la sauvegarde ? (actuellment
cela se fait dans mes documents (sous WK2)

2°) Plus delicat je pense... comment faire pour ne sauvegarder que quelques
feuilles précises ("titi", "toto" et "tata" par exemple...) au lieu de
l'ensemble des feuilles ?

Merci
Domi

5 réponses

Avatar
Philippe.R
Bonjour Domi,

1) Une manière de faire pour récupérer le bon chemin :

Sub quelchem()
Dim lechem As String
lechem = Left(ThisWorkbook.FullName, Len(ThisWorkbook.FullName) - Len(ThisWorkbook.Name) - 1)
MsgBox lechem
ChDir lechem
End Sub

le chdir indiquant le bon dossier / sous dossier

2) une piste encore, consistant à supprimer les feuilles indésirables (pour peu qu'elles soient
identifiables) avant de sauver le classeur sous le nouveau nom.

ou bien cette commande :

Sheets(Array("Titi", "Toto","Tata")).Copy

qui créée une copie des feuilles souhaitées dans un nouveau classeur qu'il ne te reste qu'à renommer

--
Amicales Salutations
Retirer A_S_ pour répondre.
XL 97 / 2000 / 2002

"Domi" a écrit dans le message de news:%
Rebonsoir,

deux questions de sauvagarde....

Sub SauverClasseur()
Dim strDate As String
Count = Len(ActiveWorkbook.Name)
Name = "Sauvegarde " & Left(ActiveWorkbook.Name, Count - 4) & " "
strDate = Format(Date, "dd-mm-yy") & " " & Format(Time, "h-mm-ss")
ThisWorkbook.SaveCopyAs Filename:=Name & strDate & ".xls"
End Sub

Ce bout de code récupéré et adapté me permet de sauvagarder le classeur
actif avec un nouveau nom incluant la date et l'heure...
Tout va bien jusque là !

2 questions
1°) Comment faire en sorte que la sauvegarde se fasse dans le même
repertoire que celui du classeur dont on fait la sauvegarde ? (actuellment
cela se fait dans mes documents (sous WK2)

2°) Plus delicat je pense... comment faire pour ne sauvegarder que quelques
feuilles précises ("titi", "toto" et "tata" par exemple...) au lieu de
l'ensemble des feuilles ?

Merci
Domi




Avatar
Domi
Merci, je vais essayer d'intégrer cela dans mes codes existants.

Domi

"Philippe.R" a écrit dans le message de
news:
Bonjour Domi,

1) Une manière de faire pour récupérer le bon chemin :

Sub quelchem()
Dim lechem As String
lechem = Left(ThisWorkbook.FullName, Len(ThisWorkbook.FullName) -
Len(ThisWorkbook.Name) - 1)

MsgBox lechem
ChDir lechem
End Sub

le chdir indiquant le bon dossier / sous dossier

2) une piste encore, consistant à supprimer les feuilles indésirables
(pour peu qu'elles soient

identifiables) avant de sauver le classeur sous le nouveau nom.

ou bien cette commande :

Sheets(Array("Titi", "Toto","Tata")).Copy

qui créée une copie des feuilles souhaitées dans un nouveau classeur qu'il
ne te reste qu'à renommer


--
Amicales Salutations
Retirer A_S_ pour répondre.
XL 97 / 2000 / 2002

"Domi" a écrit dans le message de
news:%

Rebonsoir,

deux questions de sauvagarde....

Sub SauverClasseur()
Dim strDate As String
Count = Len(ActiveWorkbook.Name)
Name = "Sauvegarde " & Left(ActiveWorkbook.Name, Count - 4) & " "
strDate = Format(Date, "dd-mm-yy") & " " & Format(Time, "h-mm-ss")
ThisWorkbook.SaveCopyAs Filename:=Name & strDate & ".xls"
End Sub

Ce bout de code récupéré et adapté me permet de sauvagarder le classeur
actif avec un nouveau nom incluant la date et l'heure...
Tout va bien jusque là !

2 questions
1°) Comment faire en sorte que la sauvegarde se fasse dans le même
repertoire que celui du classeur dont on fait la sauvegarde ?
(actuellment


cela se fait dans mes documents (sous WK2)

2°) Plus delicat je pense... comment faire pour ne sauvegarder que
quelques


feuilles précises ("titi", "toto" et "tata" par exemple...) au lieu de
l'ensemble des feuilles ?

Merci
Domi








Avatar
Philippe.R
C'était avec plaisir Domi !
--
Bon Courage et Amicales Salutations

"Domi" a écrit dans le message de news:etSwH7%
Merci, je vais essayer d'intégrer cela dans mes codes existants.

Domi

"Philippe.R" a écrit dans le message de
news:
Bonjour Domi,

1) Une manière de faire pour récupérer le bon chemin :

Sub quelchem()
Dim lechem As String
lechem = Left(ThisWorkbook.FullName, Len(ThisWorkbook.FullName) -
Len(ThisWorkbook.Name) - 1)

MsgBox lechem
ChDir lechem
End Sub

le chdir indiquant le bon dossier / sous dossier

2) une piste encore, consistant à supprimer les feuilles indésirables
(pour peu qu'elles soient

identifiables) avant de sauver le classeur sous le nouveau nom.

ou bien cette commande :

Sheets(Array("Titi", "Toto","Tata")).Copy

qui créée une copie des feuilles souhaitées dans un nouveau classeur qu'il
ne te reste qu'à renommer


--
Amicales Salutations
Retirer A_S_ pour répondre.
XL 97 / 2000 / 2002

"Domi" a écrit dans le message de
news:%

Rebonsoir,

deux questions de sauvagarde....

Sub SauverClasseur()
Dim strDate As String
Count = Len(ActiveWorkbook.Name)
Name = "Sauvegarde " & Left(ActiveWorkbook.Name, Count - 4) & " "
strDate = Format(Date, "dd-mm-yy") & " " & Format(Time, "h-mm-ss")
ThisWorkbook.SaveCopyAs Filename:=Name & strDate & ".xls"
End Sub

Ce bout de code récupéré et adapté me permet de sauvagarder le classeur
actif avec un nouveau nom incluant la date et l'heure...
Tout va bien jusque là !

2 questions
1°) Comment faire en sorte que la sauvegarde se fasse dans le même
repertoire que celui du classeur dont on fait la sauvegarde ?
(actuellment


cela se fait dans mes documents (sous WK2)

2°) Plus delicat je pense... comment faire pour ne sauvegarder que
quelques


feuilles précises ("titi", "toto" et "tata" par exemple...) au lieu de
l'ensemble des feuilles ?

Merci
Domi













Avatar
Alain CROS
Bonjour

Peut être ThisWorkbook.Path ?

Sub SauverClasseur()
Dim strDate$, Name$
With ThisWorkbook
Name = .Path & .Parent.PathSeparator & "Sauvegarde " & Left$(.Name, Len(.Name) - 4&) & " "
strDate = Format(Date, "dd-mm-yy") & " " & Format(Time, "h-mm-ss")
.SaveCopyAs Filename:=Name & strDate & ".xls"
End With
End Sub

Alain CROS

"Philippe.R" a écrit dans le message de news:
Bonjour Domi,

1) Une manière de faire pour récupérer le bon chemin :

Sub quelchem()
Dim lechem As String
lechem = Left(ThisWorkbook.FullName, Len(ThisWorkbook.FullName) - Len(ThisWorkbook.Name) - 1)
MsgBox lechem
ChDir lechem
End Sub

le chdir indiquant le bon dossier / sous dossier

2) une piste encore, consistant à supprimer les feuilles indésirables (pour peu qu'elles soient
identifiables) avant de sauver le classeur sous le nouveau nom.

ou bien cette commande :

Sheets(Array("Titi", "Toto","Tata")).Copy

qui créée une copie des feuilles souhaitées dans un nouveau classeur qu'il ne te reste qu'à renommer

--
Amicales Salutations
Retirer A_S_ pour répondre.
XL 97 / 2000 / 2002



Avatar
Domi
Excellent ! ça me fait gagner beaucoup de temps ;o))
Je note ça dans mes tablettes.
Domi

"Alain CROS" a écrit dans le message de
news:
Bonjour

Peut être ThisWorkbook.Path ?

Sub SauverClasseur()
Dim strDate$, Name$
With ThisWorkbook
Name = .Path & .Parent.PathSeparator & "Sauvegarde " &
Left$(.Name, Len(.Name) - 4&) & " "

strDate = Format(Date, "dd-mm-yy") & " " & Format(Time, "h-mm-ss")
.SaveCopyAs Filename:=Name & strDate & ".xls"
End With
End Sub

Alain CROS

"Philippe.R" a écrit dans le message de news:


Bonjour Domi,

1) Une manière de faire pour récupérer le bon chemin :

Sub quelchem()
Dim lechem As String
lechem = Left(ThisWorkbook.FullName, Len(ThisWorkbook.FullName) -
Len(ThisWorkbook.Name) - 1)


MsgBox lechem
ChDir lechem
End Sub

le chdir indiquant le bon dossier / sous dossier

2) une piste encore, consistant à supprimer les feuilles indésirables
(pour peu qu'elles soient


identifiables) avant de sauver le classeur sous le nouveau nom.

ou bien cette commande :

Sheets(Array("Titi", "Toto","Tata")).Copy

qui créée une copie des feuilles souhaitées dans un nouveau classeur
qu'il ne te reste qu'à renommer



--
Amicales Salutations
Retirer A_S_ pour répondre.
XL 97 / 2000 / 2002