FonctionTRANSPOSE

Résolu
ines009 Messages postés 27 Statut Membre -  
ines009 Messages postés 27 Statut Membre -
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. ccm81 Messages postés 11033 Statut Membre 2 434
     
    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
  2. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    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
  3. ines009 Messages postés 27 Statut Membre
     
    Merci ccm81 elle marche très bien ta macro.
    0
    1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      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. ines009 Messages postés 27 Statut Membre
       
      dsl j'avais pas fais attention.
      Ne le prends pas comme ca michel_m
      Merci à toi aussi d'y avoir réfléchi
      0