Nouvelle feuille +...

  • Initiateur de la discussion Pascale
  • Date de début
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
 
P

Pascale

Guest
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
 

Robert

XLDnaute Barbatruc
Repose en paix
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
 
P

Pascale

Guest
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
 

Baside

XLDnaute Impliqué
Bonjour Pascale le fil le forum

Voir le fichier joint

Il n'y a plus qu'à adapter

Baside [file name=NouvellefeuilleCopieColler.zip size=8946]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/NouvellefeuilleCopieColler.zip[/file]
 

Pièces jointes

  • NouvellefeuilleCopieColler.zip
    8.7 KB · Affichages: 15
P

Pascale

Guest
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
 
P

Pascale

Guest
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
 

Baside

XLDnaute Impliqué
Rebonjour

ET voila avec un code réduit à peau de chagrin

Baside [file name=NouvellefeuilleCopieCollerPlusSimple.zip size=10721]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/NouvellefeuilleCopieCollerPlusSimple.zip[/file]
 

Pièces jointes

  • NouvellefeuilleCopieCollerPlusSimple.zip
    10.5 KB · Affichages: 11

Discussions similaires

Statistiques des forums

Discussions
312 331
Messages
2 087 360
Membres
103 528
dernier inscrit
hplus