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
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
.
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
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
.
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
.
.
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
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