Copie le ligne dans feuille spécifique selon donnée d'une cellule

bonjour FF0,toffduq
la macro sans ce loop supplémentaire

Sub Recherche()
     Dim Ligne, i, c As Range
     If Range("C19") = "" Then
          MsgBox ("Veuillez renseigner la cellules N° Forme avant d'exécuter ce traitement !!!")
          Exit Sub
     End If

     Range("D19", "J19").ClearContents
     For i = 2 To Sheets("Paramètres").Range("A" & Rows.Count).End(xlUp).Row
          On Error Resume Next
          Set sh = Sheets(CStr(Sheets("Paramètres").Range("A" & i).Value))     'votre feuille
          Set c = sh.Columns("C:C").Find(What:=Range("C19"), After:=sh.Range("C4"), LookIn:=xlValues, LookAt:=xlWhole)     'votre cellule
          On Error GoTo 0
          If Not c Is Nothing Then 'trouvé ?
               Range("D19:F19").Value = Array(c.Offset(, 1).Value, sh.Name, c.Offset(, 3).Value)
               Range("J19").Value = c.Offset(, 7).Value
               Exit For
          End If
     Next

End Sub

bonjour FFO
nickel ca fonctionne à merveille
merci pour ton aide

bonjour Cow18
ta macro marché bien aussi mais il me manqué quelque info dans certaine cellules
la version à FFO est fonctionnelle
merci

Bonjour
Merci pour ton retour
N’oublies pas de valider ma réponse un plus bien agréable
Au plaisir une prochaine fois

encore merci pour ton aide
à bientôt et bon Week end

c’était une suggestion pour ce boucle, mais pour les données, il faut simplement changer ceci

If Not c Is Nothing Then 'trouvé ?
               Range("D19:E19").Value = Array(c.Offset(, 1).Value, sh.Name)
               Range("F19").Resize(, 5).Value = c.Offset(, 3).Resize(, 5).Value
               Exit For
          End If
1 « J'aime »

re bonjour FFO
encore un petit truc
j’ai ajouté une recherche par numéro de dossier client pour chercher le numero de forme
cela fonctionne pour les onglets JB, NI, FORME SPECIFIQUE .
mais pour le l’onglet cylindre
je te joins mon fichier
Gestion casier bis.xlsm (45,3 Ko)
merci

Ton soucis vient surtout du format de la donnée recherchée en colonne « F » de l’onglet cible « CYLINDRE » qui n’est pas le même que dans les autres onglets
Ainsi sa donnée recherchée est bien présente mais à l’affichage compte tenu de son format mais pas en tant que tel
J’ai mis le même format que celui des onglets qui fonctionne et bingo tout roule pour cet onglet

Pour cette ligne de code :

ligne = Sheets(onglet).Columns(« c:F »).Find(What:=Range(« C41 »), After:=Sheets(onglet).Range(« C37 »), LookIn:=xlValues, LookAt:=xlWhole).Row

et plus particulièrement cette partie :

Columns(« c:F »).

tu cibles plusieurs colonnes alors que la donnée recherchée n’est que dans une seule

Il vaut mieux ne faire appel qu’à elle comme ceci :

Columns(« F:F »)

Et donc mettre la ligne intégrale ainsi :

ligne = Sheets(onglet).Columns(« F:F »).Find(What:=Range(« C41 »), After:=Sheets(onglet).Range(« F3 »), LookIn:=xlValues, LookAt:=xlWhole).Row

De même pour cette partie :

After:=Sheets(onglet).Range(« C37 »)

Mettre la cellule à partir de laquelle la recherche doit être effectuée donc comme ceci :

After:=Sheets(onglet).Range(« F3 »)

C’est plus propre et plus fonctionnel

Ton fichier avec toutes ces corrections

Testes et dis moi

Gestion casier bis.xlsm (43,7 Ko)

1 « J'aime »

super merci beaucoup pour tes explications

De rien se fut un plaisir pour moi
A très bientôt peut-être

1 « J'aime »

Ce sujet a été automatiquement fermé après 30 jours. Aucune réponse n’est permise dorénavant.