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
    0
    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
      0
      1. Merci ccm81 elle marche très bien ta macro.
        0
        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
          0
        2. dsl j'avais pas fais attention.
          Ne le prends pas comme ca michel_m
          Merci à toi aussi d'y avoir réfléchi
          0