FonctionTRANSPOSE

Résolu
ines009 Messages postés 25 Date d'inscription   Statut Membre Dernière intervention   -  
ines009 Messages postés 25 Date d'inscription   Statut Membre Dernière intervention   -
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

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