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. 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
    1. 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. 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