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)
(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
Cdlt,