ce n'est pas possible, le champ de données est uniquement numérique.
isabelle
Bonjour,
soit une feuille Excel avec 3 colonnes : - Le nom d'une personne - Le nom d'un pays - Le nom d'une ville
Je voudrais obtenir un tableau croisé : - en ligne : le nom des personnes - en colonne : le nom des pays
Jusqu'ici, tout va bien, ça me donne le nombre de villes visités par personne par pays.
Mais au lieu du nombre, je voudrais que la donnée centrale soit une concaténation des noms de ville (avec un espace au milieu).
Exemple : - ligne : Bob - colonne : Roumanie - intersection: Bucuresti Brasov Craiova
Est-ce possible ?
Merci !
Elliac
Bonjour,
Le bout de code à exécuter à partir d'une copie de ton tableau : Sub Macro1() Range("a2").Select While ActiveCell <> "" If ActiveCell.Offset(1) = ActiveCell Then While ActiveCell.Offset(1, 1) = ActiveCell.Offset(, 1) ActiveCell.Offset(, 2) = ActiveCell.Offset(, 2) & " " _ & ActiveCell.Offset(1, 2) ActiveCell.Offset(1).EntireRow.Delete Wend End If ActiveCell.Offset(1).Select Wend End Sub
Camille
"myname" wrote:
Bonjour,
soit une feuille Excel avec 3 colonnes : - Le nom d'une personne - Le nom d'un pays - Le nom d'une ville
Je voudrais obtenir un tableau croisé : - en ligne : le nom des personnes - en colonne : le nom des pays
Jusqu'ici, tout va bien, ça me donne le nombre de villes visités par personne par pays.
Mais au lieu du nombre, je voudrais que la donnée centrale soit une concaténation des noms de ville (avec un espace au milieu).
Exemple : - ligne : Bob - colonne : Roumanie - intersection: Bucuresti Brasov Craiova
Est-ce possible ?
Merci !
Bonjour,
Le bout de code à exécuter à partir d'une copie de ton tableau :
Sub Macro1()
Range("a2").Select
While ActiveCell <> ""
If ActiveCell.Offset(1) = ActiveCell Then
While ActiveCell.Offset(1, 1) = ActiveCell.Offset(, 1)
ActiveCell.Offset(, 2) = ActiveCell.Offset(, 2) & " " _
& ActiveCell.Offset(1, 2)
ActiveCell.Offset(1).EntireRow.Delete
Wend
End If
ActiveCell.Offset(1).Select
Wend
End Sub
Camille
"myname" wrote:
Bonjour,
soit une feuille Excel avec 3 colonnes :
- Le nom d'une personne
- Le nom d'un pays
- Le nom d'une ville
Je voudrais obtenir un tableau croisé :
- en ligne : le nom des personnes
- en colonne : le nom des pays
Jusqu'ici, tout va bien, ça me donne
le nombre de villes visités par personne par pays.
Mais au lieu du nombre, je voudrais que la donnée
centrale soit une concaténation des noms de ville
(avec un espace au milieu).
Exemple :
- ligne : Bob
- colonne : Roumanie
- intersection: Bucuresti Brasov Craiova
Le bout de code à exécuter à partir d'une copie de ton tableau : Sub Macro1() Range("a2").Select While ActiveCell <> "" If ActiveCell.Offset(1) = ActiveCell Then While ActiveCell.Offset(1, 1) = ActiveCell.Offset(, 1) ActiveCell.Offset(, 2) = ActiveCell.Offset(, 2) & " " _ & ActiveCell.Offset(1, 2) ActiveCell.Offset(1).EntireRow.Delete Wend End If ActiveCell.Offset(1).Select Wend End Sub
Camille
"myname" wrote:
Bonjour,
soit une feuille Excel avec 3 colonnes : - Le nom d'une personne - Le nom d'un pays - Le nom d'une ville
Je voudrais obtenir un tableau croisé : - en ligne : le nom des personnes - en colonne : le nom des pays
Jusqu'ici, tout va bien, ça me donne le nombre de villes visités par personne par pays.
Mais au lieu du nombre, je voudrais que la donnée centrale soit une concaténation des noms de ville (avec un espace au milieu).
Exemple : - ligne : Bob - colonne : Roumanie - intersection: Bucuresti Brasov Craiova
Est-ce possible ?
Merci !
JB
Bonjour,
Voir PJ http://cjoint.com/?mDqstjAzFk
S'il n'y avait qu'une villepar pays, nous pourrions obtenir le tableau avec une formule matricielle.
On suppose que l'on a laliste des pays en G1,I1,.. et la liste des noms en F2,F3,...
[A2].Select Do While ActiveCell <> "" x = Application.Match(ActiveCell, Range([F2], [F2].End(xlDown)), 0) y = Application.Match(ActiveCell.Offset(0, 1), Range([G1], [G1].End(xlToRight)), 0) Range("F1").Offset(x, y).Value = Range("F1").Offset(x, y).Value & _ ActiveCell.Offset(0, 2) & " " ActiveCell.Offset(1, 0).Select Loop
Cordialement JB
Bonjour,
Voir PJ http://cjoint.com/?mDqstjAzFk
S'il n'y avait qu'une villepar pays, nous pourrions obtenir le tableau
avec une formule matricielle.
On suppose que l'on a laliste des pays en G1,I1,.. et la liste des noms
en F2,F3,...
[A2].Select
Do While ActiveCell <> ""
x = Application.Match(ActiveCell, Range([F2], [F2].End(xlDown)),
0)
y = Application.Match(ActiveCell.Offset(0, 1), Range([G1],
[G1].End(xlToRight)), 0)
Range("F1").Offset(x, y).Value = Range("F1").Offset(x, y).Value &
_
ActiveCell.Offset(0, 2) & " "
ActiveCell.Offset(1, 0).Select
Loop