Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel
Excel Forum d'entraide sur Excel. Vos questions sur les fonctions, formules, manipulations, et tout sujet qui ne trouve pas sa place dans un sous-forum.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 23/11/2010, 08h03   #1
Invité de passage
 
Sébastien
Inscription : août 2010
Messages : 21
Détails du profil
Informations personnelles :
Nom : Sébastien

Informations forums :
Inscription : août 2010
Messages : 21
Points : 4
Points : 4
Par défaut liste des numéro de ligne où on trouve une valeur

Bonjour,

Mon problème est simple et je pense que il est souvent rencontré, mais je n'arrive pas à trouver la solution et je n'ai pas trouvé grd-chose sur internet.

Dans une colonne "CK", j'ai une liste de valeurs texte, et à l'aide d'une macro je devais faire la liste de tous les numéros de ligne où on trouvait par exemple la valeur "toto". Le problème est que si par exemple on a 250 lignes, la macro compare chacune des 250 lignes avec les 249 autres (250*249), ce qui prend du temps.

Je souhaiterai donc remplacer cette partie de la macro par une formule pr gagner du temps.

En résumé, à partir d'une colonne "CK" contenant des valeurs texte, je souhaiterai placer dans la colonne CL la liste des indices de ligne séparés par une virgule où on trouve la valeur qui est inscrite dans CK. Par exemple :

col CK | col CL

toto | 1,15,21 (numéros de ligne où CK contient "toto")

titi | 2,27 (numéros de ligne où CK contient "titi")


tata | 3,76,89 (numéros de ligne où CK contient "tata")



j'ai pensé à la formule "equiv" mais elle ne renvoie qu'un seul numéro de ligne, et même si elle en renvoyait plusieurs je ne saurai pas comment faire pour séparer chaque numéro de ligne par une virgule.

Merci d'avance à ceux qui me donneront un coup de main, et bonne jrnée
homerlehamster est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2010, 09h30   #2
Expert Confirmé Sénior
 
Avatar de jfontaine
 
Homme Jérôme FONTAINE
Contrôleur de Gestion
Inscription : juin 2006
Messages : 3 884
Détails du profil
Informations personnelles :
Nom : Homme Jérôme FONTAINE
Âge : 38
Localisation : France, Sarthe (Pays de la Loire)

Informations professionnelles :
Activité : Contrôleur de Gestion

Informations forums :
Inscription : juin 2006
Messages : 3 884
Points : 7 146
Points : 7 146
Bonjour,

Je ne serais faire cela avec des formules, mais cette macro ne semble pas mettre trop de temps

Ici on met en colonne B les lignes ou se trouvent les valeurs de la colonne A
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
 
 
Dim rg As Range
Dim i As Long
Dim rginit As Range
 
i = 2
 
Do While Range("A" & i).Value <> ""
 
    Set rg = Range("A:A").Find(Range("A" & i).Value, Range("A1"), xlValues)
    Set rginit = rg
 
    Range("B" & i).Value = ""
 
    Do
 
            Set rg = Range("A:A").FindNext(rg)
            If Range("B" & i).Value <> "" Then Range("B" & i).Value = Range("B" & i).Value & ","
            Range("B" & i).Value = Range("B" & i).Value & rg.Row
 
 
    Loop While Not rg Is Nothing And rg.Address <> rginit.Address
 
    i = i + 1
Loop
__________________
Jérôme

Citation:
"Ils ne savaient pas que c'était impossible, alors ils l'ont fait" - Marc Twain
Si la réponse répond à votre besoin, votre vote nous encouragera.
Dans le cas ou la réponse mérite, à vos yeux, un , nous faire partager la raison de ce vote, pourrait nous permettre de nous améliorer.
jfontaine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2010, 09h52   #3
Invité de passage
 
Sébastien
Inscription : août 2010
Messages : 21
Détails du profil
Informations personnelles :
Nom : Sébastien

Informations forums :
Inscription : août 2010
Messages : 21
Points : 4
Points : 4
merci pour ta réponse, pour l'instant je dois faire autre chose mais je vais tester ça dans la jrnée, je te tiens au courant
homerlehamster est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h27.


 
 
 
 
Partenaires

Hébergement Web