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

2 réponses

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

Essaye avec ces modifications :

Sub TrouveNomPrenom()
Dim NomPrenom, DerLi&, i&, Trouvé As Boolean
Dim S, Msg

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
S = S & i & ";"
End If
Next i

If Not Trouvé Then
MsgBox NomPrenom & " n'existe pas"
Exit Sub
End If

Msg = NomPrenom & " existe en ligne(s) :" & vbLf
For i = LBound(Split(S, ";")) To UBound(Split(S, ";")) - 1
Msg = Msg & Split(S, ";")(i) & vbLf
Next i

MsgBox Msg

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 !


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
bonjour Frédéric,
GRAND Merci, tes modifs fonctionnent parfaitement !!
Bonne journée à toi,
Bonne journée à tous,
Christophe
-----Message d'origine-----
Re,

Essaye avec ces modifications :

Sub TrouveNomPrenom()
Dim NomPrenom, DerLi&, i&, Trouvé As Boolean
Dim S, Msg

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
S = S & i & ";"
End If
Next i

If Not Trouvé Then
MsgBox NomPrenom & " n'existe pas"
Exit Sub
End If

Msg = NomPrenom & " existe en ligne(s) :" & vbLf
For i = LBound(Split(S, ";")) To UBound(Split
(S, ";")) - 1

Msg = Msg & Split(S, ";")(i) & vbLf
Next i

MsgBox Msg

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 !


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


.




.






1 2 3