OVH Cloud OVH Cloud

Complément macro

5 réponses
Avatar
Franck
Bonjour,

J'ai une feuille contenant plusieurs colonnes (de A =E0 R)=20
dans laquelle est contenu en colonne I des noms et en=20
colonne J des pr=E9noms. Pour trouver un individu=20
particulier, j'utilise la macro suivante :

Sub TrouveNomPrenom()
Dim NomPrenom, DerLi&, i&, Trouv=E9 As Boolean
NomPrenom =3D _
InputBox("Entrer un nom et un pr=E9nom =E0=20
chercher", , "DURAND Pierre")
DerLi =3D Cells(Rows.Count, "I").End(xlUp).Row
For i =3D 10 To DerLi 'ent=EAte de 1 =E0 9
If UCase(Range("I" & i).Value & " " & _
Range("J" & i).Value) =3D UCase(NomPrenom) Then
Trouv=E9 =3D True: Exit For
End If
Next i
If Trouv=E9 Then MsgBox NomPrenom & " existe en ligne " &=20
i _
Else MsgBox NomPrenom & " n'existe pas"
End Sub

Je ne sais pas quoi rajouter pour que cette macro au lieu=20
de m'indiquer qu'un seul individu correspondant m'indique=20
tous les individus correspondant avec le n=B0 de la ligne=20
sur laquelle ils se trouvent (qui sera donc entre la=20
ligne 10 et 65000)... =E7a doit =EAtre un petit quelque chose=20
tout simple mais j'avoue ne pas savoir faire.
Si vous pouviez m'aider...
Avec mes remerciements pour votre aide.

5 réponses

Avatar
Bonjour
je ne suis pas un grand expert, mais je peux peut-être te
donner une piste:
j'ai cette macro que tu peux, peut-être, adapter à ton cas
en la modifiant

Sub selection_G()
' sélectionne toutes les lignes dont la colonne G affiche
zéro
Dim r As Long
Application.ScreenUpdating = False
On Error Resume Next
For r = Range("G:G").Find("*", [A1], , , xlByRows,
xlPrevious).Row To 1
Step -1
If Cells(r, 7) = 0 Then _
Rows(r).Select
Next r
End Sub

en espérant que ça t'aidera..
-----Message d'origine-----
Bonjour,

J'ai une feuille contenant plusieurs colonnes (de A à R)
dans laquelle est contenu en colonne I des noms et en
colonne J des prénoms. Pour trouver un individu
particulier, j'utilise la macro suivante :

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 = 10 To DerLi 'entête de 1 à 9
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

Je ne sais pas quoi rajouter pour que cette macro au lieu
de m'indiquer qu'un seul individu correspondant m'indique
tous les individus correspondant avec le n° de la ligne
sur laquelle ils se trouvent (qui sera donc entre la
ligne 10 et 65000)... ça doit être un petit quelque chose
tout simple mais j'avoue ne pas savoir faire.
Si vous pouviez m'aider...
Avec mes remerciements pour votre aide.
.



Avatar
ru-th
Salut

pas testé

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 = 10 To DerLi 'entête de 1 à 9
If UCase(Range("I" & i).Value & " " & _
Range("J" & i).Value) = UCase(NomPrenom) Then
nbTrouvé = nbTrouvé+1
adTrouvé­Trouvé & i &"-"
End If
Next i
If NbTrouvé>=1 Then MsgBox nbTrouvé & " " & NomPrenom & " existe en ligne
" & adtrouvé
Else MsgBox NomPrenom & " n'existe pas"
endif
End Sub

a+
rural thierry
"Franck" a écrit dans le message de
news: 1a64601c41e16$a1746490$
Bonjour,

J'ai une feuille contenant plusieurs colonnes (de A à R)
dans laquelle est contenu en colonne I des noms et en
colonne J des prénoms. Pour trouver un individu
particulier, j'utilise la macro suivante :

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 = 10 To DerLi 'entête de 1 à 9
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

Je ne sais pas quoi rajouter pour que cette macro au lieu
de m'indiquer qu'un seul individu correspondant m'indique
tous les individus correspondant avec le n° de la ligne
sur laquelle ils se trouvent (qui sera donc entre la
ligne 10 et 65000)... ça doit être un petit quelque chose
tout simple mais j'avoue ne pas savoir faire.
Si vous pouviez m'aider...
Avec mes remerciements pour votre aide.
Avatar
Franck
Bonjour et merci Thierry, je viens d'essayer mais VBA me
dit qu'il y a une erreur de syntaxe.

-----Message d'origine-----
Salut

pas testé

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 = 10 To DerLi 'entête de 1 à 9
If UCase(Range("I" & i).Value & " " & _
Range("J" & i).Value) = UCase(NomPrenom) Then
nbTrouvé = nbTrouvé+1
adTrouvé­Trouvé & i &"-"
End If
Next i
If NbTrouvé>=1 Then MsgBox nbTrouvé & " " & NomPrenom
& " existe en ligne

" & adtrouvé
Else MsgBox NomPrenom & " n'existe pas"
endif
End Sub

a+
rural thierry
"Franck" a écrit
dans le message de

news: 1a64601c41e16$a1746490$
Bonjour,

J'ai une feuille contenant plusieurs colonnes (de A à R)
dans laquelle est contenu en colonne I des noms et en
colonne J des prénoms. Pour trouver un individu
particulier, j'utilise la macro suivante :

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 = 10 To DerLi 'entête de 1 à 9
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

Je ne sais pas quoi rajouter pour que cette macro au lieu
de m'indiquer qu'un seul individu correspondant m'indique
tous les individus correspondant avec le n° de la ligne
sur laquelle ils se trouvent (qui sera donc entre la
ligne 10 et 65000)... ça doit être un petit quelque chose
tout simple mais j'avoue ne pas savoir faire.
Si vous pouviez m'aider...
Avec mes remerciements pour votre aide.


.



Avatar
Franck
L'erreur de syntaxe se situerait ici :
NomPrenom = _
InputBox("Entrer un nom et un prénom à

-----Message d'origine-----
Salut

pas testé

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 = 10 To DerLi 'entête de 1 à 9
If UCase(Range("I" & i).Value & " " & _
Range("J" & i).Value) = UCase(NomPrenom) Then
nbTrouvé = nbTrouvé+1
adTrouvé­Trouvé & i &"-"
End If
Next i
If NbTrouvé>=1 Then MsgBox nbTrouvé & " " & NomPrenom
& " existe en ligne

" & adtrouvé
Else MsgBox NomPrenom & " n'existe pas"
endif
End Sub

a+
rural thierry
"Franck" a écrit
dans le message de

news: 1a64601c41e16$a1746490$
Bonjour,

J'ai une feuille contenant plusieurs colonnes (de A à R)
dans laquelle est contenu en colonne I des noms et en
colonne J des prénoms. Pour trouver un individu
particulier, j'utilise la macro suivante :

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 = 10 To DerLi 'entête de 1 à 9
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

Je ne sais pas quoi rajouter pour que cette macro au lieu
de m'indiquer qu'un seul individu correspondant m'indique
tous les individus correspondant avec le n° de la ligne
sur laquelle ils se trouvent (qui sera donc entre la
ligne 10 et 65000)... ça doit être un petit quelque chose
tout simple mais j'avoue ne pas savoir faire.
Si vous pouviez m'aider...
Avec mes remerciements pour votre aide.


.



Avatar
ru-th
re-
Celle-ci fonctionne
attention au saut de lignes intempestifs
Sub TrouveNomPrenom()
Dim NomPrenom, DerLi&, i&, Trouvé As Boolean
NomPrenom = _
InputBox("Entrer un nom et un prénom à chercher", , "DURAND Pierre")
DerLi = Cells(65536, "I").End(xlUp).Row
For i = 10 To DerLi 'entête de 1 à 9
If UCase(Range("I" & i).Value & " " & _
Range("J" & i).Value) = UCase(NomPrenom) Then
nbTrouvé = nbTrouvé + 1
adtrouvé = adtrouvé & i & "-"
End If
Next i
If nbTrouvé >= 1 Then
MsgBox nbTrouvé & " " & NomPrenom & " existe en ligne" & adtrouvé
Else
MsgBox NomPrenom & " n'existe pas"
End If
End Sub

a+
rural thierry
"Franck" a écrit dans le message de
news: 1a6ea01c41e1f$7d0f2320$
Bonjour et merci Thierry, je viens d'essayer mais VBA me
dit qu'il y a une erreur de syntaxe.

-----Message d'origine-----
Salut

pas testé

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 = 10 To DerLi 'entête de 1 à 9
If UCase(Range("I" & i).Value & " " & _
Range("J" & i).Value) = UCase(NomPrenom) Then
nbTrouvé = nbTrouvé+1
adTrouvé­Trouvé & i &"-"
End If
Next i
If NbTrouvé>=1 Then MsgBox nbTrouvé & " " & NomPrenom
& " existe en ligne

" & adtrouvé
Else MsgBox NomPrenom & " n'existe pas"
endif
End Sub

a+
rural thierry
"Franck" a écrit
dans le message de

news: 1a64601c41e16$a1746490$
Bonjour,

J'ai une feuille contenant plusieurs colonnes (de A à R)
dans laquelle est contenu en colonne I des noms et en
colonne J des prénoms. Pour trouver un individu
particulier, j'utilise la macro suivante :

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 = 10 To DerLi 'entête de 1 à 9
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

Je ne sais pas quoi rajouter pour que cette macro au lieu
de m'indiquer qu'un seul individu correspondant m'indique
tous les individus correspondant avec le n° de la ligne
sur laquelle ils se trouvent (qui sera donc entre la
ligne 10 et 65000)... ça doit être un petit quelque chose
tout simple mais j'avoue ne pas savoir faire.
Si vous pouviez m'aider...
Avec mes remerciements pour votre aide.


.