OVH Cloud OVH Cloud

Possible ou pas possible ?

22 réponses
Avatar
christophe lenoire
Bonjour =E0 toutes et tous,
J'ai une feuille Excel contenant plusieurs colonnes mais=20
seules deux m'int=E9ressent dans le cadre de ce message.
En colonne I j'ai des noms.
En colonne J j'ai des pr=E9noms.
Mon tableau fait actuellement aux environs de 33.000=20
lignes.
Pensez-vous qu'il soit possible avec Excel de faire une=20
macro me permettant d'effectuer une recherche sur I et J=20
d'une m=EAme ligne.
Exemple : je veux chercher dans ma feuille s'il existe un=20
DURAND (colonne I) pr=E9nomm=E9 Pierre (colonne J)...
Bien s=FBr qu'il serait possible d'obtenir cela par un tri=20
sur I et J mais je ne peux d=E9placer les lignes pour des=20
raisons perso. Je crois que seule une macro pourrait me=20
permettre, sans d=E9placer quoi que ce soit, de faire ce=20
type de recherches, non ?
Merci de votre avis,
Christophe

10 réponses

1 2 3
Avatar
Frédéric Sigonneau
Bonjour,

Autre approche possible :

Sub TrouveNomPrenom()
Dim NomPrenom, DerLi&, i&, Trouvé As Boolean
NomPrenom = _
InputBox("Entrer un nom et un prénom à chercher", , "DURAND Pierre")
DerLi = Cells(Rows.Count, "I").End(xlUp).Row
For i = 2 To DerLi 'on suppose des entêtes en ligne 1
If UCase(Range("I" & i).Value & " " & _
Range("J" & i).Value) = UCase(NomPrenom) Then
Trouvé = True: Exit For
End If
Next i
If Trouvé Then MsgBox NomPrenom & " existe en ligne " & i _
Else MsgBox NomPrenom & " n'existe pas"
End Sub

FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !


Bonjour à toutes et tous,
J'ai une feuille Excel contenant plusieurs colonnes mais
seules deux m'intéressent dans le cadre de ce message.
En colonne I j'ai des noms.
En colonne J j'ai des prénoms.
Mon tableau fait actuellement aux environs de 33.000
lignes.
Pensez-vous qu'il soit possible avec Excel de faire une
macro me permettant d'effectuer une recherche sur I et J
d'une même ligne.
Exemple : je veux chercher dans ma feuille s'il existe un
DURAND (colonne I) prénommé Pierre (colonne J)...
Bien sûr qu'il serait possible d'obtenir cela par un tri
sur I et J mais je ne peux déplacer les lignes pour des
raisons perso. Je crois que seule une macro pourrait me
permettre, sans déplacer quoi que ce soit, de faire ce
type de recherches, non ?
Merci de votre avis,
Christophe


Avatar
modeste
Bonjour,
;-)))
soit tu attends un peu et l'un des freres V ne tardera
point à te donner la formule pour connaitre l'adresse
de la premiere occurence !!!


comme l'a très judicieusement proposé AV :
plages nommées "Noms" et "Prénoms"
en C1 leNom
en D1 lePrénom

