Réorganisation fichier excel
caba_44
Messages postés
107
Statut
Membre
-
caba_44 Messages postés 107 Statut Membre -
caba_44 Messages postés 107 Statut Membre -
Bonjour à toute l'équipe de CommentCaMarche.net,
J'ai une problématique sur un fichier assez lourd sur Excel où faire la manipulation 1 par 1 me prendrait environ 3 mois sans trop exagérer. C'est pourquoi je vous sollicite afin de savoir si vous avez une solution au problème suivant.
Je souhaite réorganiser un fichier dont l'explication est en pièce jointe sur www.cjoint.com
où j'ai détaillé au maximum les étapes par feuille.
https://www.cjoint.com/c/CAqjC7wJCko
Je suis sûr qu'une macro pourrait aider mais je n'ai pas le talent de la programmation.
En attendant de vous lire si l'affaire n'est pas trop compliquée.
Bien cordialement,
Mathieu
J'ai une problématique sur un fichier assez lourd sur Excel où faire la manipulation 1 par 1 me prendrait environ 3 mois sans trop exagérer. C'est pourquoi je vous sollicite afin de savoir si vous avez une solution au problème suivant.
Je souhaite réorganiser un fichier dont l'explication est en pièce jointe sur www.cjoint.com
où j'ai détaillé au maximum les étapes par feuille.
https://www.cjoint.com/c/CAqjC7wJCko
Je suis sûr qu'une macro pourrait aider mais je n'ai pas le talent de la programmation.
En attendant de vous lire si l'affaire n'est pas trop compliquée.
Bien cordialement,
Mathieu
3 réponses
-
Bonjour à tous,
Pouvez-vous me dire ce qui pose problème à la réalisation de ce problème ?
Est-ce un très gros développement ?
En attendant de vous lire,
Mathieu -
Bonjour,
J'ai créé une macro vba qui fait la réorganisation.
Voila le fichier avec la macro :
https://www.cjoint.com/c/CAqoUOth4Hj
et voila la macro elle-même :Sub REORG() Sheets("fichier origine").Select Cells.Select Selection.Copy Sheets("fichier final").Select Cells.Select ActiveSheet.Paste DernRef = Columns(3).Find("*", , , , xlByColumns, xlPrevious).Row Refcour = Cells(DernRef, 3) ligne = DernRef - 1 ligfin = DernRef While ligne >= 1 If Refcour <> Cells(ligne, 3) Then Range("F" & ligne + 1 & ":I" & ligfin).Cut Range("A" & ligne + 2).Select ActiveSheet.Paste ligfin = ligne Refcour = Cells(ligne, 3) If ligne <> 1 Then Rows(ligne + 1).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove End If ligne = ligne - 1 Wend End Sub
Elle prend l'onglet "fichier origine" et produit automatiquement "fichier final"
A tester
A+
-
Cher Pilas31,
Mon problème a été résolu par une autre solution.
Néanmoins, je prendrai soin de tester la vôtre en respect du temps que vous y avez consacré.
Je vous remercie par avance du temps que vous avez bien voulu donner à ma problématique
Bien cordialement
Mathieu