FonctionTRANSPOSE

Résolu
Bonjour,

j'ai 6 onglets excel et les résultats qui m'interressent sont dans les range AW19:AW34 et AW60:AW75
j'aimerai juste les mettre dans un nouvel onglet que je crer (Result) en utilisant la fonction transpose:
pour le cas1 je transpose AW19:AW39 en B2:Q2 de l'onglet Result et AW60:AW75 (de l'onglet cas1) je le transpose en R2:AG2
les résultats de l'onglet cas2 idem en onglet Result à la ligne 3
jusqu'à la ligne 7 pour cas 6
Je crois qu'il faudrait utiliser un Array m'ais j'arrive pas à le faire correctement.

Merci pour vos réponses: ca sera plus facile à comprendre avec le fichier:

http://www.cijoint.fr/cjlink.php?file=cj201101/cijGzg5ehs.xls

3 réponses

  1. Merci ccm81 elle marche très bien ta macro.
    1. Contributeur
      Excuse moi de t'avoir dérangé avec ma fonction TRANSPOSE comme tu semblais le demander
      Je ne recommencerai plus car visiblemet mon niveau VBA est trop faible pour toi
    2. dsl j'avais pas fais attention.
      Ne le prends pas comme ca michel_m
      Merci à toi aussi d'y avoir réfléchi
  2. Contributeur
    Bonjour

    peut-^tre + simple et rapide
    ci joint maquette pour le principe à adapter
    https://www.cjoint.com/?3bCl7YnPsQZ

    macro proposée
    Sub tranposer()  
    nbre = ThisWorkbook.Sheets.Count - 1  
    
    For cptr = 1 To nbre  
    T_1 = Application.Transpose(Sheets(cptr).Range("A3:A28").Value)  
    T_2 = Application.Transpose(Sheets(cptr).Range("A32:A57").Value)  
    
    With Sheets("result")  
        ligvide = .Range("A1000").End(xlUp).Row + 1  
        .Cells(ligvide, "A").Resize(1, UBound(T_1)) = T_1  
        .Cells(ligvide, "AC").Resize(1, UBound(T_2)) = T_2  
    End With  
    Next  
    End Sub


    on pourra y ajouter
    application.screenupdating=false
    pour aller un peu + vite si beaucoup de feuilles

    Michel
    1. re

      en passant par une macro et un bouton, j'ai crée une nouvelle feuille Resu et utilise le style L1C1. A vérifier bien sur

      http://www.cijoint.fr/cjlink.php?file=cj201101/cij4X2Oxn2.xls

      RQ1. si les valeurs changent il faudra executer a nouveau la macro
      RQ2. on peut eviter RQ1 en programmant des formules à la place des valeurs

      Sheets(NomFRes).Cells(lir, cor).FormulaR1C1 = "='" & NomF & "'!R" & lic & "C" & Coc


      bonne suite