Boucle dans Excel??

Résolu/Fermé
quentinh390 Messages postés 61 Date d'inscription dimanche 30 décembre 2007 Statut Membre Dernière intervention 12 août 2014 - 6 juil. 2010 à 09:38
quentinh390 Messages postés 61 Date d'inscription dimanche 30 décembre 2007 Statut Membre Dernière intervention 12 août 2014 - 6 juil. 2010 à 17:15
Bonjour,

Je suis actuellement entrain de découvrir excel, je vous expose mon problème:

Dans une première colonne j'ai des numéros avec des doublons que je ne peux pas supprimer, parcequ'à chaque numéro est associé un nom dans une deuxième colonne.

Dans une troisième colonne j'ai de nouveau les numéros de la première colonne mais cette fois ci sans les doublons! Je souhaiterais pouvoir écrire les noms qui sont associés à chaque numéro dans une 4ieme voir 5ieme colonne étant donné qu'il y a plusieurs nom pour un même numéro.

Voici un petit croquis pour essayer de mieux m'exprimer:

C1 C2 C3 C4 C5 C6

1 jean 1 jean jacques paul
1 jacques 2 pierre sebastien
1 paul 3 fabrice
2 pierre
2 sebastien
3 fabrice

Voila, C1, C2, C3 est ce que j'ai et C4, C5, C6 sont les résultats.

Auriez vous des idées?

D'avance je vous remercie

2 réponses

Le Pingou Messages postés 12152 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 27 septembre 2024 1 447
Modifié par Le Pingou le 6/07/2010 à 15:43
Bonjour,
Essayer comme suit : la colonne 1 et 2 pour vos données (nombres et prénoms).
Il vous suffit d'entrer le nombre de votre choix dans la colonne 3 et les prénoms correspondants seront insérés.
Note: entrer 0 si pas de choix!
Procédure à mettre dans le module de feuille.

Private Sub Worksheet_Change(ByVal sel As Range) 
Const col = "C" ' colonne de choix 
Const dep = 4 ' numéro colonne premier nom 
If sel.Count > 1 Then Exit Sub 
If Not Intersect(sel, Columns(col)) Is Nothing And sel.Value <> "" Then 
Cells(sel.Row, dep).Resize(1, 20).ClearContents 
    Dim c As Long, cn As Long 
    For c = 1 To UsedRange.Rows.Count 
        If Cells(c, 1) = sel.Value Then 
            Cells(sel.Row, dep + cn).Value = Cells(c, 2).Value 
            cn = cn + 1 
        End If 
    Next c 
End If 
End Sub

Salutations.
Le Pingou
0
quentinh390 Messages postés 61 Date d'inscription dimanche 30 décembre 2007 Statut Membre Dernière intervention 12 août 2014 1
6 juil. 2010 à 17:15
Ok merci je m'en suis sorti c'est bien aimable!
0