|
|
|
|
Configuration: Windows XP Internet Explorer 6.0
--Salut
tu as combien de colonnes ? et il faut une étiquette pour chaque colonne peux-tu mettre ton fichier sur cjoint.com et me donner le lien xkristi Je ne détiens point la vérité , je te la laisse volontiers ... |
tu peux voir le résultat ici
http://cjoint.com/?cwnkEoZ0EH mais c'est un TCD mais pas tout à fait comme tu veux ... xkristi Je ne détiens point la vérité , je te la laisse volontiers ...
|
Bonjour stephanie,
coucou xkristi :-) Il n'y a pas de fonction excel qui fasse cela.. Je t'ai fait une macro à coller dans un module. Il faut activer ta feuille avec les données avant de lancer la macro. Cette feuille de données peut-être dans un autre classeur, mais le classeur avec la macro doit être également ouvert pour pouvoir la lancer (logique...). Attention j'utilise temporairement les colonnes AA et AB de la feuille de données. Si elles sont utilisées il faut modifier la macro pour repousser ces colonnes. J'espère que j'ai bien compris dans quel sens tu le voulais car je crois qu'on n'a pas la même définition de ligne et colonne... ;-) il me faut les dossiers en ligne les analyses en colonnes et les résultats au milieu (je veux une ligne par dossier) Si tu veux une ligne par dossier c'est qu'ils sont présentés en colonne pour moi... Sinon tu inverses tes 2 1ères colonnes... http://cjoint.com/?cwsrIJBRUW Bonne soirée tout le monde eric PS: Voici le code des fois que ça interesse qcq'un lorsque le lien cijoint ne sera plus actif Option Explicit
Sub Tableau()
' réorganise sous forme de tableau dans une nouvelle feuille des données fournies sur 3 colonnes :
' colonne A : nom de ligne
' Colonne B : nom de colonne
' Colonne C : data
' la feuille contenant les données doit etre active avant de lancer la macro
Dim data()
Dim col()
Dim lig()
Dim nblig As Long, i As Long, j As Long, k As Long
Dim sh As Worksheet
Set sh = ActiveSheet
' créer feuille Tableau (la supprimer avant si existante)
Application.DisplayAlerts = False
On Error GoTo creer
Sheets("Tableau").Activate
Sheets("Tableau").Delete
Application.DisplayAlerts = True
creer:
Sheets.Add.Name = "Tableau"
'
sh.Activate
' préparer tableau
Columns("A:A").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range("AA1"), Unique:=True
col = Range("AA2:AA" & [AA65536].End(xlUp).Row)
Columns("B:B").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range("AB1"), Unique:=True
lig = Range("AB2:AB" & [AB65536].End(xlUp).Row)
'coller noms col
Range([AA2], [AA2].End(xlDown)).Copy
Sheets("Tableau").Range("A2").PasteSpecial Paste:=xlPasteValues, Transpose:=False
'colle noms lig
Range([AB2], [AB2].End(xlDown)).Copy
Sheets("Tableau").Range("B1").PasteSpecial Paste:=xlPasteValues, Transpose:=True
' supprimer colonnes temporaires
Columns("AA:AB").Delete Shift:=xlToLeft
' remplir tableau
data = Range("A2:C" & [A65536].End(xlUp).Row)
For i = 1 To UBound(data)
j = 1
While data(i, 1) <> col(j, 1)
j = j + 1
Wend
k = 1
While data(i, 2) <> lig(k, 1)
k = k + 1
Wend
Worksheets("Tableau").Cells(j + 1, k + 1).Value = data(i, 3)
Next i
End Sub
|
Résultats pour Pb tableau croisé dynamique Données texte
Résultats pour Pb tableau croisé dynamique Données texte
Résultats pour Pb tableau croisé dynamique Données texte
Résultats pour Pb tableau croisé dynamique Données texte
Résultats pour Pb tableau croisé dynamique Données texte