Nouvelle feuille +...

  • Initiateur de la discussion Initiateur de la discussion Pascale
  • 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 !

P

Pascale

Guest
Bonjour à toutes et tous,

Je cherche à créer une nouvelle Feuille avec une copie de la plage A1:Ap41 de toutes les feuilles existantes.

J'ai vu le fil de Michel, mais je ne sais pas par où prendre le code.

Si vous pouviez m'aider!

Merci beaucoup.
Pascale
 
Bonsoir Patrick, le forum,

En fait j'ai trouvé comment créer une feuille, mais il me reste à copier les plages 'A1:AQ50' de chaque feuille visible, dans ma nouvelle feuille, les unes à la suite des autres verticalement.

Merci de m'aider Patrick

Pascale
 
Bonsoir Pascale, Patrick, le forum,

la macro ci-dessous ajoute un onglet 'dern' (sauf s'il existe déjà), le place à la fin du classeur et copie la plage A1:AQ50 de tous les autres onglets pour venir la coller dans l'onglet 'dern' les unes en dessous des autres. Je pense que c'est ce que tu désirais :
Option Explicit 'oblige à déclarer toutes les variables

Sub Macro2()
Dim sh As Worksheet 'déclare la variable sh
Dim dest As Range 'déclare la variable dest
Dim x As Byte 'déclare la variable x
For Each sh In Sheets 'boucle sur tous les onglets du classeur
If sh.Name = 'dern' Then GoTo suite 'si l'onglet s'appelle 'dern' pas d'ajout (va à la balise 'suite')
Next sh 'prochain onglet de la boucle
Sheets.Add 'ajoute un onglet
ActiveSheet.Move After:=Sheets(Sheets.Count) 'le place à la fin
ActiveSheet.Name = 'dern' 'le nomme 'dern'
suite: 'balise
For x = 1 To Sheets.Count - 1 'boucle sur tous les onglets sauf le dernier
If Sheets('dern').Range('A1').Value = '' Then 'condition : si A1 de 'dern' est vide
Set dest = Sheets('dern').Range('A1') 'définit la variable dest
Else 'sinon
Set dest = Sheets('dern').Range('A65536').End(xlUp).Offset(1, 0) 'redéfinit la variable dest
End If 'fin de la condition
Sheets(x).Range('A1:AQ50').Copy Destination:=dest 'copy et colle
Next x 'prochain onglet de la boucle
End Sub
 
Bonsoir Robert,le forum,

C'était à peu près ça, à ceci près que qqsoit A1 j'écrivait en
(50*(x-1))+1, mais j'ai réussi a remédier au Pb. Par contre ce que je ne sais pas faire non plus, c'est que lorsque je copie la plage 'A1:AQ50', je voudrais qu'il me copie aussi le format des cellules (taille, couleur, ...).

Merci pour ton aide Robert.

Pascale
 
Bonjour Baside, le Forum,

j'ai essayé ton fichier Baside, mais il ne copie pas le format des cellules (couleur, taille, fusion, etc...) et c'est ce dont j'ai besoin. Si tu savais comment faire, quel parametre ou quel code ajouter, cela m'aiderais beaucoups. Merci

Pascale
 
Re Baside,

Après un nouvel essais, la couleur et la fusion est copier il n'y a que la taille qui ne l'est pas. Mais quels sont les parametres qui font que ces formats soient copiés?

@+

Pascale
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
3
Affichages
324
Retour