Sauvegarder deux onglets en un seul

  • Initiateur de la discussion Initiateur de la discussion fenec
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

fenec

XLDnaute Impliqué
Bonjour le forum,

Besoin de votre aide car je ne parviens pas à faire ce que je désire malgré de nombreuses recherches.
Je m’explique, j’utilise pour l’instant un code
Code:
Sub copier_onglet_2()

d = Sheets(1).Cells(5, 3) 'Sauvegarde le calendrier
For e = 1 To e
    Sheets("Calendrier").Copy after:=Sheets(Sheets.Count)

    ActiveSheet.UsedRange.Value = ActiveSheet.UsedRange.Value
    ActiveSheet.Name = "Congés " & d
        
        Sheets("Etat de Congés").Copy after:=Sheets(Sheets.Count)
    ActiveSheet.UsedRange.Value = ActiveSheet.UsedRange.Value
    ActiveSheet.Name = "Etat " & d
    
    Next e
End Sub
qui fonctionne très bien même si pas pro (car je ne le suis pas … lol) qui m’enregistre deux onglets en en créant deux autres ( bouton sauvegarde du fichier joint) d’où ma demande :
Est il possible de faire un code qui me sauvegarde ces deux onglets mais en un seul
Cordialement
Philippe
 

Pièces jointes

Re : Sauvegarder deux onglets en un seul

Bonjour Bernard, le forum,
Merci pour ton aide, cela correspond à ma demande.
Reste à conserver la largeur des colonnes et se sera bon.
Je pense que je dois faire une boucle sur chaque colonne mais pas sur...Je me lance dans cette voix je verrais bien
Cordialement,
Philippe
 
Re : Sauvegarder deux onglets en un seul

Re,
J'ai trouvé en modifiant:

Code:
 Worksheets("Etat de Congés").Range("A4:N18").Copy ActiveSheet.Range("AM4")

par

Code:
Worksheets("Etat de Congés").Range("A:N").Copy Destination:=Range("AM:AZ")

Mais je ne comprends pas pourquoi la copie se fait en ("AN") !!!

Et comment faire pour ne pas copier le bouton (Ce point est résolu propriété du bouton)

Je continue à chercher

Si une autre solution je suis preneur

Cordialement,
Philippe
 

Pièces jointes

Dernière édition:
Re : Sauvegarder deux onglets en un seul

Bonjour Philippe, bbb38, le Forum,

Mais je ne comprends pas pourquoi la copie se fait en ("AN") !!!
Rien de plus normal, car tu copies la plage "A:N" or, la colonne A est vide. La copie se fait bien en colonne AM mais les premières valeurs démarrent en colonne AN.

Par ailleurs, ton code comporte quelques erreurs de logique, notamment la boucle For e = 1 To e qui est parfaitement inutile (c'est comme si tu écrivais For e = 1 To 1, n'est-ce pas?). D'autre part, il n'est pas nécessaire d'activer la feuille "Congés " & d puisqu'elle est déjà activée par la copie.

Voici donc ton code optimisé et qui me semble remplir le rôle que tu en attends:

Code:
Sub copier_onglet_4()
d = Sheets(1).Cells(5, 3) 'Sauvegarde le calendrier
Sheets("Calendrier").Copy after:=Sheets(Sheets.Count)
With ActiveSheet
  .Name = "Congés " & d
  Worksheets("Etat de Congés").Range("B:N").Copy Destination:=.Range("am:az")
End With
End Sub
Cordialement.
 
Re : Sauvegarder deux onglets en un seul

Bonjour Papou-net, le forum,
Merci pour ton aide et tes explications très claires, j'ai rajouté dans le code la suppression des formules afin d'alléger un peu en suivant ton conseil, à savoir ne pas réactiver la feuille. J'espère donc avoir bien compris tes conseils...
Code:
Sub copier_onglet_6()
 d = Sheets(1).Cells(5, 3) 'Sauvegarde le calendrier
 Sheets("Calendrier").Copy after:=Sheets(Sheets.Count)
 
 With ActiveSheet
   .Name = "Congés " & d
   Worksheets("Etat de Congés").Range("B:N").Copy Destination:=.Range("am:az")
   .UsedRange.Value = .UsedRange.Value
 End With
 End Sub

Cordialement ,
Philippe
 
Re : Sauvegarder deux onglets en un seul

Bonjour le forum,

Je reviens vers vous car je rencontre un problème que je n’avais pas remarqué lors de l’essai du code optimisé par Papou-net.
Je m’explique :
Lors de la copie de la feuille « Etat de Congés » les formules sont modifiées ce qui par conséquent ne me convient pas vu que je souhaite les valeurs de cette feuille.
J’ai à l’aide de l’enregistreur modifié ce code mais il me semble que celui-ci peut être une fois encore optimisé par les rois du vba que vous êtes.
Bouton sauvegarde 3 du fichier joint.
Cordialement,

Philippe.
 

Pièces jointes

Re : Sauvegarder deux onglets en un seul

Bonsoir Philippe,

Peut-être comme ceci, si j'ai bien compris ?

Code:
Sub copier_onglet_2()

d = Sheets(1).Cells(5, 3) 'Sauvegarde le calendrier
Sheets("Calendrier").Copy after:=Sheets(Sheets.Count)
ActiveSheet.UsedRange.Formula = ActiveSheet.UsedRange.Value
With ActiveSheet
   .Name = "Congés " & d
    Sheets("Etat de Congés").Columns("B:M").Copy .Columns("AM:AX")
    .Columns("AM:AX").Formula = .Columns("AM:AX").Value
End With
End Sub
Cordialement.
 
Re : Sauvegarder deux onglets en un seul

Bonsoir Papou-net,

Viens de tester ton code mais hélas il ne répond pas à mon souhait.
Les valeurs de la feuille état de congés ne sont pas copiées et les autres sont à zéro.
Je continu mes recherches mais merci de ton intervention.
Cordialement
Philippe
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

V
Réponses
3
Affichages
965
V
J
Réponses
14
Affichages
2 K
julien pain
J
C
  • Question Question
Réponses
23
Affichages
4 K
D
Réponses
7
Affichages
1 K
doudou080
D
Réponses
5
Affichages
932
D
Réponses
3
Affichages
2 K
demonsares
D
M
Réponses
2
Affichages
985
M
D
Réponses
17
Affichages
2 K
DOMERGO
D
Retour