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

3 réponses

1 2
Avatar
AH60
Re bonsoir,


voici le code est légèrement modifier

Sub ArchiveFeuilles()
Dim sh, wbk As Workbook, tmp As Workbook
Set tmp = ThisWorkbook ' classeur active
xSheets = Application.SheetsInNewWorkbook
Application.SheetsInNewWorkbook = 3
Set wbk = Workbooks.Add ' nouveau classeur
Application.SheetsInNewWorkbook = xSheets
With wbk
.Sheets(1).Name = "Inscription"
.Sheets(2).Name = "Situation Candidat"
.Sheets(3).Name = "Formation Candidat"
End With

'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

Abed_H




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", "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 -- Masquer le texte des messages précédents -



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









Avatar
AH60
plus simple

Option Base 1
Sub ArchiveFeuilles()
Dim sh, wbk As Workbook, tmp As Workbook
Arr = Array("Inscription", "Situation Candidat", "Formation Candidat") ' au
besoin ajoute des feuilles
Set tmp = ThisWorkbook ' classeur active
Application.SheetsInNewWorkbook = UBound(Arr)
Set wbk = Workbooks.Add ' nouveau classeur
For i = 1 To UBound(Arr)
wbk.Sheets(i).Name = Arr(i)
Next i

For Each sh In Arr
'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

Bonne nuit Abed_H



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", "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 -- Masquer le texte des messages précédents -



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









Avatar
jpierrethillard
AH60,

Désolé d'avoir tardé à te répondre pour clore la question.
Tout fonctionne correctement. Je vais pouvoir enrichir la macro.
Merci pour le sérieux.

JP

On 4 jan, 22:19, AH60 wrote:
plus simple

Option Base 1
Sub ArchiveFeuilles()
Dim sh, wbk As Workbook, tmp As Workbook
Arr = Array("Inscription", "Situation Candidat", "Formation Candidat") ' au
besoin ajoute des feuilles
Set tmp = ThisWorkbook ' classeur active
  Application.SheetsInNewWorkbook = UBound(Arr)
  Set wbk = Workbooks.Add ' nouveau classeur
        For i = 1 To UBound(Arr)
            wbk.Sheets(i).Name = Arr(i)
      Next i

   For Each sh In Arr
     '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

Bonne nuit  Abed_H




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", " 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 d e
plusieurs onglets d'un même classeur.
Avec une particularité, car un onglet doit conserver les formu les pour
une exploitation ultérieure.
Je n'ai rien trouvé  dans mes recherches que je sache adapte r.
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 d e 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 -- Masquer le text e 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