Maxoverfred
XLDnaute Occasionnel
Bonjour, j'ai fait quelques recherches sur le croisement de données mais généralement on ne parle pas de mon cas 'simple'
Voici la problématique, j'ai des valeurs dans mes enregistrements que j'aimerais mettre en colonne...
en exemple cela donne ceci, j'ai besoin de
NOM NATIONALITE VILLE
--------------------------------------------
TOTO1 Belge Bruxelles
TOTO2 Espagnol Madrid
TOTO3 Italie Rome
TOTO4 Italie Palerme
Et je voudrais donc
1) Croisement des données
NOM BELGE ESPAGNOL ITALIE
---------------------------------------------------
TOTO1 Bruxelles
TOTO2 Madrid
TOTO3 Rome
TOTO4 Palerme
Donc pour distinguer de manière unique les valeurs dans la colonne Nationalité, cela peut aller avec la fonction suivante
________________________
Sub test()
ListeValUniques Range('K2:K50'), Range('O1')
End Sub
Sub ListeValUniques(PlageSrc As Range, CellDest As Range)
Dim Arr1, Elt, Arr2(), Coll As New Collection
If PlageSrc.Columns.Count > 1 Then Exit Sub
Arr1 = PlageSrc.Value
For Each Elt In Arr1
On Error Resume Next
Coll.Add Elt, CStr(Elt)
If Err.Number = 0 Then
ReDim Preserve Arr2(1 To Coll.Count)
Arr2(Coll.Count) = Elt
End If
On Error GoTo 0
Next
CellDest.Resize(Coll.Count).Value = _
Application.Transpose(Arr2)
End Sub
______________________
2) Faut juste que je lui dise de mettre les valeurs uniques dans les colonnes à droite de la dernière colonne.
3) Parcourir tous les records de ma feuille et à chaque fois remplir la nouvelle colonne avec la valeur correspondante.
Le but étant de réduire les interventions manuelles, le fait de construire un pivottable n'est pas retenu.. car j'aimerais que ce soit une manoeuvre automatique en arrière plan qui fasse tout le travail et vu que le fichier source change chaque semaine..
Si quelqu'un a une piste rapide, merci.
Message édité par: maxoverfred, à: 13/08/2005 22:17
Message édité par: maxoverfred, à: 14/08/2005 11:04
Voici la problématique, j'ai des valeurs dans mes enregistrements que j'aimerais mettre en colonne...
en exemple cela donne ceci, j'ai besoin de
NOM NATIONALITE VILLE
--------------------------------------------
TOTO1 Belge Bruxelles
TOTO2 Espagnol Madrid
TOTO3 Italie Rome
TOTO4 Italie Palerme
Et je voudrais donc
1) Croisement des données
NOM BELGE ESPAGNOL ITALIE
---------------------------------------------------
TOTO1 Bruxelles
TOTO2 Madrid
TOTO3 Rome
TOTO4 Palerme
Donc pour distinguer de manière unique les valeurs dans la colonne Nationalité, cela peut aller avec la fonction suivante
________________________
Sub test()
ListeValUniques Range('K2:K50'), Range('O1')
End Sub
Sub ListeValUniques(PlageSrc As Range, CellDest As Range)
Dim Arr1, Elt, Arr2(), Coll As New Collection
If PlageSrc.Columns.Count > 1 Then Exit Sub
Arr1 = PlageSrc.Value
For Each Elt In Arr1
On Error Resume Next
Coll.Add Elt, CStr(Elt)
If Err.Number = 0 Then
ReDim Preserve Arr2(1 To Coll.Count)
Arr2(Coll.Count) = Elt
End If
On Error GoTo 0
Next
CellDest.Resize(Coll.Count).Value = _
Application.Transpose(Arr2)
End Sub
______________________
2) Faut juste que je lui dise de mettre les valeurs uniques dans les colonnes à droite de la dernière colonne.
3) Parcourir tous les records de ma feuille et à chaque fois remplir la nouvelle colonne avec la valeur correspondante.
Le but étant de réduire les interventions manuelles, le fait de construire un pivottable n'est pas retenu.. car j'aimerais que ce soit une manoeuvre automatique en arrière plan qui fasse tout le travail et vu que le fichier source change chaque semaine..
Si quelqu'un a une piste rapide, merci.
Message édité par: maxoverfred, à: 13/08/2005 22:17
Message édité par: maxoverfred, à: 14/08/2005 11:04