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

archiver plusieurs onglets

13 réponses
Avatar
jpierrethillard
Bonjour,

Est-ce que quelqu'un aurait une routine VBA pour la sauvegarde de
plusieurs onglets d'un m=EAme classeur.
Avec une particularit=E9, car un onglet doit conserver les formules pour
une exploitation ult=E9rieure.
Je n'ai rien trouv=E9 dans mes recherches que je sache adapter.
Merci d'avance

JP

10 réponses

1 2
Avatar
Ellimac
Bonjour,

Qu'entends-tu par archiver ?

Camille


Bonjour,

Est-ce que quelqu'un aurait une routine VBA pour la sauvegarde de
plusieurs onglets d'un même classeur.
Avec une particularité, car un onglet doit conserver les formules pour
une exploitation ultérieure.
Je n'ai rien trouvé dans mes recherches que je sache adapter.
Merci d'avance

JP



Avatar
jpierrethillard
On 4 jan, 13:49, Ellimac wrote:
Bonjour,

Qu'entends-tu par archiver ?

Camille


Ellimac,


Créer un nouveau classeur et y sauvegarder certains onglets.
C'est que je voulais exprimer par "archiver"

JP


Bonjour,

Est-ce que quelqu'un aurait une routine VBA pour la sauvegarde de
plusieurs onglets d'un même classeur.
Avec une particularité, car un onglet doit conserver les formules pour
une exploitation ultérieure.
Je n'ai rien trouvé  dans mes recherches que je sache adapter.
Merci d'avance

JP- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -



Avatar
Ellimac
Re,

Sans plus de précisions il faudrait faire un enregistrer sous puis supprimer
les onglets inutiles et éventuellement Copier en valeur certaines cellules.
Le tout en mode enregistrement te donneras un début de réponse.
Ce que je ne vois pas dans ton automatisation c'est quels sont les onglets à
conserver et à supprimer, y a-t'il une logique ? Faut-il une boîte de
dialogue demandant d'indiquer le n° ou le nom de la feuille à conserver ou à
supprimer ?

Camille


On 4 jan, 13:49, Ellimac wrote:
Bonjour,

Qu'entends-tu par archiver ?

Camille


Ellimac,


Créer un nouveau classeur et y sauvegarder certains onglets.
C'est que je voulais exprimer par "archiver"

JP


Bonjour,

Est-ce que quelqu'un aurait une routine VBA pour la sauvegarde de
plusieurs onglets d'un même classeur.
Avec une particularité, car un onglet doit conserver les formules pour
une exploitation ultérieure.
Je n'ai rien trouvé dans mes recherches que je sache adapter.
Merci d'avance

JP- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -







Avatar
FFO
Salut à toi

Ce code pour archiver tous les Onglets d'un classeur dans un nouveau classeur

Archive = Workbooks.Add.Name
Workbooks("Classeur source.xls").Activate
For i = 1 To Sheets.Count
Workbooks(Archive).Activate
Workbooks(Archive).Sheets.Add
After:=Worksheets(Workbooks(Archive).Worksheets.Count)
Workbooks("Classeur source.xls").Activate
Workbooks(Archive).ActiveSheet.Name = Sheets(i).Name
Sheets(i).Cells.Copy Workbooks(Archive).Sheets(Sheets(i).Name).Range("A1")
Next

Si tu ne veux archiver que quelques onglets il nous faut un repère pour les
cibler et inclure une condition appropriée comme par exemple :

Archive = Workbooks.Add.Name
Workbooks("Classeur source.xls").Activate
For i = 1 To Sheets.Count
If Sheets(i).Name = "Nom de l'Onglet" Then '(A adapter)
Workbooks(Archive).Activate
Workbooks(Archive).Sheets.Add
After:=Worksheets(Workbooks(Archive).Worksheets.Count)
Workbooks("Classeur source.xls").Activate
Workbooks(Archive).ActiveSheet.Name = Sheets(i).Name
Sheets(i).Cells.Copy Workbooks(Archive).Sheets(Sheets(i).Name).Range("A1")
End If
Next


Espérant avoir répondu à ton attente
Dis moi !!!


On 4 jan, 13:49, Ellimac wrote:
Bonjour,

Qu'entends-tu par archiver ?

Camille


Ellimac,


Créer un nouveau classeur et y sauvegarder certains onglets.
C'est que je voulais exprimer par "archiver"

JP


Bonjour,

