EXCEL transposer quand grande taille tableau
Fermé
weo
-
29 mars 2009 à 16:06
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 18 mars 2011 à 11:52
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 18 mars 2011 à 11:52
A voir également:
- EXCEL transposer quand grande taille tableau
- Tableau croisé dynamique - Guide
- Liste déroulante excel - Guide
- Comment réduire la taille d'un fichier - Guide
- Tableau ascii - Guide
- Tableau word - Guide
5 réponses
manet61
Messages postés
202
Date d'inscription
dimanche 26 octobre 2008
Statut
Membre
Dernière intervention
9 juin 2018
179
29 mars 2009 à 16:49
29 mars 2009 à 16:49
Bonjour,
Voici un exemple qui marche jusqu'à Excel 2003 (après je n'ai pas)
http://www.cijoint.fr/cjlink.php?file=cj200903/cij9jMnz2f.xls
A+
Voici un exemple qui marche jusqu'à Excel 2003 (après je n'ai pas)
http://www.cijoint.fr/cjlink.php?file=cj200903/cij9jMnz2f.xls
A+
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 303
29 mars 2009 à 17:16
29 mars 2009 à 17:16
Bonjour,
cette macro te fait la transposition sans le souci (pas mince vu tes dimensions) de sélectionner les zones "depart" et "but"
seule condition il doit y a avoir un espace vide autour du tableau de départ (ligne et colonne)
les constantes (const) doivent être paramétrées à tes données
à adapter à XL2007
cette macro te fait la transposition sans le souci (pas mince vu tes dimensions) de sélectionner les zones "depart" et "but"
seule condition il doit y a avoir un espace vide autour du tableau de départ (ligne et colonne)
les constantes (const) doivent être paramétrées à tes données
à adapter à XL2007
Const cel_dep As String = "A1" Const cel_but As String = "B2" Const sh_dep As String = "feuil1" Const sh_but As String = "feuil2" ' Sub big_transpose() Dim lig As Long, cptr2 As Long Dim col As Long, cptr1 As Long Application.ScreenUpdating = False tablo = Sheets(sh_dep).Range(cel_dep).CurrentRegion Sheets(sh_but).Activate lig = Range(cel_but).Row - 1 col = Range(cel_but).Column - 1 For cptr1 = 1 To UBound(tablo, 1) For cptr2 = 1 To UBound(tablo, 2) Cells(lig + cptr2, col + cptr1) = tablo(cptr1, cptr2) Next cptr2 Next cptr1 End Sub
Salut michel_m,
est ce que je peux appliquer cette macro à mon tableau:
Saison 85-1984 86-1985 87-1986
Herbicides doubles actions 130650 104700 115700
Herbicides antidycotylédones 151600 140900 213600
Total 282250 245600 329300
c'est juste un échantillon, l'original( ce que je veux transposer) est de 1985 jusqu'à 2009.
Aidez moi svp!
Merci d'avance.
est ce que je peux appliquer cette macro à mon tableau:
Saison 85-1984 86-1985 87-1986
Herbicides doubles actions 130650 104700 115700
Herbicides antidycotylédones 151600 140900 213600
Total 282250 245600 329300
c'est juste un échantillon, l'original( ce que je veux transposer) est de 1985 jusqu'à 2009.
Aidez moi svp!
Merci d'avance.
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 303
18 mars 2011 à 08:35
18 mars 2011 à 08:35
Bonjour,
apparemment, oui, sans les étiquettes ( pas sûr de moi) et en vérifiant les totaux
fais des essais sur une copie de classeur avec des tailles réduites et regarde si OK
apparemment, oui, sans les étiquettes ( pas sûr de moi) et en vérifiant les totaux
fais des essais sur une copie de classeur avec des tailles réduites et regarde si OK
lermite222
Messages postés
8702
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
Modifié par lermite222 le 18/03/2011 à 10:04
Modifié par lermite222 le 18/03/2011 à 10:04
Bonjour,
Pourquoi ne pas utiliser la fonction transpose d'Excel..
Fonctionne sur le 2000 et 2007
Adapter les noms des feuilles et plage de cellules.
Si tu sélectionne les sommes et les titres ils sont transposés correctement.
Si tu ne veux que les valeurs, remplacer XlAll par XlValue
A+
Toute la connaissance du monde ne peu tenir dans une seul tête (moi)
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
Pourquoi ne pas utiliser la fonction transpose d'Excel..
Fonctionne sur le 2000 et 2007
Adapter les noms des feuilles et plage de cellules.
Sub CopieTransposee() Sheets("Feuil1").Range("B3:L36").Copy Sheets("Feuil3").Range("B3").PasteSpecial Paste:=xlAll, Operation:=xlNone, SkipBlanks:=False _ , Transpose:=True End Sub
Si tu sélectionne les sommes et les titres ils sont transposés correctement.
Si tu ne veux que les valeurs, remplacer XlAll par XlValue
A+
Toute la connaissance du monde ne peu tenir dans une seul tête (moi)
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 688
18 mars 2011 à 11:15
18 mars 2011 à 11:15
bonjour à tous,
donc je souhaite avoir une liaison. a demandé weo alors je vous propose cette macro qui crée la liaison entre les 2 plages :
donc je souhaite avoir une liaison. a demandé weo alors je vous propose cette macro qui crée la liaison entre les 2 plages :
Sub Copie_liaison() Dim dep As Range Dim but As Range Dim lgd As Long, lgb As Long Dim cld As Long, clb As Long Set dep = Sheets("Feuil3").Range("A1") ' début plage à transposer Set but = Sheets("Feuil2").Range("B15") ' début plage transposée For lgd = dep.Row To dep.Offset(Columns(1).Cells.Count - dep.Row).End(xlUp).Row lgb = 0 For cld = dep.Column To dep.Offset(0, Rows(1).Cells.Count - dep.Column).End(xlToLeft).Column but.Offset(lgb, clb).Formula = "='" & dep.Worksheet.Name & "'!" & dep.Offset(lgd - 1, cld - 1).Address lgb = lgb + 1 Next cld clb = clb + 1 Next lgd End Sub
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 303
Modifié par michel_m le 18/03/2011 à 11:53
Modifié par michel_m le 18/03/2011 à 11:53
RE à tous
Depuis 2009 j'ai évolué (tout du moins, je crois !...)
la nouvelle version printemps-été 2011
les cellules de départ et de restitution sont à adapter
Michel
Depuis 2009 j'ai évolué (tout du moins, je crois !...)
la nouvelle version printemps-été 2011
'cellule départ tableau( "saison") Const dep As String * 2 = "A1" 'adresse depart restitution (feuille2) Const rest As String * 2 = "B2" Sub phyto_par_saison() Dim lig As Byte, col As Byte, dercol As Byte With Sheets(1) lig = .Range(dep).Row col = .Range(dep).Column dercol = .Cells(lig, 255).End(xlToLeft).Column End With Application.sreenupdating = False Sheets(2).Range(rest).Resize(4, dercol) = Application.Transpose(Sheets(1).Range(Cells(lig, col), Cells(4, dercol)).Value) End Sub
les cellules de départ et de restitution sont à adapter
Michel