Renvoi valeur max d'une colonne par rapport a une autre colo

Bonjour,

Je souhaiterai réaliser une macro me permettant de récupérer la valeur max d'une colonne en fonction d'un critère sur une autre colonne.

J'ai un userform où se trouve une combobox, elle me permet de sélectionner des valeurs (ici du texte) d'une colonne. En fonction de la valeur sélectionnée dans cette combobox je souhaite récupérer le max d'une autre colonne correspondant et l'afficher dans un textbox.

Ensuite je souhaite afficher la valeur incrémentée de 1 dans un autre textbox, puis insérer une ligne à la suite de cette valeur max pour pouvoir y saisir des données dans mon tableau.

Pour l'instant j'arrive juste à récupérer la première valeur correspondant à la ligne sélectionnée via la combobox.

Dans mon fichier ci-joint, ma combobox liste en colonne C des références. Je doit récupérer la valeur max correspondant à la référence sélectionnée en colonne S ou T (ça dépend si c'est plus simple avec des nombres ou des lettres).

Je dois récupérer le n° de ligne de cette valeur max pour insérer après cette ligne une nouvelle ligne.

L'userform concerné est le userform2 correspondant au bouton : Ajouter un test.

En espérant que l'on puisse me guider pour trouver la solution car je galère pas mal et j'ai vraiment besoin de ce code.

Merci d'avance,

Bonne journée

78essai-macro.xlsm (89.00 Ko)

Personne pour m'aider? Je suis vraiment dans la galère!

Merci

Bonjour ,

J'ai un peu de mal à comprendre tes explications ... se que tu souhaite c'est récupérer la valeurs max de S en fonction de la référence sélectionnée ?

renvoi 2 pour M130 ; 3 pour M131 ; ... etc

Cordialement

Alors en fait, via une combobox j'affiche la liste des références colonnes C de mon tableau.

Quand je selectionne une référence dans la combobox, je renvoie dans une textbox le dernier tests (colonne T) réalisé sur cette référence.

Donc dans mon ex :

colonne C (réfs)

M130

M130

M131

M131

M131

Colonne T (tests)

A

B

A

B

C

Si je selectionne dans ma combobox le réf M130 cela me renvoi dans la textbox la valeur B

Pour M131 le valeur C dans mon exemple.

Une fois la ligne du dernier essai connu, par exemple la ligne correspondant au test C de la ref M130, je voudrai insérer une ligne en dessous du test C pour pouvoir saisir un nouveau test D.

J'arrive a afficher la liste dans combobox, a récupérer la derniere valeur. Je n'arrive pas a insérer une ligne en dessous . je pense aussi que mon code ne va pas du tout.

Merci

Re ,

J'ai ajouter un bouton "ajout test" au formulaire

Ce bouton ajoute une ligne vide selon la référence sélectionnée et place la dernière valeur de S dans la box "dernier test"

En espérant que cela te convienne

Cordialement

89essai-macro.xlsm (77.26 Ko)

Merci beaucoup!!

C'est ça!!

Par contre, il manque juste un truc que j'ai pas précisé. Si par exemple pour une référence (dans mon cas la réf M135) il n'y a pas de test, donc de valeur dans la colonne T alors les données sont saisies dans la même ligne que le numéro de ligne de la réf sélectionné. Avec ton code ça marche bien si il y a déjà des tests pour une réf donnée mais ça plante (ce qui est normal car j'ai oublié de le préciser) si il y a pas de test pour une référence existante.

Re

voila j'ai modifié la macro pour qu'elle prenne en compte le problème

Si tu choisi M315 , elle ne plantera plus ^^ (pour l'instant elle affiche juste "ok" mais tu peut y mettre un remplissage de la ligne)

Par contre sa peut poser problème si tu sélectionne une valeur vide , je te conseil don,c de mettre une valeur par défaut à ta liste pour éviter cela .

Sinon il peut-être judicieux de bouger les boutons de sélection à gauche (l'ajout de ligne déforme les cases)

Cordialement

Ramoutch

PS : si y'a encore des modifs , je pourrait pas m'en occuper se soir mais je verrai sa demain ^_^

53essai-macro-2.xlsm (78.24 Ko)

Salut,

Un grand merci pour ton aide.

Alors en fait pour la macro c'est pas exactement ça je pense.

Mon but final de cet userform que tu as modifié est de pouvoir ajouter des valeurs via les textbox qui se trouvent dans mon userform.

Ces valeurs que je souhaite ajouter correspondent à la partie du tableau "Tests" (de la colonne "T" à la colonne "AE").

Ces tests je ne les ajoute que pour une références déjà existante dans la tableau gamme de fabrication (colonne "C" à la colonne "R").

Par exemple pour la réf M131, j'ai déjà 3 tests (A B C). Si je choisi cette référence pour ajouter un test (donc un test "D") via mon userform, je dois ajouter une ligne en dessous du test C déjà existant puis saisir dans cette nouvelle ligne (dans la partie du tableau test) mes informations via les textbox de l'userform. Ça maintenant ça marche, il me manque juste à ajouter du code pour renvoyer les valeurs à saisir dans les textbox dans la nouvelle ligne insérée.

Maintenant si j'ai une référence qui n'a pas de test, dans mon cas par exemple la réf "M135". La ligne de la référence est vide au niveau du tableau "Tests" du coup j'ai pas besoin d'insérer un ligne pour saisir mes valeurs via les textbox. Du coup je dois juste renvoyer les valeur des textbox sur le même numéro de ligne que la réf M135 et dans la partie libre du tableau (Tests).

Je sais pas si je suis très clair mais c'est pas évident à expliquer.

En gros, si pas de test j'ajoute mes valeurs via textbox sur la même ligne sélectionnée par la combobox. Si test déjà présent j’insère une ligne pour y saisir mes valeurs de tests via les textbox.

En tout cas c'est super ce que tu as fais! Il me manque juste le renvoie des valeur des textbox en gros.

Par contre je croi que j'ai un PB avec ton fichier car la textbox 1 n'affiche pas les bonne valeur de tests mais toujours le 1er test. Ce n'est pas très grave en sois car j'arrive a gruger la valeur avec un code de supression de doublon qui me renvoie la derniere valeur du test.

Mais je pense qu'il me manque un truc ou un complément car quand j'appuis sur le bouton de la feuille excel il me d 'y : "impossible de charger l'objet car il n'est pas disponible sur cette machine"

Merci

Bonjour ,

Nouvelle modif :

  • la case dernier test affiche la bonne valeur ( ou 0 si aucun test )
  • remplissage de la ligne avec les valeurs rentré (mais aucun test sur le format des valeurs)

Le nom des tests restera ainsi (A,B,C,...) ou ce sera un nom rentré par l'utilisateur ?(sinon autant virer la textbox , les mettre en format numérique et placé une incrémentation automatique ) ?

Cordialement

Ramoutch

83essai-macro-3.xlsm (76.58 Ko)

Merci beaucoup c'est exactement ça!! Nickel

Concernant les numéros des tests, ça sera toujours des lettres en principe. Et donc ça incrémente a chaque fois la lettre dans Nouveau n° test.

J'avais une autre petite question concernant la macro. La tout fonctionne parfaitement, seulement, l'ajout d'un test modifie la mise en forme du tableau (le trait inférieur de la ligne). Est-ce qu'il est possible par exemple lors d'un ajout de de test d'enlever le trait du bas de la cellule de la ligne sélectionnée via la combobox et de le rajouter à la nouvelle ligne insérée (si une ligne est insérée).

En gros ça serait bien que chaque référence soit séparée par un trait horizontal. Donc qu'il y est ce trait après chaque dernier test ou après la ligne de la référence si il n'y a pas de test pour cette référence.

En tout cas ça m'a vraiment beaucoup aidé ce que tu as fait.

Pour l’identifiant du test , il est pour l'instant entré par l'utilisateur donc il y a une possibilité d'erreur (mais bon si c'est toi qui l'utilise sa devrait pas poser de soucis ^_^ )

Pour l'encadrement c'est peut-être faisable mais je sait pas trop comment ... donc je vais voir sa et je te dirait si je peut le faire

codrialement

Re,

Le problème de la ligne est réglé ( et au passage j'ai ajouté une suppression de case pour que la mise en forme du formulaire de gauche ne soit pas modifié )

Cordialement

ramoutch

26essai-macro-4.xlsm (82.45 Ko)

Super pour l'ajout de la bordure automatiquement.

Par contre j'ai observé un bug dans le code. Quand je rajoute un test"A" à la ref " M135", ça rajoute bien la ligne (par contre pas la bordure car j'ai l'impression que ca le fait que pour une insertion de ligne). Si j'en rajoute un autre test à" M135", donc un test "B" ça plante.

Sinon pour la mise en forme du formulaire je vois pas trop le changement. Chez moi ca bouge tjrs. Mais c'est pas très important sinon. Je peux le mettre en haut. Ou alors je c'est pas si c'est possible de figer la colonne A et B lors d'un scroll vers le bas car j'ai pas besoin de les voir bouger.

Par contre j'ai toujours ce message à l'ouverture du fichier : "impossible de charger l'objet car il n'est pas disponible sur cette machine".

Merci beaucoup

Re ,

Pour le bug je vais regarder sa

Le rajout de ligne ne se fait pas si c'est la première valeur ( car in ajoute pas de ligne donc pas de modification de structure)

Pour le message d'erreur et le changement pour le formulaire je sais pas , peut-être parce que je suis sous 2007 ....

Cordialement

ok.

Mais du coup dans la façon dont je rempli mon tableau ça ne marchera pas à tout les coups. En fait je vais entrer des nouvelles reférences sans tests au début.

Puis je vais ajouter un ou plusieurs test à ces références.

Par exemple mon tableau aura au début juste 1 ou plusieurs références sans tests.

Puis après je vais rentrer un ou plusieurs tests pour une de ces références (sans tests dans le tableau test). L'ordre de remplissage étant aléatoire d'ou l'utilisation de la combobox.

En fait je vais sans cesse ajouter une ref puis quelques temps après ajouter des tests cette derniere ref ou à d'autre ref antérieur.

Encore merci

Re

bug réparé , sa plante plus si tu sélectionne M315

et j'ai ajouter un petit message si on lance sans sélectionner de référence afin d'éviter un plantage

26essai-macro-5.xlsm (82.92 Ko)

Merci encore.

Par contre chez moi ça bug encore.

Quand j'ajoute un second test a la ref "M135" ca bug à ce niveau la : While Range("C" & i).Value = val Or Range("C" & i).Value = "" .

Même si par exemple je laisse que la ref M130 avec juste un test "A" sur la même ligne, lorsque je veux ajouter un autre test "B" ça plante de la même façon.

Peut être un problème de compatibilité entre les version de excel?

J'ai une autre question concernant le code que tu as fait. J'ai vu que tu as spécifier maxi = 999 . je suppose que c'est parce que tu as vu que j'avais mis jusqu’à la 1000. Mais en fait c'est une valeur arbitraire. Ça peut allez plus loin que 1000 lignes.

Est ce que ça correspond bien a ça ce 999.

Désolé j'avais pas vu se bug là ^^ , celui que j'avais réglé était au niveau du formulaire

Je regarde se que je peut faire pour celui-là

Bonjour

Problème résolu pour l'ajout en dernière ligne

Cordialement

35essai-macro-6.xlsm (85.80 Ko)

C'est parfait! Un grand merci vraiment!

Ça m'a beaucoup avancé!

Il me reste a rendre le tout un peu plus convivial au niveau de la présentation des userform et ce sera bon!

Je vais essayer de m'inspirer de ton code pour maintenant ajouter avec un userform du même type les références. Comme ça je vais pouvoir voir si j'ai bien tout compris car j'aimerai bien progresser mais je vois que c'est pas évident quand même.

Je pense que pour le remplissage des références je dois faire un code avec une double condition du genre: si dans la colonne C et dans la colonnes T, pour une même ligne, les deux cellules sont vide alors ajouter ref et autres textbox sur cette ligne.

Bon week end et merci encore

Rechercher des sujets similaires à "renvoi valeur max colonne rapport colo"