Problème répétition boucle

oliwood -  
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour, ou bonsoir c'est selon :)

voilà je débute en VBA et j'ai réussi à bidouiller une macro pour effectuer une recherche dans une plage et renvoyer les valeurs trouvées, mais la boucle ne marche pas je voudrais que le deuxième résultat se mette dans la cellule en dessous et ainsi de suite.
voici le code
Sub TrouverVoisin2()

Dim Cellule As Range
Dim cat As String

cat = "MUS"

With ActiveSheet.Range("G3:G47")
Set Cellule = .Find(cat, Lookat:=xlWhole)
If Not Cellule Is Nothing Then
firstAddress = Cellule.Address
Do
Range("T4").Value = Cellule.Offset(0, -3).Value & Cellule.Offset(0, -2)
Range("U4").Value = Cellule.Offset(0, -2).Value
Exit Sub
Set Cellule = .FindNext(Cellule)
Range("T5").Value = Cellule.Offset(0, -3).Value & Cellule.Offset(0, -2)
Range("U5").Value = Cellule.Offset(0, -2).Value
Loop While Not Cellule Is Nothing And Cellule.Address <> firstAddress
End If
End With
MsgBox "Rien trouvé"
End Sub

si qqun de plus expérimenté pouvait me dire ou est mon erreur ce serait sympa ;)

Bonne soirée

5 réponses

f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Bonjour,

Si vous n'avez que deux infos a recuperer:

Sub TrouverVoisin2()

Dim Cellule As Range
Dim cat As String

cat = "MUS"

With ActiveSheet.Range("G3:G47")
Set Cellule = .Find(cat, Lookat:=xlWhole)
If Not Cellule Is Nothing Then
firstAddress = Cellule.Address
Do
Range("T4").Value = Cellule.Offset(0, -3).Value & Cellule.Offset(0, -2)
Range("U4").Value = Cellule.Offset(0, -2).Value
Set Cellule = .FindNext(Cellule)
Range("T5").Value = Cellule.Offset(0, -3).Value & Cellule.Offset(0, -2)
Range("U5").Value = Cellule.Offset(0, -2).Value
Exit Sub
Loop While Not Cellule Is Nothing And Cellule.Address <> firstAddress
End If
End With
MsgBox "Rien trouvé"
End Sub
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
Bonjour tous les 2

essaies:
Option Explicit

Sub ccm()
Dim Cat As String, Nbre As Byte, LIg As Byte, Cptr As Byte, Yyy As Byte

Application.ScreenUpdating = False
Cat = "MUS"
Nbre = Application.CountIf(Range("G3:G47"), Cat)
If Nbre > 0 Then
LIg = 42
Yyy = 4
For Cptr = 1 To Nbre
LIg = Columns("G").Find(Cat, Cells(LIg, "G"), xlValues).Row
Cells(Yyy, "T") = Cells(Yyy, "Q") & " " & Cells(Yyy, "R")
Cells(Yyy, "U") = Cells(Yyy, "S")
Yyy = Yyy + 1
Next
Else
msgbox "rien trouvé"
End If

End Sub


Michel
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Bonjour michel_m

Avant de lui sortir a peu pres le meme code que vous, vu qu'il a fait l'effort de chercher dans l'aide excel ( ail suppose, docteur), je lui ai simplement corriger la position de sortie du fait qu'il n'y a que deux infos a priori. Comme cela petite satisfaction personnelle pour lui.
0
oliwood
 
Merci de vous penchez sur mon cas mais la première solution proposée a visiblement le même problème que moi , elle ne renvoie que la première réponse trouvée pas les autres.
Et la deuxième me met des X dans les cases lol

je comprends de moins en moins mdr
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Bonjour,

elle ne renvoie que la première réponse trouvée pas les autres.
Dites voir c'est la deuxieme ou toutes les autres qu'il faut trouver????????????????????

Le code de michel_m marche tres bien, au colonnes pres (offset negatif)!!!!!
Le mien aussi, a condition de n'avoir que deux infos!!!!!!
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
RE,

Je n'ai pas utilisé la fonction Offset ??? comprend pas

cells(yyy,"Q") <==> cells(xxx,"T).offset(yyy,-3) ?
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Re,

Sauf erreur de ma part,

code de depart
Cellule=====>Gx
Range("T4").Value = Cellule.Offset(0, -3).Value & Cellule.Offset(0, -2)

Vous:
Cells(Yyy, "T") = Cells(Yyy, "Q") & " " & Cells(Yyy, "R")

Pas les memes
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
Effectivement, précipitation de ma part...

il fallait écrire
Cells(Yyy, "T") = Cells(Yyy, "D") & " " & Cells(Yyy, "E")
Cells(Yyy, "U") = Cells(Yyy, "E")

Merci, F89
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Re,

Vous savez les + et les -, c'est trompeurs
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
oliwood
 
il y'a eu maldonne j'ai mal compris en fait il peut y'avoir jusqu'à 44 données comme réponses j'avais compris les deux données les deux valeur si la condition est remplie en fait
0