Réorganisation fichier excel

Fermé
caba_44 Messages postés 99 Date d'inscription lundi 14 décembre 2009 Statut Membre Dernière intervention 24 novembre 2022 - 16 janv. 2013 à 09:29
caba_44 Messages postés 99 Date d'inscription lundi 14 décembre 2009 Statut Membre Dernière intervention 24 novembre 2022 - 18 janv. 2013 à 09:48
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




A voir également:

3 réponses

caba_44 Messages postés 99 Date d'inscription lundi 14 décembre 2009 Statut Membre Dernière intervention 24 novembre 2022 5
16 janv. 2013 à 14:39
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
0
pilas31 Messages postés 1825 Date d'inscription vendredi 5 septembre 2008 Statut Contributeur Dernière intervention 24 avril 2020 643
16 janv. 2013 à 14:49
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+
0
caba_44 Messages postés 99 Date d'inscription lundi 14 décembre 2009 Statut Membre Dernière intervention 24 novembre 2022 5
18 janv. 2013 à 09:48
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
0