Tri et sélection automatique de données

Bonjour à tous,

Je suis un débutant en VBA et je me suis lancé dans un programme, malgré moi je suis bloqué.

Je viens vous exposer mon problème ici, car après avoir visité plusieurs topics je n’ai pas trouvé de réponse similaire à mon problème.

Voici le problème :

Dans la feuille 1 j’ai une référence qui est composé d’un pourcentage et en fonction du poids total une cellule va varier pour faire correspondre le poids en fonction du pourcentage (règle de 3). La référence doit ensuite être classé en fonction de son poids sur une balance qui est sur la feuille 2. Chaque balance à son intervalle de poids. J’ai ici 4 balances avec sur la feuille avec des espaces en dessous pour indiquer quelle référence va sur quelle balance (en jaune).

J’ai donc commencé ma ligne de code pour classer les valeurs aléatoires pour ma première balance.

If Sheets("Feuil1").Range("S7") <= Sheets("Feuil2").Range("H1") And Sheets("Feuil1").Range("S7") >= Sheets("Feuil2").Range("F1") Then

Sheets("Feuil2").Range("A3") = Sheets("ORDRE DE FABRICATION").Range("A7")

Grace à cette opération la première valeur et classé par son code article dans l’espace dédié de la balance (en jaune)

9essai-macro.xlsx (19.91 Ko)

(Avec Else l’opération aurait pu être répéter plusieurs fois jusqu’à ce qu’une ligne corresponde avec l’intervalle de la balance).

A ce moment ma premier cellule (dans la feuille 2 dans l’espace en jaune) est prise, pour les valeurs qui sont encore à classer dans cet intervalle, il va falloir l’indiquer sur la deuxième cellule, puis sur la troisième cellule etc.

Je répète donc l’opération sur la deuxième cellule ; mais en repartant depuis le début sur ma base de donnée.

Cela donne donc ça :

'Essai 1

If Sheets("Feuil1").Range("S7") <= Sheets("Feuil2").Range("H1") And Sheets("Feuil1").Range("S7") >= Sheets("Feuil2").Range("F1") Then

Sheets("Feuil2").Range("A4") = Sheets("ORDRE DE FABRICATION").Range("A7")

If Sheets("Feuil2").Range("A3") = Sheets("Feuil2").Range("A4") Then

Sheets("Feuil2").Range("A4").Select

Selection.ClearContents

End If

'Essai 2

If Sheets("Feuil1").Range("S8") <= Sheets("Feuil2").Range("H1") And Sheets("Feuil1").Range("S8") >= Sheets("Feuil2").Range("F1") Then

Sheets("Feuil2").Range("A4") = Sheets("ORDRE DE FABRICATION").Range("A8")

If Sheets("Feuil2").Range("A3") = Sheets("Feuil2").Range("A4") Then

Sheets("Feuil2").Range("A4").Select

Selection.ClearContents

Mais lors du processus, il va forcement vouloir classer la première valeur (de la feuille 1) qui correspond mais qui est déjà classé dans la première cellule de la feuille 2. L’idée est donc de lui dire si le contenu de la valeur 1 et « égale » ou contient les même caractère (en sachant que ce dernier et toujours variable) alors tu le supprime et tu passes au suivant.

Et c’est la que je rencontre mon problème. Je n’arrive pas à lui dire supprime la valeur identique et continue. En sachant que ce problème se pose autant de fois que j’ai case par balance.

Je ne sais pas si tout ça est très clair, surement pas mais je ne sais pas comment formuler autrement le problème, si quelqu’un a une idée ou souhaite plus de renseignement j’en serait vraiment reconnaissant.

Ci joint le du document

Encore un grand merci pour votre aide

Très bonne journée

Bonjour Excelman,

Bienvenue sur le forum !

Perso, j'ai arrêté de lire à partir de la ligne 158 . Essayez de réexpliquer le problème concisément ou mettez sur votre fichier les cas possibles et les résultats attendus, vous obtiendrez plus facilement une réponse.

Cdlt,

Rechercher des sujets similaires à "tri selection automatique donnees"