IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Transformer une ligne en colonne


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 134
    Par défaut Transformer une ligne en colonne
    Bonjour je suis débutant en VBA et je voudrais copier une ligne de la feuille 1en excel et la coller en forme de colonne en feuille 2 mais je ne sais pas comment faire
    Quelqu'un peut-il m'aider?
    merci

  2. #2
    Membre Expert Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Par défaut
    bonjour leyeno il faut transposer copy colllage special coche transpose

    avec l enregistreur de macro sans plus d' infos

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    123456789
    Sub Macro1()
    Rows("1:1").Select
    Selection.Copy
    Sheets("Feuil2").Select
     Range("A1").Select
     Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
     False, Transpose:=True
     Application.CutCopyMode = False
    End Sub

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 134
    Par défaut
    Bonjour merci nickel
    j arrive à copié plusieurs ligne en colonne
    mais j'ai un autre problème. Je voudrais par exemple passer la ligne 1 en colonne mais je ne veux pas des 2 premiers éléments : comment je peu faire? il y a til une condition?
    de plus je voudrais tranformer un grand nombre de ligne en colonne : puis-je utilisé une boucle for => loop? si oui ca donnerais quoi?

    de plus je compren que l'on selectionne transpose pour un collage spécial et pour passer de ligne en colonne mais je ne sais pas a quoi correspond le sautres paramètre :
    Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
    False,
    Transpose:=True

    quelqu'un peut me renseigner svp merci

  4. #4
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    Citation Envoyé par leyeno Voir le message
    de plus je compren que l'on selectionne transpose pour un collage spécial et pour passer de ligne en colonne mais je ne sais pas a quoi correspond le sautres paramètre :
    Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
    False,
    Transpose:=True

    quelqu'un peut me renseigner svp merci
    Oui l'aide excel explique cela très bien. Appuie sur après avoir sélectionné PasteSpecial

    de plus je voudrais tranformer un grand nombre de ligne en colonne : puis-je utilisé une boucle for => loop? si oui ca donnerais quoi?
    Je te conseil les tutos pour débutant que tu trouvera sur le site. (En VBA c'est for next encore une fois utilise la touche F1)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for i=1 to 10
    Rows(i).Select
    '....
    next i
    après faut que tu fasse attention a la feuille active.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 134
    Par défaut
    merci de ta réponse j'ai trouvé la solution mais il me reste un petit problème avec le code suivant qui permet de passer de ligne en colonne avec une boucle for :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    Sub essai()
    
    Dim i As Integer, j As Integer
    j = 1
    For i = 0 To 2 Step 2
    Sheets("Feuil1").Select
    
    Range("B1:C1").Offset(i).Select 'selectionne la ligne que lon veu avec les cellules que lon choisi
    Selection.Copy 'copie la sélection préédente
     
     Sheets("Feuil2").Select 'selectionne la feuille 2
     Range("A1").Offset(j).Select 'selectionne la cellule active
     Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
     False, Transpose:=True 'selection un collage special => transposé permet de passer de ligne en colonne
     Application.CutCopyMode = False
     j = j + 1
    Next i
    
    End Sub
    J'arrive bien a sélectionner ma première ligne et a la transformer en colonne sur ma feuille 2 a partir de la cellule A1
    Ensuite je selectionne la ligne suivante ( ligne 3) mais le problème c'est que le copier coller se fait toujours a partir de la cellule A1 car je sais pas comment on fait pour incrémenter et passer de A1 a B1 donc mes données précedentes sont perdu

    j'ai bien essayé avec ca : Columns(j).Select
    mais le problème c'est qu'il copie pulsieurs fois les meme valeurs dans les colonnes alors que je veu qu'une SEULE copie

    donc si quelqu'un peut me donner ce tout petit rensignements.
    merci

  6. #6
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Range("A1").Offset(j).Select 'selectionne la cellule active
    Utilise directement et essaye de remplacer le A par un B. Comme ca au hasard
    Si tu veux incrémenter a chaque boucle
    essaye
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cells(numligne,numcolonne).select
    remplace numligne et numcolonne par tes variable qui donne le numéro de ligne et de colonne ou tu veux copier les donner

    Pourquoi ne pas réutiliser i qui a exactement la même valeur que j?

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 134
    Par défaut
    merci
    j'ai utilisé cell
    résolu

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [WD15] transformer une ligne en colonne selon le contenu
    Par Menadel dans le forum WinDev
    Réponses: 26
    Dernier message: 09/08/2017, 16h40
  2. Transformer une ligne en colonne avec talend
    Par pekre dans le forum Développement de jobs
    Réponses: 15
    Dernier message: 25/02/2015, 02h04
  3. [10g] Transformer des lignes en colonne et updater une table
    Par philcphilc dans le forum SQL
    Réponses: 2
    Dernier message: 19/07/2013, 17h53
  4. TRANSFORM et PIVOT? Transformer les lignes en colonnes
    Par capitaine dans le forum Access
    Réponses: 1
    Dernier message: 12/07/2006, 11h53
  5. Transformer une ligne en polygone
    Par bl4d3 dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 02/09/2003, 09h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo