[Excel.VBA]Transformer les colonnes en lignes

Résolu
iliesss Messages postés 92 Date d'inscription   Statut Membre Dernière intervention   -  
iliesss Messages postés 92 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour
J'ai une plage de 3 colonnes
SVP Comment transformer ces 3 colonnes en une seule ligne dans une autre feuille.
Merci
http://www.cijoint.fr/cjlink.php?file=cj201012/cijssH97UI.xls

2 réponses

  1. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Bonjour,
    Voir avec "Collage spécial" et le paramètre "Transpose"
    A+
    1
  2. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Bonjour,

    regarde si cette macro te convient:
    Sub transposer_sur1ligne() 
    Dim lig As Integer, cptr As Byte, source As String, cible As String 
    
    Application.ScreenUpdating = False 
    With Sheets("table") 
        lig = .Range("A1000").End(xlUp).Row + 1 
        .Cells(lig, 1) = Format(Sheets("saisie").Range("D1"), "mm/dd/yy") 
        .Cells(lig, 2) = Sheets("saisie").Range("D2") 
    End With 
    
    For cptr = 1 To 9 
    With Sheets("saisie") 
        source = Choose(cptr, "B5:B8", "B10:B15", "B17", "C5:C8", "C10:C15", "C17", "D5:D8", "D10:D15", "D17") 
    End With 
    
    With Sheets("table") 
      cible = Choose(cptr, "C" & lig & ":F" & lig, "G" & lig & ":L" & lig, "M" & lig, _ 
                                             "N" & lig & ":Q" & lig, "R" & lig & ":W" & lig, "X" & lig, _ 
                                             "Y" & lig & ":AB" & lig, "AC" & lig & ":AH" & lig, "AI" & lig) 
                                             
    .Range(cible) = Evaluate("transpose(saisie!" & source & ")") 
    End With 
    Next 
    With Sheets("saisie") 
        .Range("D1:D2").ClearContents 
        .Range("nettoye").ClearContents 
    End With 
    End Sub


    Michel
    Vous programmez en VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...(P. Fauconnier/dvp)
    1
    1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      Heu, j'oubliais !...
      range("nettoye")
      "nettoye" correspond a la plage
      =saisie!$B$5:$D$8;saisie!$B$10:$D$15;saisie!$B$17:$D$17

      demo:
      http://www.cijoint.fr/cjlink.php?file=cj201012/cij5nlZs09.xls
      0
    2. iliesss Messages postés 92 Date d'inscription   Statut Membre Dernière intervention  
       
      Salut mr Michel ça marche très bien
      Je vous remercier infiniment .
      0