Fractionner un tableau dans plusieurs feuilles

  • Initiateur de la discussion Meryl
  • Date de début
M

Meryl

Guest
Salut à toutes et tous

J'ai un tableau avec x lignes et x colonnes et une trentaine de feuilles.
Je souhaiterais que la colonne 1 du tableau soit collée dans la feuille 1, la colonne 2 du tableau dans la feuille 2 etc.
Existe-t-il un moyen simple?

Merci d'avance pour votre aide

Meryl
 

porcinet82

XLDnaute Barbatruc
salut Meryl,

je te propose une petite macro (dans la PJ) a adapter un peu mais qui réalise ce que tu souhaites sur un exemple de 3 colonnes et donc trois feuilles

bon courage et si tu as un soucis fait signe

@+

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

Pièces jointes

  • Meryl.zip
    2.5 KB · Affichages: 144
  • Meryl.zip
    2.5 KB · Affichages: 139
  • Meryl.zip
    2.5 KB · Affichages: 150
M

Meryl

Guest
Salut Porcinet 82,

Merci pour ta réponse.
J'ai essayé mais ça ne fonctionne que si tu veux copier la page entière.
En fait, le tableau que je cherche à copier est situé sur une partie de la feuille au milieu d'autres données et les cellules 'destinataires' (celles dans lesquelles je veux coller mes données), c'est pareil, elles sont au milieu d'autres données.
Pour que tu comprennes mieux, je te joins un fichier qui reprend à peu près ce que je veux faire.
Le tableau que je veux copier est sur le fauille 'menu' : je l'ai colorié en jaune.
Et les cellules destinataires dans chaque feuille sont elles aussi colorées en jaune.
J'espère que ce sera plus clair.

Merci à toutes celles et ceux qui pourraient m'apporter une réponse.
(PS: je suis une bille en VBA)

Meryl
 

Luki

XLDnaute Accro
Bonjour meryl, porcinet


Une intrusion dans le fil pour vous proposer un ptit complément vitaminé: la création automatique des feuilles en fonction du nb de colonnes dans le tableau. Comme ça, pas besoin de les créer à la main.

Sub copie()
Dim Rg As Range
Dim Wks As Worksheet
Dim I As Integer
Set Rg = Sheets('Tableau').Range('A1').CurrentRegion ' un exemple pour définir la plage en cours, ce pourrait être une plage nommée.

For I = 1 To Rg.Columns.Count
Set Wks = Worksheets.Add
Rg.Columns(I).Copy Wks.Range('A1')

Next I
End Sub

bien à vous
 
M

Meryl

Guest
Salut à tous,

Merci Luc pour ta réponse, mais moi, mes pages sont déjà créées, et ce que je veux coller dedans doit veir s'imbrquer dans un tableau qui est dejà à moitié rempli.
Comme, dans mon précédent message, il ya eu un souci avec la pièce jointe, je vous la remets.

Merci à ttes les âmes charitables qui voudront bien me sortir de mon pétrin

Meryl [file name=problème_20050513094205.zip size=6346]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/problème_20050513094205.zip[/file]
 

Pièces jointes

  • problème_20050513094205.zip
    6.2 KB · Affichages: 71
M

Meryl

Guest
J'ai trouvé une piste mais c'est pas encore tout à fait ca :
J'ai fait :

Sub copie()

Sheets('menu').Select
ActiveSheet.Range('B8:B10').Select
Selection.Copy
For i = 2 To 7
Sheets(i).Select
ActiveSheet.Range('B8:B10').Select
ActiveSheet.Paste

Next i

End Sub

Le problème c'est que c'est la meme colonne qui se colle dans mes différentes feuilles.
Moi je veux que la plage (B8:B10) soit collée ds ma feuille 2, la plage (C8:C10) dans ma feuille 3, la plage (D8:D10) dans la feuille 4 et ainsi de suite.

Quelqu'un saurait-il comment faire? [file name=problème macro_20050513112319.zip size=10963]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/problème macro_20050513112319.zip[/file]
 

Pièces jointes

  • problème macro_20050513112319.zip
    10.7 KB · Affichages: 50
M

Meryl

Guest
OK Luki, c'est fait.

Meryl [file name=probleme macro_20050513140102.zip size=10963]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/probleme macro_20050513140102.zip[/file]
 

Pièces jointes

  • probleme macro_20050513140102.zip
    10.7 KB · Affichages: 56

Luki

XLDnaute Accro
Re Meryl, Porcinet le forum

Voici ta macro corrigée pour faire ce que tu veux:

Sub copie()

Dim RgSource As Range
Dim i As Integer

Set RgSource = Sheets('menu').Range('A8:G10') ' définir toute le plage de valeurs comme source

For i = 2 To 7 'boucle sur le nombre de colonnes voulues
RgSource.Columns(i).Copy Sheets(i).Range('B8')
Next i

End Sub


Par contre, le choix de travailler sur l'index n'est pas fiable, car si tu déplace une feuille, tu vas te retrouver avec les valeurs de carottes dans la feuille endive lol ! donc, pas bon du tout... Il vaut mieux faire référence au nom de feuille via le titre de colonne dans la feuille menu.

Je te prépare ça , A tout à l'heure.
 

Luki

XLDnaute Accro
Re


Voici:
Option Explicit
Sub copie()

Dim RgSource As Range
Dim ColSource As Range
Dim i As Integer

Set RgSource = Sheets('menu').Range('A7:G10') ' définir toute le plage de valeurs comme source, avec les titres

For i = 2 To 7 'boucle sur le nombre de colonnes voulues
Set ColSource = RgSource.Columns(i).Offset(1, 0).Resize(3, 1)
On Error Resume Next
ColSource.Copy Sheets(ColSource.Cells(1).Offset(-1, 0).Value).Range('B8') ' le nom est celui du titre de colonne, si pb alors message
If Err.Number <> 0 Then MsgBox ' La feuille ' ' & ColSource.Cells(1).Offset(-1, 0).Value & ' ' n'existe pas!' & vbLf & 'Vérifiez son nom ou créez-la et recommencez'
Next i

End Sub



Essaie et dis-moi

A+
 

Meryl

XLDnaute Nouveau
Bonjour,

Encore une petite question.
La macro fonctionne pour des copier coller en colonnes.
Je souhaiterais copier/coller en lignes désorais sans transposer mes tableaux.
Comment adapter la macro?

Merci pour votre aide

Meryl
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 084
Messages
2 085 194
Membres
102 811
dernier inscrit
caroline29260