[Excel.VBA]Transformer les colonnes en lignes

Résolu/Fermé
iliesss Messages postés 113 Date d'inscription mardi 14 septembre 2010 Statut Membre Dernière intervention 26 octobre 2014 - 6 déc. 2010 à 11:49
iliesss Messages postés 113 Date d'inscription mardi 14 septembre 2010 Statut Membre Dernière intervention 26 octobre 2014 - 7 déc. 2010 à 16:26
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

lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
6 déc. 2010 à 13:44
Bonjour,
Voir avec "Collage spécial" et le paramètre "Transpose"
A+
1
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
Modifié par michel_m le 6/12/2010 à 17:33
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
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
6 déc. 2010 à 17:41
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
iliesss Messages postés 113 Date d'inscription mardi 14 septembre 2010 Statut Membre Dernière intervention 26 octobre 2014
7 déc. 2010 à 16:26
Salut mr Michel ça marche très bien
Je vous remercier infiniment .
0