Est-ce que quelqu'un aurait une routine VBA pour la sauvegarde de
plusieurs onglets d'un même classeur.
Avec une particularité, car un onglet doit conserver les formules pour
une exploitation ultérieure.
Je n'ai rien trouvé dans mes recherches que je sache adapter.
Merci d'avance

JP- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -







Avatar
AH60
Bonjour

une variante

Sub ArchiveFeuilles()
Dim sh, wbk As Workbook, tmp As Workbook
Set tmp = ThisWorkbook ' classeur active
xSheets = Application.SheetsInNewWorkbook
Application.SheetsInNewWorkbook = 5 'le nombre de feuilles de distination
(à adapter)
Set wbk = Workbooks.Add ' nouveau classeur
Application.SheetsInNewWorkbook = xSheets

'feuilles consernées
For Each sh In Array("Feuil1", "Feuil2", "Feuil3", "Feuil4", "Feuil5") 'à
adapter
'copie la plage utilisée de la feuille
tmp.Sheets(sh).UsedRange.Copy
'la colle dans la feuille du 2èmè classeur
wbk.Sheets(sh).Paste
'vide le presse-papiers
Application.CutCopyMode = False
Next
End Sub

Abed_H




Bonjour,

Est-ce que quelqu'un aurait une routine VBA pour la sauvegarde de
plusieurs onglets d'un même classeur.
Avec une particularité, car un onglet doit conserver les formules pour
une exploitation ultérieure.
Je n'ai rien trouvé dans mes recherches que je sache adapter.
Merci d'avance

JP



Avatar
jpierrethillard
Re bonjour,


Désolé de ne répondre que maintenant!
Je viens de tester la macro de AH60
La macro plante. J'ai décalé la ligne où le bug est signalé!

Si quelqu'un sait! Moi je suis trop piiiitiiiit pour savoir! LOL!
Merci

JP


Bonjour,

Est-ce que quelqu'un aurait une routine VBA pour la sauvegarde de
plusieurs onglets d'un même classeur.
Avec une particularité, car un onglet doit conserver les formules pour
une exploitation ultérieure.
Je n'ai rien trouvé dans mes recherches que je sache adapter.
Merci d'avance

JP
On 4 jan, 15:18, AH60 wrote:


Bonjour

une variante

Sub ArchiveFeuilles()
Dim sh, wbk As Workbook, tmp As Workbook
Set tmp = ThisWorkbook ' classeur active
 xSheets = Application.SheetsInNewWorkbook
  Application.SheetsInNewWorkbook = 5 'le nombre de feuilles de distin ation
(à adapter)
  Set wbk = Workbooks.Add ' nouveau classeur
  Application.SheetsInNewWorkbook = xSheets

   'feuilles consernées
   For Each sh In Array("Feuil1", "Feuil2", "Feuil3", "Feuil4", "Feuil 5") 'à
adapter
        'copie la plage utilisée de la feuille
        tmp.Sheets(sh).UsedRange.Copy
        'la colle dans la feuille du 2èmè classeur
        wbk.Sheets(sh).Paste
        'vide le presse-papiers
        Application.CutCopyMode = False
  Next
End Sub

Abed_H


- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -



Avatar
jpierrethillard
Bonsoir,
je suis désolé mais la macro bloque également.
Pour la variante, le nom du fichier source n'est jamais le même. Le
nom du fichier est composé du nom et prénom d'une personne avec un n°
incrémenté.
Si vous voulez prendre un projet en cours je peux le joindre pour plus
de facilité.
A vous de me dire.
JP

On 4 jan, 14:41, FFO wrote:
Salut à toi

Ce code pour archiver tous les Onglets d'un classeur dans un nouveau class eur

Archive = Workbooks.Add.Name
Workbooks("Classeur source.xls").Activate
For i = 1 To Sheets.Count
Workbooks(Archive).Activate
Workbooks(Archive).Sheets.Add
After:=Worksheets(Workbooks(Archive).Worksheets.Count)
Workbooks("Classeur source.xls").Activate
Workbooks(Archive).ActiveSheet.Name = Sheets(i).Name
 Sheets(i).Cells.Copy Workbooks(Archive).Sheets(Sheets(i).Name).Range("A 1")
 Next

Si tu ne veux archiver que quelques onglets il nous faut un repère pour les
cibler et inclure une condition appropriée comme par exemple :

