Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

plusieurs résultats dans une boucle

  • Initiateur de la discussion Initiateur de la discussion Tuor
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

T

Tuor

Guest
Bonjour à tout le forum,

je cherche à faire afficher par une macro plusieurs lignes d'un tableau excel ayant une caractéristique commune (n° CAP). J'ai tapé le code suivant :


Sub SearchIets1()
Dim rep As String
Dim i As Integer
Dim Cel As Range
rep = InputBox('Veuillez entrer le n° de CAP recherché')

Set Cel = Feuil1.Range('G:G').Find(rep, LookIn:=xlValues)
If Not Cel Is Nothing Then i = Cel.Row
If i > 0 Then
MsgBox Feuil1.Cells(i, 2).Value
MsgBox Feuil1.Cells(i, 4).Value
MsgBox Feuil1.Cells(i, 5).Value
MsgBox Feuil1.Cells(i, 9).Value
Else: MsgBox 'Le n° CAP n'est pas dans la feuille de données'
End If
End Sub

Mais il ne s'affiche qu'une ligne. Comment faire pour que toutes les lignes correspondantes s'affichent?

Est-il possible de les faire directement apparaître sur mon classeur excel, dans des cellules dédiées?

Merci pour tout
Tuor
 
Bonjour tuor


a essayer :



salut
 
pour afficher toutes les lignes

MsgBox Feuil1.Cells(i, 2).Value & chr(13)
& Feuil1.Cells(i, 4).Value & chr(13)
& Feuil1.Cells(i, 5).Value & chr(13)
& Feuil1.Cells(i, 9).Value

pou afficher dans les cellules

sheets('la feuille').range('A1)=Feuil1.Cells(i, 2).Value

etc....

bon eh bien !!!!

mur pour le ZOP sur ce coup

Message édité par: pierrejean, à: 29/06/2006 10:55
 
Merci à vous Hervé et pierrejean.

J'ai fait un copier/coller du code d'Hervé, et ça marche nickel chrome.

Je vous en suis très reconnaissant.
Maintenant, il ne me reste plus qu'à comprendre vos deux codes....

En tout cas, je vous tire mon chapeau.

PS : Vous êtes informaticiens, autodidactes, ou autre sur Excel?? par pure curiosité, parce que je me rend compte que ma marge de progression est énorme.

A bientôt sur le forum
Tuor
 
re tuor, salut pierrejean

personnellement je suis autodidacte et me suis interessé au VBA il y a deux ans environ.

j'ai eu la chance de rencontrer XLD et de cotoyer des pros.

Donc, si tu veux progresser en vba, tu es sur le meilleur support francophone.

ici tu rencontres tout les niveaux, tout types de questions, et surtout des réponses généralement testées (pas le cas sur tout les forums) et pertinante.

salut 🙂
 
RE bonjour

Comme à mon habitude, je m'emporte tellement que je répond trop vite.

En fait, je me rend compte que je n'arrive pas à appliquer la formule de Hervé... peut être à cause du nom de mes feuilles.

En fait, j'ai une feuille 'Feuille de données' (Feuil2 dans VBA) et une feuille 'Recherche de CAP' (Feuil10 dans VBA)

En adaptant la formule de Hervé, cela donne :

Sub SearchIets1()
Dim rep As String, celadresse As String
Dim i As Integer, ligne As Integer
Dim Cel As Range

rep = InputBox('Veuillez entrer le n° de CAP recherché')
If rep = '' Then Exit Sub

With Feuil1.Range('K:K')
Set Cel = .Find(rep, LookIn:=xlValues)
If Not Cel Is Nothing Then
celadresse = Cel.Address
Do
i = Cel.Row
ligne = ligne + 1
Sheets('feuil10').Cells(ligne, 6) = Feuil2.Cells(i, 5).Value
Sheets('feuil10').Cells(ligne, 2) = Feuil1.Cells(i, 6).Value
Sheets('feuil10').Cells(ligne, 3) = Feuil1.Cells(i, 7).Value
Sheets('feuil10').Cells(ligne, 4) = Feuil1.Cells(i, 8).Value
Set Cel = .FindNext(Cel)
Loop While Not Cel Is Nothing And Not Cel.Address = celadresse

Else: MsgBox 'Le n° CAP n'est pas dans la feuille de données'
End If
End With

End Sub


Et là, quand j'exécute la macro, en entrant un n° de ma 'Feuille de données', il me répond par le message d'erreur, alors que cela fonctionne avec le programme de Hervé...
Que faire??

Merci Tuor
 
re


adapte comme ceci :

Feuil10.Cells(ligne, 6) = Feuil2.Cells(i, 5).Value
Feuil10.Cells(ligne, 2) = Feuil1.Cells(i, 6).Value
Feuil10.Cells(ligne, 3) = Feuil1.Cells(i, 7).Value
Feuil10.Cells(ligne, 4) = Feuil1.Cells(i, 8).Value

c'est normal le changement de feuille ( enrouge) ?

barbatruc signifie seulement que tu as dépassé le cap des 3000 messages.

salut
 
Je te remercie Hervé, cette fois ça fonctionne.
En fait, j'avais laissé échappé un 'Feuil1' au lieu de 'Feuil2' dans le code VBA.

Quel étourdi je fais...
Merci pour tout, et à bientôt sur le forum.
 
Der' des der'

Ceci est mon dernier message, promis.

C'est juste pour savoir si on peut, après avoir fait apparaître les infos sur la feuille excel, les enlever avant de lancer une nouvelle recherche?

Ex : j'ai lancé une recherche de 5 résultats, puis une de 3, et il s'affiche les 3 résultats voulus, et reste les 2 derniers de celle précédente...
A bientôt
Amicalement
Erwan
 
Salut Tuor
bonjour Hervé,Pierrejean
arff pour ne pas passer pour un rustre lol
il te suffit Tuor d'effacer la plage avant recopie
If rep = '' Then Exit Sub
Sheets('feuil10').Cells.clearContents par exemple ou
If rep = '' Then Exit Sub
Sheets('feuil10').Range('A1:G123').clearcontents

bon j'en arrive au pourquoi de mon intrusion Hervé comment appelle t'on le nom de la feuille qui figure dans VBA Ex Feuil1 c'est le nom ????
le nom VBA non c'est pas ca Lol

merci d'avance
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
5
Affichages
915
Réponses
15
Affichages
791
Réponses
2
Affichages
528
Réponses
4
Affichages
735
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
453
Réponses
3
Affichages
923
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…