Macro pour transposé un fichier en colonne en ligne

Arno94

XLDnaute Nouveau
Bonjour,

N'ayant pas eu beaucoup de chance jusqu'ici, je me permet de revenir poster mon soucis
Je souhaite copier un fichier initialement en colonne en ligne.

Par contre je but sur la plage de copie (enfin plutot de collage spécial, uniquement les valeurs, et transposé)

Ensuite je supprimerais les lignes vides.

Un coup de pouce serais le bienvenue ....... :)

Merci d'avance

Arnaud
 

Pièces jointes

  • Fichier de travail NSI.zip
    120 KB · Affichages: 58
  • Fichier de travail NSI.zip
    120 KB · Affichages: 58
  • Fichier de travail NSI.zip
    120 KB · Affichages: 61
Dernière édition:

job75

XLDnaute Barbatruc
Re : Macro pour transposé un fichier en colonne en ligne

Bonjour Arno94,

N'ayant pas eu beaucoup de chance jusqu'ici (...)

Sans vouloir faire du mauvais esprit, je crains que cela ne continue.

On copie donc quoi où quand comment :confused: Il y a plusieurs feuilles...

Un exemple du résultat escompté aurait peut-être permis de comprendre.

Mais je comprends : 686 Ko ça épuise son homme :rolleyes:

A+
 

Staple1600

XLDnaute Barbatruc
Re : Macro pour transposé un fichier en colonne en ligne

Bonsoir le fil


Un coup de pouce en forme de conseil "chartique"

1) Ne jamais envoyer de fichier original
2) Créer un fichier "light" : 1 à 2 feuilles sans formatage (pas de couleurs, pas de bordures, pas d'images)
3) Synthétiser la question en problèmes simples avec :
Ce que l'on a : (AVANT LA MACRO OU LA FORMULE)
Ce que l'on souhaite : (APRES LA MACRO OU LA FORMULE)

Ici il s'agit de transposition
Donc quelle est la plage source ?
Quelle est la plage Destination ?

PS: Ce sujet transposition colonnes/lignes et son inverse sont des sujets de nombreuses fois évoqués sur XLD.
Chercher dans les fils de discussions existants permet de trouver des indices de résolutions, des exemples.
L'as-tu fait?

PS2: Salutations Job75 ;)

EDITION:
En attendant la suite, un exemple simple (avec Array) qui évite de passer par le Copier/Colle/Transposer (A TESTER sur un classeur vierge, pour comprendre comment se déroule la macro)

VB:
Sub M_tcl()
Dim tl, tc
Cells.Clear
With Application
    .ScreenUpdating = False
    [A1:A5].Formula = "=ROW()": tl = [A1:A5].Value
    
    'col -> lig
    [B1].Resize(, UBound(tl)) = .Transpose(tl)
    
    'lig -> col
    tc = [B1:F1].Value
    [H1].Resize(5) = .Transpose(tc)
    .ScreenUpdating = True
End With
End Sub
 
Dernière édition:

Arno94

XLDnaute Nouveau
Re : Macro pour transposé un fichier en colonne en ligne

Bonjour,

Ahhh des réponses ;)

Quelques explications s’impose (c’est vrai que je n’en avais mis aucunes)

Je cherche à importer le fichier test (qui contrairement à ce qu’il parait à été nettoyé pour ne laisser que les choses qui me posent soucis (le fichier de base pèse 3mo) dans le fichier nommé importation.

J’ai toujours le même nombre d’onglet à importer (de 3 à 9 pour être précis)

A la base je suis parti sur un comptage de cellule et colonne pour avoir ma plage rempli, mais dans chaque onglet il y a des conditions partout.
J’ai donc fait une petite macro (via l’enregistreur) pour enlever toutes formules, mais idem la plage prise en compte était toujours plus grande que la réalité (et fixe surtout) (EZ57 à F4)

Je suis donc partit d’un autre principe, cette fois ci en copiant (valeur uniquement et transposé) la plage EZ57 à F4 dans mon fichier d’importation, en partant de la dernière cellule non vide de la colonne A +1 (pour la ligne), de passer au 2éme onglet, de reprendre la même plage, et la copié à la dernière cellule non vide de la colonne A + 1 (pour la ligne) et ainsi de suite.

Ensuite je pensais éliminer l’ensemble des cellules et colonnes non vides, et mettre en page mon nouveau tableau.

Dans le fichier d’importation, dans l’onglet NSI, il y a un exemple de résultat, dans l’onglet import il y a ce à quoi j’aimerais que cela ressemble).

PS Job75 : Effectivement pas assez détaillé, merci pour la remarque constructive :eek:
Et le fichier à été nettoyé, l’original est rempli de graphique, formules et autre……


Ps Staple1600 :

1)Ce fichier n’est pas l'original, même s'il y ressemble grandement.

2) Ce fichier à été allégé au max, mais j’ai tout de même laissé les choses qui me posait soucis.
Oui j’ai cherché dans les fils de discutions, sinon je n’aurais jamais su qu’il fallait transposer pour coller des colonnes en lignes et vice versa (je suis autocadien pas excelien)

3) Synthétiser, ok, mon problème (enfin l’un des problème) ce situe ici je pense, ma variable ligne_debut est mal définie selon moi

Code:
For compteur = 3 To 9
ligne_debut = A & Destination.Worksheets(NSI).Range("A65536").End(xlUp).Row + 1   'je defini la variable ligne_debut qui correspond la plage de de commencement
Source.Worksheets(compteur).Activate  ' j active les onglets du fichier source
Range("F4:EZ56").Copy
Destination.Worksheets(NSI).Activate
Destination.Range("ligne_debut").PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=True


Merci beaucoup, j’espère cette fois ci ne pas avoir trop détaillé justement…
 

Pièces jointes

  • Fichier de travail NSI.zip
    120.1 KB · Affichages: 52
  • Fichier de travail NSI.zip
    120.1 KB · Affichages: 59
  • Fichier de travail NSI.zip
    120.1 KB · Affichages: 68

Staple1600

XLDnaute Barbatruc
Re : Macro pour transposé un fichier en colonne en ligne

Bonjour

As-tu au moins tester le code que je proposais (à titre de l'illustration) dans mon précédent message ?

Tu sembles ne pas avoir pris cette peine ...puisque tu sembles continuer à privilégier le Copier/Coller/Transposer.

Je te laisse donc avec les inconvénients de ce Copier/Coller.

Bon courage.
 

Arno94

XLDnaute Nouveau
Re : Macro pour transposé un fichier en colonne en ligne

Bonjour,

A testé, mais A pas compris pour être honnête.........

Enfin, en pas à pas, cela remplie la colonne A, puis cela transpose de A1:A5 à B1:F1, et ensuite en H1:H5 ?
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 115
Messages
2 085 435
Membres
102 889
dernier inscrit
monsef JABBOUR