Evaluate("match(""" & leNom & """&""" & lePrénom
& """,Noms&Prénoms,0)")
(je n'avais pas encore osé la concatenation des noms de
plage !!!!)


en formule de feuille de calcul cela se traduit par :
={EQUIV(lenom&leprénom;noms&prénoms;0)}
ceci avec validation matricielle
pour faire apparaitre les accolades Ctr+Maj+Entrée
(Aïiiieeee.... les chirogourdistes !!!!)

le résultat est la N°de ligne dans le tableau
;-))))

-----Message d'origine-----
Bonjour,

Autre approche possible :

Sub TrouveNomPrenom()
Dim NomPrenom, DerLi&, i&, Trouvé As Boolean
NomPrenom = _
InputBox("Entrer un nom et un prénom à
chercher", , "DURAND Pierre")

DerLi = Cells(Rows.Count, "I").End(xlUp).Row
For i = 2 To DerLi 'on suppose des entêtes en ligne 1
If UCase(Range("I" & i).Value & " " & _
Range("J" & i).Value) = UCase(NomPrenom) Then
Trouvé = True: Exit For
End If
Next i
If Trouvé Then MsgBox NomPrenom & " existe en ligne " &
i _

Else MsgBox NomPrenom & " n'existe pas"
End Sub

FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !


Bonjour à toutes et tous,
J'ai une feuille Excel contenant plusieurs colonnes mais
seules deux m'intéressent dans le cadre de ce message.
En colonne I j'ai des noms.
En colonne J j'ai des prénoms.
Mon tableau fait actuellement aux environs de 33.000
lignes.
Pensez-vous qu'il soit possible avec Excel de faire une
macro me permettant d'effectuer une recherche sur I et J
d'une même ligne.
Exemple : je veux chercher dans ma feuille s'il existe
un


DURAND (colonne I) prénommé Pierre (colonne J)...
Bien sûr qu'il serait possible d'obtenir cela par un tri
sur I et J mais je ne peux déplacer les lignes pour des
raisons perso. Je crois que seule une macro pourrait me
permettre, sans déplacer quoi que ce soit, de faire ce
type de recherches, non ?
Merci de votre avis,
Christophe


.




Avatar
Christophe Lenoire
Bonjour Frédéric,
Eh ben !! Vu les solutions proposées par les uns et
autres que j'ai essayé mais qui ne fonctionnaient pas
(problème de version ?), vu votre script je me disais que
ça paraissait trop simple pour pouvoir fonctionner... Eh
bien j'avais tort... GRAND GRAND MERCI POUR VOTRE AIDE et
votre solution qui fonctionne à merveille !!
Christophe.

-----Message d'origine-----
Bonjour,

Autre approche possible :

Sub TrouveNomPrenom()
Dim NomPrenom, DerLi&, i&, Trouvé As Boolean
NomPrenom = _
InputBox("Entrer un nom et un prénom à
chercher", , "DURAND Pierre")

DerLi = Cells(Rows.Count, "I").End(xlUp).Row
For i = 2 To DerLi 'on suppose des entêtes en ligne 1
If UCase(Range("I" & i).Value & " " & _
Range("J" & i).Value) = UCase(NomPrenom) Then
Trouvé = True: Exit For
End If
Next i
If Trouvé Then MsgBox NomPrenom & " existe en ligne "
& i _

Else MsgBox NomPrenom & " n'existe pas"
End Sub

FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !


Bonjour à toutes et tous,
J'ai une feuille Excel contenant plusieurs colonnes
mais


seules deux m'intéressent dans le cadre de ce message.
En colonne I j'ai des noms.
En colonne J j'ai des prénoms.
Mon tableau fait actuellement aux environs de 33.000
lignes.
Pensez-vous qu'il soit possible avec Excel de faire une
macro me permettant d'effectuer une recherche sur I et
J


d'une même ligne.
Exemple : je veux chercher dans ma feuille s'il existe
un


DURAND (colonne I) prénommé Pierre (colonne J)...
Bien sûr qu'il serait possible d'obtenir cela par un
tri


sur I et J mais je ne peux déplacer les lignes pour des
raisons perso. Je crois que seule une macro pourrait me
permettre, sans déplacer quoi que ce soit, de faire ce
type de recherches, non ?
Merci de votre avis,
Christophe


.




Avatar
Christophe Lenoire
Pour info : c'est la solution apportée par Frédéric qui
fonctionne parfaitement avec mon fichier. Grand merci à
lui.
-----Message d'origine-----
Bonjour à toutes et tous,
J'ai une feuille Excel contenant plusieurs colonnes mais
seules deux m'intéressent dans le cadre de ce message.
En colonne I j'ai des noms.
En colonne J j'ai des prénoms.
Mon tableau fait actuellement aux environs de 33.000
lignes.
Pensez-vous qu'il soit possible avec Excel de faire une
macro me permettant d'effectuer une recherche sur I et J
d'une même ligne.
Exemple : je veux chercher dans ma feuille s'il existe
un

DURAND (colonne I) prénommé Pierre (colonne J)...
Bien sûr qu'il serait possible d'obtenir cela par un tri
sur I et J mais je ne peux déplacer les lignes pour des
raisons perso. Je crois que seule une macro pourrait me
permettre, sans déplacer quoi que ce soit, de faire ce
type de recherches, non ?
Merci de votre avis,
Christophe
.



Avatar
AV
Pour info : c'est la solution apportée par Frédéric qui
fonctionne parfaitement avec mon fichier.
Grand merci à lui.


Fallait pas, y a pas de quoi ;-)
Pour info : en "t'appliquant un peu", tu devrais pouvoir faire fonctionner
celle que je t'ai proposée !
....plus rapide qu'une boucle ("match" >> recherche dichotomique) !

AV

Avatar
Christophe
Frédéric,
Et si un nom+prénom est présent plusieurs fois dans la
même feuille comment faire pour que ta solution signale
les différentes lignes ? (il s'agit en fait d'un fichier
de recensement contenant bien entendu plusieurs individus
pouvant portant les mêmes nom et prénom).
Merci pour ton apport
-----Message d'origine-----
Bonjour,

Autre approche possible :

Sub TrouveNomPrenom()
Dim NomPrenom, DerLi&, i&, Trouvé As Boolean
NomPrenom = _
InputBox("Entrer un nom et un prénom à
chercher", , "DURAND Pierre")

DerLi = Cells(Rows.Count, "I").End(xlUp).Row
For i = 2 To DerLi 'on suppose des entêtes en ligne 1
If UCase(Range("I" & i).Value & " " & _
Range("J" & i).Value) = UCase(NomPrenom) Then
Trouvé = True: Exit For
End If
Next i
If Trouvé Then MsgBox NomPrenom & " existe en ligne "
& i _

Else MsgBox NomPrenom & " n'existe pas"
End Sub

FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !


Bonjour à toutes et tous,
J'ai une feuille Excel contenant plusieurs colonnes
mais


seules deux m'intéressent dans le cadre de ce message.
En colonne I j'ai des noms.
En colonne J j'ai des prénoms.
Mon tableau fait actuellement aux environs de 33.000
lignes.
Pensez-vous qu'il soit possible avec Excel de faire une
macro me permettant d'effectuer une recherche sur I et
J


d'une même ligne.
Exemple : je veux chercher dans ma feuille s'il existe
un


DURAND (colonne I) prénommé Pierre (colonne J)...
Bien sûr qu'il serait possible d'obtenir cela par un
tri


sur I et J mais je ne peux déplacer les lignes pour des
raisons perso. Je crois que seule une macro pourrait me
permettre, sans déplacer quoi que ce soit, de faire ce
type de recherches, non ?
Merci de votre avis,
Christophe


.




Avatar
sabatier
patiente un peu, christophe, alain va te répondre dès qu'il aura fini
son chabrot...
jps

Christophe a écrit:
Frédéric,
Et si un nom+prénom est présent plusieurs fois dans la
même feuille comment faire pour que ta solution signale
les différentes lignes ? (il s'agit en fait d'un fichier
de recensement contenant bien entendu plusieurs individus
pouvant portant les mêmes nom et prénom).
Merci pour ton apport

-----Message d'origine-----
Bonjour,

Autre approche possible :

Sub TrouveNomPrenom()
Dim NomPrenom, DerLi&, i&, Trouvé As Boolean
NomPrenom = _
InputBox("Entrer un nom et un prénom à


chercher", , "DURAND Pierre")

DerLi = Cells(Rows.Count, "I").End(xlUp).Row
For i = 2 To DerLi 'on suppose des entêtes en ligne 1
If UCase(Range("I" & i).Value & " " & _
Range("J" & i).Value) = UCase(NomPrenom) Then
Trouvé = True: Exit For
End If
Next i
If Trouvé Then MsgBox NomPrenom & " existe en ligne "


& i _

Else MsgBox NomPrenom & " n'existe pas"
End Sub

FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !


Bonjour à toutes et tous,
J'ai une feuille Excel contenant plusieurs colonnes


mais


seules deux m'intéressent dans le cadre de ce message.
En colonne I j'ai des noms.
En colonne J j'ai des prénoms.
Mon tableau fait actuellement aux environs de 33.000
lignes.
Pensez-vous qu'il soit possible avec Excel de faire une
macro me permettant d'effectuer une recherche sur I et


J


d'une même ligne.
Exemple : je veux chercher dans ma feuille s'il existe


un


DURAND (colonne I) prénommé Pierre (colonne J)...
Bien sûr qu'il serait possible d'obtenir cela par un


tri


sur I et J mais je ne peux déplacer les lignes pour des
raisons perso. Je crois que seule une macro pourrait me
permettre, sans déplacer quoi que ce soit, de faire ce
type de recherches, non ?
Merci de votre avis,
Christophe


.







Avatar
Christophe
Merci Alain pour ta réponse,
La réponse de Frédéric convient à mon interrogation;
cependant j'ai quand même imprimé ta solution et celle
proposée par Modeste et les autres pour pouvoir
tranquillement essayer de comprendre le cheminement et
réussir à les faire fonctionner. Ca permet de connaitre
plusieurs solutions possibles à un problème et comme tous
fans d'Excel je n'en suis qu'heureux !!
Merci donc à toi, Modeste, Sabatier, Papou, Michel.
Je continue à m'enrichir de vos connaissances dans les
jours à venir en revenant chaque jour sur ce forum.
Christophe
-----Message d'origine-----
Pour info : c'est la solution apportée par Frédéric qui
fonctionne parfaitement avec mon fichier.
Grand merci à lui.


Fallait pas, y a pas de quoi ;-)
Pour info : en "t'appliquant un peu", tu devrais
pouvoir faire fonctionner

celle que je t'ai proposée !
.....plus rapide qu'une boucle ("match" >> recherche
dichotomique) !


AV


.




Avatar
sabatier
et philippe R, christophe? tu as oublié philippe R?
dépêche-toi de pallier cet oubli avant qu'il ne rentre du travail ou ne
sorte de sa sieste...
jps

Christophe a écrit:

Merci donc à toi, Modeste, Sabatier, Papou, Michel.


Avatar
Christophe
Grand merci aussi à Philippe R... Ouf, oubli réparé, merci
-----Message d'origine-----
et philippe R, christophe? tu as oublié philippe R?
dépêche-toi de pallier cet oubli avant qu'il ne rentre
du travail ou ne

sorte de sa sieste...
jps

Christophe a écrit:

Merci donc à toi, Modeste, Sabatier, Papou, Michel.


.




1 2 3