tri et sélection de données avec boucle

  • Initiateur de la discussion Initiateur de la discussion ben
  • 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 !

B

ben

Guest
Bonjour le forum,

J'ai un souci et je cherche une solution depuis tôt ce matin.
Dans le fichier que je joint j'ai 2 feuilles une comprennant une liste de données l'autre avec des "items" (numéro nécessaire que je doit prendre dans la première feuille)

J'aimerai trouver comment faire pour que dans la 1ère feuille dans la colonne B il me parcour la colonne ligne par ligne et dès qu'il tombe sur un chiffre contenu également ds la feuille item il me copie dans une autre feuille la ligne à partir de ce numéro et tout ceux en dessous si ils ont une valeur entre 1 et 99, et qu'il s'arrete de faire la copie jusqu'à se qu'il retoure un numéro identique ds la colonne A de la feuille Item.

J'espère être assez claire j'ai fait en rouge et jaune avec le numéro 512 et 722 un exemple ds le fichier joint

Merci bcp pour votre aide
 

Pièces jointes

merci pour tes explications
Oui wally il faut prendre en compte également les combinaisons de chiffre et de lettre, tu n'as peut être pas le 557T dans le fichier de départ car j'ai enlevé des ligne pour ne pas dépasser les 50 ko maxi pour ce site.

Je ne trouve toujours pas... Faut t-il partir sur une autre fonction que isnumeric mais je ne connais pas la correspondance en alphanumérique j'ai essayé de rajouter 557T un peu partout ds les ligne pour trouver la solution mais pas réussi.
 
Bonjour Ben et le forum,

Essaye de remplacer la boucle For Each ... Next existante par celle-ci :

For Each oRge In ActiveSheet.Range("B2:B" & ActiveSheet.Range("B65536").End(xlUp).Row)
If (IsNumeric(oRge.Value) _
And oRge.Value > 99 _
And oRge.Value <> 997 _
And oRge.Value <> 998 _
And oRge.Value <> 999) _
Or Not (IsNumeric(oRge.Value) _
Or oRge.Value = "AAAA") Then
If Worksheets("item").Range("A:A").Find(oRge.Value, , , xlWhole) Is Nothing Then
bFnd = False
Else
If (IsNumeric(oRge.Offset(1, 0).Value) _
And (oRge.Offset(1, 0).Value <= 99 _
Or oRge.Offset(1, 0).Value = 997 _
Or oRge.Offset(1, 0).Value = 998 _
Or oRge.Offset(1, 0).Value = 999)) _
Or oRge.Offset(1, 0).Value = "AAAA" Then
bFnd = True
Call resultat
Else
bFnd = False
End If
End If
Else
If bFnd Then
Call resultat
End If
End If
Next oRge


Slts

wally
 
Bonjour wally et le forum,
Je suis vraiment trop nul j'ai meme pas penser a utiliser or not isnumeric je cherchai autre chose alors que c'était si simple, j'ai vraiment pas l'esprit développeur

En tout cas je le redis je ne sais comment te remercier, c'était vraiment sympa.
j'espère que cette fois ca va être bon lol

@ bientot
 
- 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
417
Retour