Compiler à partir de plusieur feuilles

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

I

insideout

Guest
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
 
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]
 
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
 
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
 
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.

Â+
 
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
 
- 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

S
Réponses
22
Affichages
18 K
sadlersmith
S
L
Réponses
2
Affichages
1 K
ldr33
L
J
Réponses
9
Affichages
13 K
g.terro
G
N
  • Question Question
Réponses
5
Affichages
3 K
B
Réponses
10
Affichages
2 K
Retour