Garder le format d'un tableau lors d'une copie dans un autre onglet.

zuli3n

XLDnaute Occasionnel
Bonsoir le forum,

Je voudrais savoir si il est possible de copier un tableau dans un autre onglet en gardant la hauteur et largeur des cellules.
A l'heure actuel j'utilise ce code:

Code:
Sheets("Test").Range("A9:G25").Copy Destination:=ActiveSheet.Range("A1")
et j'aimerais éviter d'utiliser ce genre de code:
Code:
Range("A10").RowHeight = 9
Car dans le classeur que je me fais, je serais amené à faire des copies de beaucoup de tableaux de différents onglets sur un même onglet, et ne connaissant pas le nombre exact de tableaux que j'aurais (données), je ne pourrais pas ".RowHeight" chaque cellules .... :) Si vous avez une idée. :)

Je vous joins un fichier d'exemple de copie.

En vous remerciant,
Cordialement.
 

Pièces jointes

  • Test.xlsm
    22.8 KB · Affichages: 40
  • Test.xlsm
    22.8 KB · Affichages: 46
  • Test.xlsm
    22.8 KB · Affichages: 46

Philippe68

XLDnaute Occasionnel
Re : Garder le format d'un tableau lors d'une copie dans un autre onglet.

Bonsoir,

à tester et mettre dans un module
Reproduit la mise en forme de la feuille1 vers la feuille 2
Code:
Option Explicit

Sub MiseForme()
   Range("Feuille1!A1:B16").Select 'plage à modifier selon convenance
    Selection.Copy
    Sheets("Feuille2").Select 'nom de la feuille à modifier
    Range("Feuille2!A1").Select '1ere cellule de la copie
    Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
    Application.CutCopyMode = False
End Sub

Normalement, ça ne garde que le format (sans formules éventuelles)
 

zuli3n

XLDnaute Occasionnel
Re : Garder le format d'un tableau lors d'une copie dans un autre onglet.

Bonsoir Philippe68,

Merci pour ta réponse.
Dans mon fichier exemple, je me sert de deux cellules pour nommer les nouveaux onglets afin d'y copier les tableaux, comment je peux adapter ton code selon le nom de l'onglet ??

Je testerai ton code demain, je vais me coucher, j"ai les yeux qui piquent :)
Encore merci.

Cordialement.
 

Philippe68

XLDnaute Occasionnel
Re : Garder le format d'un tableau lors d'une copie dans un autre onglet.

Re,

je t'ai ajouté 2 onglets (Feuil1 et Feuil2) que j'ai déplacé vers la gauche pour exemple.
dans la feuille TEST, je t'ai mis un bouton (voir code dans module1)
ce bouton fera renommer le 2eme onglet (feuil2)

Dans le nouvel onglet renommé, tu insères le code de ma 1ère réponse
code que tu actionneras via le bouton Mise en Forme (tjrs dans la feuille TEST) et dans le module2
à toi après de faire les modifs dans les codes pour les plages de cellules à copier
 

Pièces jointes

  • Copie de Test.xlsm
    28.6 KB · Affichages: 58
  • Copie de Test.xlsm
    28.6 KB · Affichages: 58
  • Copie de Test.xlsm
    28.6 KB · Affichages: 55
Dernière édition:

zuli3n

XLDnaute Occasionnel
Re : Garder le format d'un tableau lors d'une copie dans un autre onglet.

Salut Philippe68, bonjour le forum,

Merci pour ton fichier, j'ai testé en modifiant selon les plages de cellules à copier comme tu me l'a dis, le tableau se copie mais sans prendre en compte la mise en forme.

J'aimerais bien expliquer se que je veux obtenir via mon fichier de départ (pièce jointe):

En cliquant le bouton "Sauvegarder" qui se trouve sur l'onglet "Test":

- Je veux que ça créé un nouveau onglet.
- Que ça renomme le nouveau onglet selon les valeurs qui se trouve dans l'onglet "Test" en cellules "C4" "E4"
- Que ça copie le tableau qui se trouve dans l'onglet "Test" de "A9" à "G25" en prenant les valeur et la forme de ce dernier.
- Puis de HIDE le nouveau onglet créé et renommé.

Tout cela je l'obtiens avec ce code: -> sauf la mise en forme (largeur et hauteur des cellules) du tableau.

Code:
Private Sub CommandButton1_Click()
Dim NomOnglet As String
Prefixe = Sheets("Test").Range("C4").Value
Suffixe = Sheets("Test").Range("E4").Value
NomOnglet = "Niveau " & Prefixe & " Séance " & Suffixe
ActiveWorkbook.Sheets.Add after:=Worksheets(Worksheets.Count)
ActiveSheet.Name = NomOnglet
Sheets("Settings").[B1] = NomOnglet
Sheets("Test").Range("A9:G25").Copy Destination:=ActiveSheet.Range("A1")
Worksheets(Worksheets.Count).Visible = xlHidden
End Sub

En gros j'aimerais tout faire, si possible via le bouton "Sauvegarder".

Pour info:
A terme (lointain), dans mon fichier, j'aurais pleins d'onglets "HIDE" avec un seul tableau dans chaque onglets, et je me ferais une macro via une "combobox" qui me permettra, selon la demande, de consulter les tableaux des ces onglets, sur dans un seul onglet, toujours pareil en gardant la mise en forme.

Encore merci Philippe68.

Cordialement.
 

Pièces jointes

  • Test.xlsm
    22.3 KB · Affichages: 51
  • Test.xlsm
    22.3 KB · Affichages: 44
  • Test.xlsm
    22.3 KB · Affichages: 46

zuli3n

XLDnaute Occasionnel
Re : Garder le format d'un tableau lors d'une copie dans un autre onglet.

Salut à tous,

Je recherche toujours une solution, mais hélas je ne trouve pas la fonction qui va bien :)
C'est tout de même dommage qu'il n'ait pas de copie du format via cette fonction -> ".Copy Destination"

Cordialement.
 

zuli3n

XLDnaute Occasionnel
Re : Garder le format d'un tableau lors d'une copie dans un autre onglet.

Bonsoir tout le monde,

Ayant pas trouvé de solution j'ai choisi d'utiliser:
Code:
.Columns("A:A").ColumnWidth
.Rows("1:1").RowHeight

J'avoue c'est un peu bourrin mais ça fonctionne bien.
C'est pour la suite de mon fichier ou ça va êtres chaud :(

++
Cordialement.
 

Pièces jointes

  • Test2.xlsm
    44.6 KB · Affichages: 51
  • Test2.xlsm
    44.6 KB · Affichages: 52
  • Test2.xlsm
    44.6 KB · Affichages: 55

Discussions similaires

Statistiques des forums

Discussions
312 169
Messages
2 085 915
Membres
103 037
dernier inscrit
Alves AGBO