MACRO Ligne colonne

Bonjour

Je me permets de faire appel à vous car je rencontre une difficulté dans la réalisation d'une macro.

L'idée étant de récupérer les données qui sont en bleus sur le fichier Lyon / Paris, ce sont des quotités qui sont en colonnes. J'aimerai pouvoir les récupérer pour les transférer sur le fichier Copie synthèse, cette fois ci en ligne. Pour vous donner une idée de la présentation souhaitée de ce fichier j'ai colorié les données en bleu aussi .

Merci à vous

6lyon-1.xlsm (22.90 Ko)
9paris-1.xlsm (22.82 Ko)

Bonjour,

Sans avoir ouvert tes fichiers, tu peux transformer simplement des données en lignes vers des données en colonne en utilisant une boucle.

Dim iCol As Integer, iLign As Integer, Max As Integer
Max = ActiveSheet.UsedRange.Row
iLign = 1
For iCol = 1 To Max
    With ActiveSheet
        .Cells(iLign, iCol) = .Cells(iCol, iLign)
    End With
Next iCol

Ce code est à adapter selon ta plage de données et si la feuille où réécrire les données est différente de la feuille source.

Il existe aussi un collage spécial permettant de transposer des données, je te laisse obtenir le code via l'enregistreur de macro.

Bonjour,

Merci pour ton code. Je l'ai testé malheureusement je n'arrive pas à obtenir les données dans le fichier synthèse.

Pour info : je suis très novice en Macro, j'en pratique que depuis 1 mois et encore c'est avec l'enregistreur de Macro. Désolé pour ce manque de compétence ^^

L'enregistreur de marco fait référence aux cellules et plages de cellules de la manière suivante :

ActiveSheet.Range("A1")

Ce qui est équivalent à :

ActiveSheet.Cells(1, 1)

Cette dernière écriture te permet cependant de travailler plus facilement sur des nombres et donc de pouvoir faire des opérations ou de les parcourir en utilisant des boucles ("For...Next", "While...Wend", etc)

Sinon, un collage spécial avec transposition donne via l'enregistreur de macro :

Range("A1:Z1").Select
    Selection.Copy
    Range("A4").Select
    Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=True
    Application.CutCopyMode = False

L'instruction "Select" étant inutile, tu peux remplacer par :

Range("A1:Z1").Copy
    Range("A4").PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=True
    Application.CutCopyMode = False

Précision utile, lorsque tu travailles sur des onglets différents, il est préférable de préciser à chaque fois l'onglet dans le code :

Sheets("Feuil1").Range("A1") = Sheets("Feuil2").Range("A1")

Je suis une vraie CATA

Plusieurs personnes du forum ont contribué à ce projet, et grâce à eux j'ai pu obtenir une macro exemplaire. Je me suis penchée sur la façon dont elle était construite. Je commence à comprendre.

Cependant, par rapport à ma demande et à tes réponses qui sont je trouve très claire et je te remercie car je ne suis pas doué du tout. A tel point que je ne sais pas où introduire le code que tu m'as donné.

La macro complète se trouve dans le fichier Copie synthèse

car

Pour le moment je n'ai que 2 fichiers (Lyon - Paris). Or je vais avoir des centaines et des centaines de fichier. C'est pourquoi une boucle a été dans la macro .

J'espère être compréhensible ( ce n'est pas mon fort)

Et avec ça, ce que tu souhaite faire fonctionne ?

Je n'ai pas compris ta question :/

En tout cas la macro fonctionne super. Ce qui me manque c'est simplement récupérer les quotités qui sont en colonnes en bleus sur les différents fichiers pour les transférer sur le fichier synthèse sous forme de lignes en l'incluant dans la macro que je t'ai montré

L'idée finale est de pouvoir récupérer sur le fichier synthèse en un coup : il me faut tant de RH à 1, à 0.8 et ainsi de suite

Rechercher des sujets similaires à "macro ligne colonne"