Compiler à partir de plusieur feuilles

insideout

XLDnaute Nouveau
Bonojour le forum,
Je vous remerci pour l'aide que vous apportez au monde.

J'ai plusieurs feuilles (qui sont identiques au niveau de la disposition des données) dans mon workbook. Je veux bien copier certaines cellules de chaque feuilles et les placer dans un tableau dans une nouvelle feuille (Compil).
Veuillez trouvez un exemple en attache

Je vous remerci d'avance

Message édité par: insideout, à: 11/11/2005 05:51
 

andré

XLDnaute Barbatruc
Salut,

Une possibilité en pièce jointe.
Il y aurait moyen de le faire avec moins de formules, mais alors il faudrait quelque peu adapter les colonnes.

Â+

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

insideout

XLDnaute Nouveau
Merci André,
Je veux biern si c'est possible un exemple de macro. parceque j'ai plusieurs tableaux de compilation à construire. et de plus j'ai plus que 60 feuilles. Ça va prendre beaucoup de temps pour répeté les formules pour chaque feuille

Merci d'avance

Message édité par: insideout, à: 11/11/2005 15:03
 

insideout

XLDnaute Nouveau
Merci Chris,

Cette formule suppose que les noms des feuilles partage le même préfix. les nom de mes feuilles sont de ce genre : SbrP, BroR, GasA etc....
J'Ai essayé de copier la formule sur la plage mais ce n'étais pas possible.( err: #REF!)

Je crois qu'une macro peut mieux faire l'affaire. J'ignore le bon code pour creer une Loop pour toutes les feuilles disponible dans le workbook sauf celle de la compilation.
selon moi les étapes seront comme ça:
- Déclarer les plages dans la feuille 'compil'ou les cellules copiées de chaque feuilles vont.
- activé une feuille, copier les cellules d'interêt les placer dans leurs places respectives à la feuille compil.
- next feuille
- Loop jusqu'a toutes les feuilles sont activées et leurs cellules seront copiée.

Y'aura t-il un moyen de traduire ça en code.

Merci bien pour votre patience
 

andré

XLDnaute Barbatruc
Salut,

A l'avenir il serait préférable, lorsque tu poses une question, d'être précis et complet.

Cela évitera à d'autres de perdre leur temps à te proposer une solution qui répond parfaitement à ta question mais qui ne résoud pas ton problème.

Â+
 

Hervé

XLDnaute Barbatruc
Bonsoir insedeout, andré, chris, le forum :)

Ce type de code devrait faire l'affaire :


Sub Bouton9_QuandClic()
Dim ws As Worksheet
Dim derligne As Integer
Dim compil As Worksheet
Set compil = Sheets('Compil')
derligne = 6
'depart ligne 6
For Each ws In Worksheets 'pour chaque feuille du classeur
       
If ws.Name <> compil.Name Then 'si la feuille n'est pas la feuille compil
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
With ws 'avec la feuille on renvoi les données
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; compil.Cells(derligne, 2) = .Range('b3')
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; compil.Cells(derligne, 3) = .Range('b4')
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; compil.Cells(derligne, 4) = .Range('b14')
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; compil.Cells(derligne, 5) = .Range('c14')
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; compil.Cells(derligne, 6) = .Range('d14')
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; compil.Cells(derligne, 8) = .Range('h14')
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; compil.Cells(derligne, 9) = .Range('l14')
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
End With
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; derligne = derligne + 1
'on incremente la ligne
&nbsp; &nbsp; &nbsp; &nbsp;
End If
Next ws
End Sub


Mais si tu veux renvoyé toutes les données de la ligne 14, tu peux passer par ce type de boucle :



Public Sub fred()
Dim ws As Worksheet
Dim derligne As Integer
Dim compil As Worksheet
Dim i As Byte
Set compil = Sheets('Compil')
derligne = 6
'depart ligne 6
For Each ws In Worksheets 'pour chaque feuille du classeur
&nbsp; &nbsp; &nbsp; &nbsp;
If ws.Name <> compil.Name Then 'si la feuille n'est pas la feuille compil
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
With ws 'avec la feuille on renvoi les données
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Cells(derligne, 2) = .Range('b3')
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Cells(derligne, 3) = .Range('b4')
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
For i = 4 To 15
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; compil.Cells(derligne, i) = .Cells(14, i - 2)
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
Next i
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
End With
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; derligne = derligne + 1
'on incremente la ligne
&nbsp; &nbsp; &nbsp; &nbsp;
End If
Next ws
End Sub


salut
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 229
Messages
2 086 426
Membres
103 206
dernier inscrit
diambote