Archive = Workbooks.Add.Name
Workbooks("Classeur source.xls").Activate
For i = 1 To Sheets.Count
If Sheets(i).Name = "Nom de l'Onglet" Then '(A adapter)
Workbooks(Archive).Activate
Workbooks(Archive).Sheets.Add
After:=Worksheets(Workbooks(Archive).Worksheets.Count)
Workbooks("Classeur source.xls").Activate
Workbooks(Archive).ActiveSheet.Name = Sheets(i).Name
 Sheets(i).Cells.Copy Workbooks(Archive).Sheets(Sheets(i).Name).Range("A 1")
End If
 Next

Espérant avoir répondu à ton attente
Dis moi !!!




On 4 jan, 13:49, Ellimac wrote:
Bonjour,

Qu'entends-tu par archiver ?

Camille




Ellimac,

Créer un nouveau classeur et y sauvegarder certains onglets.
C'est que je voulais exprimer par "archiver"

JP

Bonjour,

Est-ce que quelqu'un aurait une routine VBA pour la sauvegarde de
plusieurs onglets d'un même classeur.
Avec une particularité, car un onglet doit conserver les formules pour
une exploitation ultérieure.
Je n'ai rien trouvé  dans mes recherches que je sache adapter.
Merci d'avance

JP- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -- Masquer le texte de s messages précédents -



- Afficher le texte des messages précédents -





Avatar
jpierrethillard
Ellimac,

Le classeur est composé de 18 onglets. La sauvegarde est constente. Je
souhaite sauvegarder les onglets nommés:
- Inscription
- Situation candiat (ou je dois conserver les formules pour une
utilisation ultérieure)
- Formation candidat
J'ai eu des propositions de macro de FFO et AH60. Comme tu l'as
compris je ne suis pas un surdoué du VBA et je n'arrive pas à adapter
leurs propositions.
Si tu as une autre idée tu me dis.

Merci tout plein de me faire bénéficier de tes connaissances.

JP

