Je possède une liste en 3 colonnes: 'date' 'lieu' 'personne'
Les colonnes 'lieu' et 'personne' peuvent contenir des doublons.
j'aimerais pouvoir transformer cette liste en tableau à double entrée du
genre
ici la ailleurs
---------------------------------------------------------
20/11 moi lui elle
21/11 toi moi
22/11 elle toi lui
J'ai tâté du côté des tableaux dynamiques, mais n'arive pas à resortir la
valeur texte 'personne' en tant que pivot.
Toute idée (formule, manip rapide ou code VBA) est la bienvenue.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
AV
Paramètres (à adapter) : En "Feuil1" : - A1:C1 les étiquettes de colonnes : "dates";"lieux";"personnes" - En A2:Ax les dates - En B2:Bx les lieux - En C2:Cx les personnes Les plages "dates";"lieux";"personnes" sont nommées
Sub zz_Tablo_Double_Entrée() Application.ScreenUpdating = False Application.DisplayAlerts = False On Error Resume Next Sheets("TABLO").Delete Sheets.Add.Name = "TABLO" 'extractions With Sheets("Feuil1") .[A:A].AdvancedFilter Action:=xlFilterCopy, CopyToRange:=[A1], Unique:=True .[B:B].AdvancedFilter Action:=xlFilterCopy, CopyToRange:=[B2], Unique:=True End With Set plg = Range("B2", [B65536].End(3)) plg.Copy [A1].PasteSpecial Transpose:=True plg.Clear 'calculs par formules matricielles Rw = [A:A].Find("*", , , , , xlPrevious).Row Col = [1:1].Find("*", , , , , xlPrevious).Address(1, 0) Cl = Left(Col, Application.Find("$", Col) - 1) [B2].FormulaArray "=if(isnumber(match(B$1&$A2,lieux&dates,0)),index(personnes,match(B$1&$A2,lieux& dates,0)),"""")" [B2].AutoFill Destination:=Range("B2:" & Cl & "2") Range("B2:" & Cl & "2").AutoFill Destination:=Range("B2:" & Cl & Rw) Range("B2:" & Cl & Rw) = (Range("B2:" & Cl & Rw)) 'bricoles Cells.EntireColumn.AutoFit [A1].Select: [A1] = "": Set plg = Empty End Sub'av
AV
Paramètres (à adapter) :
En "Feuil1" :
- A1:C1 les étiquettes de colonnes : "dates";"lieux";"personnes"
- En A2:Ax les dates
- En B2:Bx les lieux
- En C2:Cx les personnes
Les plages "dates";"lieux";"personnes" sont nommées
Sub zz_Tablo_Double_Entrée()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
On Error Resume Next
Sheets("TABLO").Delete
Sheets.Add.Name = "TABLO"
'extractions
With Sheets("Feuil1")
.[A:A].AdvancedFilter Action:=xlFilterCopy, CopyToRange:=[A1], Unique:=True
.[B:B].AdvancedFilter Action:=xlFilterCopy, CopyToRange:=[B2], Unique:=True
End With
Set plg = Range("B2", [B65536].End(3))
plg.Copy
[A1].PasteSpecial Transpose:=True
plg.Clear
'calculs par formules matricielles
Rw = [A:A].Find("*", , , , , xlPrevious).Row
Col = [1:1].Find("*", , , , , xlPrevious).Address(1, 0)
Cl = Left(Col, Application.Find("$", Col) - 1)
[B2].FormulaArray "=if(isnumber(match(B$1&$A2,lieux&dates,0)),index(personnes,match(B$1&$A2,lieux&
dates,0)),"""")"
[B2].AutoFill Destination:=Range("B2:" & Cl & "2")
Range("B2:" & Cl & "2").AutoFill Destination:=Range("B2:" & Cl & Rw)
Range("B2:" & Cl & Rw) = (Range("B2:" & Cl & Rw))
'bricoles
Cells.EntireColumn.AutoFit
[A1].Select: [A1] = "": Set plg = Empty
End Sub'av
Paramètres (à adapter) : En "Feuil1" : - A1:C1 les étiquettes de colonnes : "dates";"lieux";"personnes" - En A2:Ax les dates - En B2:Bx les lieux - En C2:Cx les personnes Les plages "dates";"lieux";"personnes" sont nommées
Sub zz_Tablo_Double_Entrée() Application.ScreenUpdating = False Application.DisplayAlerts = False On Error Resume Next Sheets("TABLO").Delete Sheets.Add.Name = "TABLO" 'extractions With Sheets("Feuil1") .[A:A].AdvancedFilter Action:=xlFilterCopy, CopyToRange:=[A1], Unique:=True .[B:B].AdvancedFilter Action:=xlFilterCopy, CopyToRange:=[B2], Unique:=True End With Set plg = Range("B2", [B65536].End(3)) plg.Copy [A1].PasteSpecial Transpose:=True plg.Clear 'calculs par formules matricielles Rw = [A:A].Find("*", , , , , xlPrevious).Row Col = [1:1].Find("*", , , , , xlPrevious).Address(1, 0) Cl = Left(Col, Application.Find("$", Col) - 1) [B2].FormulaArray "=if(isnumber(match(B$1&$A2,lieux&dates,0)),index(personnes,match(B$1&$A2,lieux& dates,0)),"""")" [B2].AutoFill Destination:=Range("B2:" & Cl & "2") Range("B2:" & Cl & "2").AutoFill Destination:=Range("B2:" & Cl & Rw) Range("B2:" & Cl & Rw) = (Range("B2:" & Cl & Rw)) 'bricoles Cells.EntireColumn.AutoFit [A1].Select: [A1] = "": Set plg = Empty End Sub'av
AV
Rodrigue
tout d'abord, un immense MERCI pour ma 1ère sur ce groupe, j'obtiens pas une ébauche de piste, mais quasiment une réponse 'clé sur porte'
TOUTEFOIS
j'ai défini qq variables : Dim plg, rw, col, cl (j'espère que c'est correct..)
la macro se lance effectivement, mais s'arrête après avoir créé la feuille 'tablo' malheureusement, la macro travaille dans la feuille1, détruisant ainsi les premières lignes de ma liste.puis s'arrête ...
je me permets donc alain de te renvoyer la balle ( moi, faudra déjà un certain temps avant que je comprenne ce qui se passe)
mais quoi qu'il en soit, je te remercie pour ton aide
@ te lire bientôt j'espère ... ROD
"AV" a écrit dans le message news: #
Paramètres (à adapter) : En "Feuil1" : - A1:C1 les étiquettes de colonnes : "dates";"lieux";"personnes" - En A2:Ax les dates - En B2:Bx les lieux - En C2:Cx les personnes Les plages "dates";"lieux";"personnes" sont nommées
Sub zz_Tablo_Double_Entrée() Application.ScreenUpdating = False Application.DisplayAlerts = False On Error Resume Next Sheets("TABLO").Delete Sheets.Add.Name = "TABLO" 'extractions With Sheets("Feuil1") .[A:A].AdvancedFilter Action:=xlFilterCopy, CopyToRange:=[A1], Unique:=True
tout d'abord, un immense MERCI
pour ma 1ère sur ce groupe, j'obtiens pas une ébauche de piste, mais
quasiment une réponse 'clé sur porte'
TOUTEFOIS
j'ai défini qq variables : Dim plg, rw, col, cl (j'espère que c'est
correct..)
la macro se lance effectivement, mais s'arrête après avoir créé la feuille
'tablo'
malheureusement, la macro travaille dans la feuille1, détruisant ainsi les
premières lignes de ma liste.puis s'arrête ...
je me permets donc alain de te renvoyer la balle ( moi, faudra déjà un
certain temps avant que je comprenne ce qui se passe)
mais quoi qu'il en soit, je te remercie pour ton aide
@ te lire bientôt j'espère ...
ROD
"AV" <alain.vallon@wanadoo.fr> a écrit dans le message news:
#oQlLBLsDHA.572@TK2MSFTNGP11.phx.gbl...
Paramètres (à adapter) :
En "Feuil1" :
- A1:C1 les étiquettes de colonnes : "dates";"lieux";"personnes"
- En A2:Ax les dates
- En B2:Bx les lieux
- En C2:Cx les personnes
Les plages "dates";"lieux";"personnes" sont nommées
Sub zz_Tablo_Double_Entrée()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
On Error Resume Next
Sheets("TABLO").Delete
Sheets.Add.Name = "TABLO"
'extractions
With Sheets("Feuil1")
.[A:A].AdvancedFilter Action:=xlFilterCopy, CopyToRange:=[A1],
Unique:=True
tout d'abord, un immense MERCI pour ma 1ère sur ce groupe, j'obtiens pas une ébauche de piste, mais quasiment une réponse 'clé sur porte'
TOUTEFOIS
j'ai défini qq variables : Dim plg, rw, col, cl (j'espère que c'est correct..)
la macro se lance effectivement, mais s'arrête après avoir créé la feuille 'tablo' malheureusement, la macro travaille dans la feuille1, détruisant ainsi les premières lignes de ma liste.puis s'arrête ...
je me permets donc alain de te renvoyer la balle ( moi, faudra déjà un certain temps avant que je comprenne ce qui se passe)
mais quoi qu'il en soit, je te remercie pour ton aide
@ te lire bientôt j'espère ... ROD
"AV" a écrit dans le message news: #
Paramètres (à adapter) : En "Feuil1" : - A1:C1 les étiquettes de colonnes : "dates";"lieux";"personnes" - En A2:Ax les dates - En B2:Bx les lieux - En C2:Cx les personnes Les plages "dates";"lieux";"personnes" sont nommées
Sub zz_Tablo_Double_Entrée() Application.ScreenUpdating = False Application.DisplayAlerts = False On Error Resume Next Sheets("TABLO").Delete Sheets.Add.Name = "TABLO" 'extractions With Sheets("Feuil1") .[A:A].AdvancedFilter Action:=xlFilterCopy, CopyToRange:=[A1], Unique:=True
la macro se lance effectivement, mais s'arrête après avoir créé la feuille 'tablo' malheureusement, la macro travaille dans la feuille1, détruisant ainsi les premières lignes de ma liste.puis s'arrête ...
C'est un problème de recopie du code à partir du forum : vraisemblablement les points qui manquent au début des lignes : .[A:A].AdvancedFilter ............................ .[B:B].AdvancedFilter ........................
Attention, par ailleurs, à l'instruction qui commence par : [B2].FormulaArray =........... et se termine par :.......dates,0)),"""")" TOUT est sur une seule ligne !
AV
la macro se lance effectivement, mais s'arrête après avoir créé la feuille
'tablo'
malheureusement, la macro travaille dans la feuille1, détruisant ainsi les
premières lignes de ma liste.puis s'arrête ...
C'est un problème de recopie du code à partir du forum :
vraisemblablement les points qui manquent au début des lignes :
.[A:A].AdvancedFilter ............................
.[B:B].AdvancedFilter ........................
Attention, par ailleurs, à l'instruction qui commence par :
[B2].FormulaArray =...........
et se termine par :.......dates,0)),"""")"
TOUT est sur une seule ligne !
la macro se lance effectivement, mais s'arrête après avoir créé la feuille 'tablo' malheureusement, la macro travaille dans la feuille1, détruisant ainsi les premières lignes de ma liste.puis s'arrête ...
C'est un problème de recopie du code à partir du forum : vraisemblablement les points qui manquent au début des lignes : .[A:A].AdvancedFilter ............................ .[B:B].AdvancedFilter ........................
Attention, par ailleurs, à l'instruction qui commence par : [B2].FormulaArray =........... et se termine par :.......dates,0)),"""")" TOUT est sur une seule ligne !
AV
AV
Puis-je me permettre de t'envoyer mon fichier à ton adresse perso ?? en espérant que ton ordi donne le même résultat que le mien ...
Ok...si possible allègé !
AV
Puis-je me permettre de t'envoyer mon fichier à ton adresse perso ??
en espérant que ton ordi donne le même résultat que le mien ...
Puis-je me permettre de t'envoyer mon fichier à ton adresse perso ?? en espérant que ton ordi donne le même résultat que le mien ...
Ok...si possible allègé !
AV
Rodrigue
merci alain de te pencher sur mon cas... et je dois être effectivement un CAS puisque j'arrive pas à faire tourner le truc..... et pourtant le code m'a l'air correct !!
Puis-je me permettre de t'envoyer mon fichier à ton adresse perso ?? en espérant que ton ordi donne le même résultat que le mien ...
ROD
"AV" a écrit dans le message news: uu$
la macro se lance effectivement, mais s'arrête après avoir créé la feuille
'tablo' malheureusement, la macro travaille dans la feuille1, détruisant ainsi les
premières lignes de ma liste.puis s'arrête ...
C'est un problème de recopie du code à partir du forum : vraisemblablement les points qui manquent au début des lignes : .[A:A].AdvancedFilter ............................ .[B:B].AdvancedFilter ........................
Attention, par ailleurs, à l'instruction qui commence par : [B2].FormulaArray =........... et se termine par :.......dates,0)),"""")" TOUT est sur une seule ligne !
AV
merci alain de te pencher sur mon cas...
et je dois être effectivement un CAS puisque j'arrive pas à faire tourner le
truc.....
et pourtant le code m'a l'air correct !!
Puis-je me permettre de t'envoyer mon fichier à ton adresse perso ??
en espérant que ton ordi donne le même résultat que le mien ...
ROD
"AV" <alain.vallon@wanadoo.fr> a écrit dans le message news:
uu$GC1QsDHA.2304@TK2MSFTNGP12.phx.gbl...
la macro se lance effectivement, mais s'arrête après avoir créé la
feuille
'tablo'
malheureusement, la macro travaille dans la feuille1, détruisant ainsi
les
premières lignes de ma liste.puis s'arrête ...
C'est un problème de recopie du code à partir du forum :
vraisemblablement les points qui manquent au début des lignes :
.[A:A].AdvancedFilter ............................
.[B:B].AdvancedFilter ........................
Attention, par ailleurs, à l'instruction qui commence par :
[B2].FormulaArray =...........
et se termine par :.......dates,0)),"""")"
TOUT est sur une seule ligne !
merci alain de te pencher sur mon cas... et je dois être effectivement un CAS puisque j'arrive pas à faire tourner le truc..... et pourtant le code m'a l'air correct !!
Puis-je me permettre de t'envoyer mon fichier à ton adresse perso ?? en espérant que ton ordi donne le même résultat que le mien ...
ROD
"AV" a écrit dans le message news: uu$
la macro se lance effectivement, mais s'arrête après avoir créé la feuille
'tablo' malheureusement, la macro travaille dans la feuille1, détruisant ainsi les
premières lignes de ma liste.puis s'arrête ...
C'est un problème de recopie du code à partir du forum : vraisemblablement les points qui manquent au début des lignes : .[A:A].AdvancedFilter ............................ .[B:B].AdvancedFilter ........................
Attention, par ailleurs, à l'instruction qui commence par : [B2].FormulaArray =........... et se termine par :.......dates,0)),"""")" TOUT est sur une seule ligne !