Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Macro transposé avec conditions

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

E

etienne33

Guest
Bonjour à tous,

Je viens vers vous car j'ai besoin de vos connaissances.

Je travaille actuellement sur un fichier que je reçois sous la forme de la "feuill1".
J'ai besoin de transposé ces données pour en faire un tableau exploitable pour faire un publipostage.

Le problème est que mon fichier fait plus de 1500 lignes et le faire en manuel prends un temps fou...

En "Feuill2", vous trouverez le format final que je souhaite avoir.

En gros les données doivent remontées par mois (1,2,3,4,....) et par type de données (données 1,2 et 3).

Je ne sais pas si je suis très clair, la pièce jointe sera peut être plus parlante.

Merci d'avance pour vos réponses.
 

Pièces jointes

Re : Macro transposé avec conditions

Bonjour etienne33,

Un essai en pièce jointe: le code est dans un module standard. Tu ne précisais pas si les données de base étaient systématiquement sur 12 lignes, à chaque fois.
Je suis parti du principe que oui ... si pas, ça ne fonctionnera pas; c'est aussi simple que ça 😛

Teste d'abord avec les données que tu avais fournies, puis avec un jeu un peu plus conséquent et, si tout se passe bien, avec l'ensemble des données ... et puis dis-nous.

J'ai déposé une version du fichier en .xls Si tu utilises exclusivement de l'Excel 2007 et au-delà, réenregistre le classeur en .xlsm
 

Pièces jointes

Re : Macro transposé avec conditions

Bonjour Modeste et merci de ta réponse,

Effectivement, je n'ai pas précisé mais oui les données se basent toujours sur 12 lignes.

J'ai fais des tests et ta macro fonctionne parfaitement, je n'ai pas encore trouvé d'anomalie.

Cependant, est-il possible d'avoir un petit explicatif du code que tu as créé que j'essaye de comprendre le fonctionnement ?

Je risque d'être amené à agrandir la zone de gauche "groupe, nom, code, etc...." si tu peux m'expliquer comment la modifier.
 
Re : Macro transposé avec conditions

Re-bonjour,

Dis-nous si les commentaires ajoutés dans le code ci-dessous te suffisent:
VB:
Sub transfert()
Dim monTablo()
With Sheets("Feuil1")
    derlig = .[A10000].End(xlUp).Row 'repérer la dernière cellule non-vide en colonne A
    ReDim monTablo(((derlig - 1) / 12) - 1, 38) 'on réserve un tableau à deux dimensions
    'dimension 1=nbre de blocs de 12 ... dimension 2=nbre de colonnes du tableau "final"
    ligne% = 0: colonne% = 0 'on initialise 3 variables
    For lig = 2 To derlig Step 12 'de la ligne 2 à la dernière ligne, par pas de 12
        monTablo(ligne, colonne) = .Cells(lig, 1) 'copier le groupe
        monTablo(ligne, colonne + 1) = .Cells(lig, 2) 'copier le code
        monTablo(ligne, colonne + 2) = .Cells(lig, 3) 'copier le nom
        For i = 0 To 11 'petite boucle pour copier ...
            monTablo(ligne, colonne + 3 + i) = .Cells(lig + i, 5) 'les 12 données 1
            monTablo(ligne, colonne + 15 + i) = .Cells(lig + i, 6) 'les 12 données 2
            monTablo(ligne, colonne + 27 + i) = .Cells(lig + i, 7) 'les 12 données 3
        Next i
        ligne = ligne + 1
        colonne = 0
    Next lig
End With
With Sheets("Feuil2")
    'on efface, en feuil2, les données sous la ligne de titres
    .[A2].Resize(.[A2].CurrentRegion.Rows.Count, .[A2].CurrentRegion.Columns.Count).ClearContents
    'on "colle" le contenu du tableau dans une plage de cellules de la bonne dimension
    .[A2].Resize(((derlig - 1) / 12), 39) = monTablo
End With
End Sub
Note: j'en ai profité pour supprimer une variable ('col') qui n'était pas utilisée.
 
- 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

Réponses
15
Affichages
447
O
Réponses
1
Affichages
897
Olocsob
O
D
Réponses
4
Affichages
2 K
N
Réponses
3
Affichages
5 K
nicolas51
N
D
  • Question Question
2 3
Réponses
31
Affichages
4 K
darknigthmare
D
M
Réponses
19
Affichages
2 K
Micha972
M
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…