Le nom du fichier source est systèmatiquement différent d'une fois à
l'autre puisqu'il est composé du nom&prénom&000 (compteur qui
s'incrémente)

On 4 jan, 14:38, Ellimac wrote:
Re,

Sans plus de précisions il faudrait faire un enregistrer sous puis suppr imer
les onglets inutiles et éventuellement Copier en valeur certaines cellul es.
Le tout en mode enregistrement te donneras un début de réponse.
Ce que je ne vois pas dans ton automatisation c'est quels sont les onglets à
conserver et à supprimer, y a-t'il une logique ? Faut-il une boîte de
dialogue demandant d'indiquer le n° ou le nom de la feuille à conserve r ou à
supprimer ?

Camille




On 4 jan, 13:49, Ellimac wrote:
Bonjour,

Qu'entends-tu par archiver ?

Camille




Ellimac,

Créer un nouveau classeur et y sauvegarder certains onglets.
C'est que je voulais exprimer par "archiver"

JP

Bonjour,

Est-ce que quelqu'un aurait une routine VBA pour la sauvegarde de
plusieurs onglets d'un même classeur.
Avec une particularité, car un onglet doit conserver les formules pour
une exploitation ultérieure.
Je n'ai rien trouvé  dans mes recherches que je sache adapter.
Merci d'avance

JP- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -- Masquer le texte de s messages précédents -



- Afficher le texte des messages précédents -





Avatar
AH60
Re bonjour
les feuilles de ton classeur sont elle nommées feuil1,feuil2,feuil3,....ect


si non change cette ligne du programme en fonction de tes feuilles
For Each sh In Array("Feuil1", "Feuil2", "Feuil3", "Feuil4", "Feuil5")
vérifier aussi cette ligne du programme
Application.SheetsInNewWorkbook = 5
5 c'est le nombre de feuilles de déstination si tu veux copié plus de 5
feuilles il faut que tu change la valeur

Cordialement Abed_H





Re bonjour,


Désolé de ne répondre que maintenant!
Je viens de tester la macro de AH60
La macro plante. J'ai décalé la ligne où le bug est signalé!

Si quelqu'un sait! Moi je suis trop piiiitiiiit pour savoir! LOL!
Merci

JP


Bonjour,

Est-ce que quelqu'un aurait une routine VBA pour la sauvegarde de
plusieurs onglets d'un même classeur.
Avec une particularité, car un onglet doit conserver les formules pour
une exploitation ultérieure.
Je n'ai rien trouvé dans mes recherches que je sache adapter.
Merci d'avance

JP
On 4 jan, 15:18, AH60 wrote:


Bonjour

une variante

Sub ArchiveFeuilles()
Dim sh, wbk As Workbook, tmp As Workbook
Set tmp = ThisWorkbook ' classeur active
xSheets = Application.SheetsInNewWorkbook
Application.SheetsInNewWorkbook = 5 'le nombre de feuilles de distination
(à adapter)
Set wbk = Workbooks.Add ' nouveau classeur
Application.SheetsInNewWorkbook = xSheets

'feuilles consernées
For Each sh In Array("Feuil1", "Feuil2", "Feuil3", "Feuil4", "Feuil5") 'à
adapter
'copie la plage utilisée de la feuille
tmp.Sheets(sh).UsedRange.Copy
'la colle dans la feuille du 2èmè classeur
wbk.Sheets(sh).Paste
'vide le presse-papiers
Application.CutCopyMode = False
Next
End Sub

Abed_H


- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -







Avatar
jpierrethillard
Re bonsoir,

C'est ce que j'ai fait. Voici la macro adapté (je l'espère) come tu le
suggères.
Rien y fait la ligne où j'ai placé des astérisques est blocante.

Sub ArchiveFeuilles()
Dim sh, wbk As Workbook, tmp As Workbook
Set tmp = ThisWorkbook ' classeur active
xSheets = Application.SheetsInNewWorkbook
Application.SheetsInNewWorkbook = 3 'le nombre de feuilles de
distination(à adapter)
Set wbk = Workbooks.Add ' nouveau classeur
Application.SheetsInNewWorkbook = xSheets
'feuilles consernées
For Each sh In Array("Inscription", "Situation Candidat",
"Formation Candidat") 'à adapter
'copie la plage utilisée de la feuille
tmp.Sheets(sh).UsedRange.Copy
'la colle dans la feuille du 2ème classeur
****** wbk.Sheets(sh).Paste
'vide le presse-papiers
Application.CutCopyMode = False
Next
End Sub

Une info sup peut être. Le classeur1.xls souvre avec 3 feuilles (mais
dans mes options j'ai 3 feuilles par défaut) et le bug apparaît.
Si tu sais tu me dis

Re merci

JP
On 4 jan, 20:28, AH60 wrote:
Re bonjour



les feuilles de ton classeur sont elle nommées feuil1,feuil2,feuil3,.... ect
si non change cette ligne du programme en fonction de tes feuilles
    For Each sh In Array("Feuil1", "Feuil2", "Feuil3", "Feuil4", "Feui l5")
vérifier aussi cette ligne du programme
   Application.SheetsInNewWorkbook = 5
5 c'est le nombre de feuilles de déstination si tu veux copié plus de 5
feuilles il faut que tu change la valeur

Cordialement Abed_H




Re bonjour,


Désolé de ne répondre que maintenant!
Je viens de tester la macro de AH60
La macro plante. J'ai décalé la ligne où le bug est signalé!

Si quelqu'un sait! Moi je suis trop piiiitiiiit pour savoir! LOL!
 Merci

JP

Bonjour,

Est-ce que quelqu'un aurait une routine VBA pour la sauvegarde de
plusieurs onglets d'un même classeur.
Avec une particularité, car un onglet doit conserver les formules pour
une exploitation ultérieure.
Je n'ai rien trouvé  dans mes recherches que je sache adapter.
Merci d'avance

JP
On 4 jan, 15:18, AH60 wrote:


Bonjour

une variante

Sub ArchiveFeuilles()
Dim sh, wbk As Workbook, tmp As Workbook
Set tmp = ThisWorkbook ' classeur active
 xSheets = Application.SheetsInNewWorkbook
  Application.SheetsInNewWorkbook = 5 'le nombre de feuilles de di stination
(à adapter)
  Set wbk = Workbooks.Add ' nouveau classeur
  Application.SheetsInNewWorkbook = xSheets

   'feuilles consernées
   For Each sh In Array("Feuil1", "Feuil2", "Feuil3", "Feuil4", "F euil5") 'à
adapter
        'copie la plage utilisée de la feuille
                                                                                                                                                      tmp.Sheets(sh).UsedRange.Copy
        'la colle dans la feuille du 2èmè classeur
        wbk.Sheets(sh).Paste
        'vide le presse-papiers
        Application.CutCopyMode = False
  Next
End Sub

Abed_H




- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -- Masquer le texte de s messages précédents -



- Afficher le texte des messages précédents -





1 2