Remplissage auto d'une colonne selon un tableau prédéfini

Bonjour à tous,

Désolée si le sujet a déjà été abordé, il me semblait avoir vu une discussion quelque part à ce propos mais impossible de la retrouver.

Voici mon problème, j'ai un tableau de données à quatre colonnes : nom, étage, pièce et couleur, et je remplis au fur et à mesure les colonnes nom, pièce et couleur. Les pièces sont rentrées au format 1.2, 1.3, 1.4, etc. avec "1." l'étage et 2, 3 ou 4 les numéros de pièce.

Je recherche à automatiser les entrées dans la colonne étage en fonction des entrées dans la colonne pièce.

Jusqu'à présent j'utilisais une formule dans la première cellule (si dans la colonne pièce ça commence par 1. alors rentrer 1er, si ça commence par 2. alors rentrer 2ème, etc.) puis je tirais jusqu'en bas du tableau.

J'ai désormais besoin :

  • de pouvoir automatiser l'entrée de beaucoup d'étage. Pour ne pas avoir une formule longue de plusieurs kilomètres, je voudrai utiliser un autre tableau dans une autre feuille où il y aurait deux colonnes : étage et numéro avec "1er, 2ème, 3ème, etc" dans la colonne étage; et "1., 2., 3., etc." dans la colonne numéro. Alors, si dans mon tableau à compléter je tape 1.2 dans la colonne pièce, l'appli irait voir dans ce second tableau, trouverait la case 1. dans la colonne numéro, verrai 1er dans la colonne étage, rebasculerai sur mon tableau et entrerai 1er dans la colonne étage en face de ma case 1.2.
  • de pouvoir réaliser cela en passant par vba (1) pour ne pas avoir à tirer de formule, (2) pour pouvoir intégrer ce code dans une procédure déjà existante**.

**En effet, à l'heure actuelle je rentre une fois le nom et le numéro de pièce en première ligne et ensuite mes couleurs sur x lignes. Lorsque j'atteins la x+1ième ligne et que le nom change, je rentre le nouveau nom et la nouvelle pièce : à ce moment, le logiciel complète les x lignes entre avec le premier nom et la première pièce.

Je voudrais rajouter le code correspondant aux étages dans celui-ci pour qu'il me complète les étages au moment où j'entre un nouveau nom, cad au moment où ils complète les lignes intermédiaires avec le premier nom et la première pièce.

Je vous joins un fichier exemple.

J'espère avoir clairement exposé mon problème.

Si vous pouviez juste me donner une piste sur la façon, dans vba, de coder le fait d'aller chercher cette info dans un autre tableau, ce serait tip top !!

Merci beaucoup,

Fanny

29classeur1.xlsm (21.34 Ko)

Bonjour,

j'ai compris le soucis mais actuellement je n'ais pas trop de temps pour me pencher sur ton code vba pour te le faire en automatique.

En gros il faut que tu intègre une récupération du 1er caractère de "position" (Formule =STXT sous excel que tu peux lancer une fois que tu as coller la position dans sa cellule. comme ça ça te colle la formule seulement quand tu inscrit quelques choses (en gros ça t'évite juste de tirer la formule vu que ça te l'actionnera a chaque ajout))

Enfin petite erreur dans le code (à priori a ce que j'ai vu en testant) : Tu colle toujours le "nouvel agent" dans la même ligne et ça écrase donc l'entrée précédente, pense bien à faire prendre une ligne vide pour ta rentrée sinon tu risque d'être vite embêter pensant que tu rempli bien à la suite et que en faite ça écrase l'ancienne rentrée.

Espérant avoir pu t'aiguillé un peu par manque de temps de t'aider pleinement

Bonjour,

L'idée d'automatiser l'entrée de la formule me plait bien !

Par contre je ne suis pas sûre que la fonction STXT puisse aider : en effet pour mes 10 premiers étages (en comptant le 0) je devrai chercher 2 caractères (0. ->9.) mais à partir du 11ème je devrai en chercher 3 (10. -> xx.).

Il me faudrait une fonction qui cherche du premier caractère jusqu'au caractère ".". Un telle fonction existe-t-elle ??

Merci

Fanny

Ok j'ai rien dit, j'ai trouvé la formule : il faut utiliser la fonction TROUVE à la place de l'argument indiquant le nombre de caractère.

Maintenant j'ai la formule permettant de faire le lien ma pièce 2.3 et la chaine de caractère "2.".

Mais je dois toujours trouver ce 2.1 dans mon second tableau et récupérer la valeur en face cad "2ème"...

Hey

Bon alors j'ai trouvé la formule dont j'ai besoin :

=RECHERCHEV(STXT(C5;1;TROUVE(".";C5; 1)); Feuil2!$A$2:$B$8;2)

(Attention, en Feuil2 j'ai passé la colonne numéro avant la colonne Etage)

Par contre, si je code en vba pour insérer cette formule dans une cellule, ça n'en veut pas : il ne digère pas le ".".....

Une idée ???

Bonjour

faaaaaaanny a écrit :

Une idée ???

Non mais une proposition :

27classeur1-v1.xlsm (34.29 Ko)

Et je trouve dommage que tu n'aies pas mis une liste de couleurs sur la feuille 2. Tu aurais pu tout saisir depuis ta boite de dialogue en ajoutant un combobox dans ton userform.

Une remarque : les noms doivent être uniques. Au besoin tu dois ajouter des indices pour les distinguer. Mais une alerte te prévient.

Cela te convient-il ?

Bye !

Hey

Je n'ai pas mis de liste car dans mon fichier réel il y a bien plus de colonnes qui suivent et celles-ci se remplissent selon les macros que j'active....

Concernant ce que tu me proposes...

Wouah, moi qui était contente de mon "appli" et de tout ce que j'avais appris, vlà la claque xD J'ai rien compris xD

Du coup j'ai opté pour une autre solution : un nouvelle macro que j'activerai tout à la fin pour faire les dernières modifs, dont rentrer les données dans la colonne étage. Et j'ai réussi à zappé la solution du tableau :

J'utilise les fonctions Mid et InStr pour repérer les "2.", "3.", "4.", "10.", "254." (je cherche du début de la chaine de caractère jusqu'au point) et ensuite dans la case d'à côté (offset) je rentre presque la même formule en m'arrêtant juste avant le point et en rajoutant er (si trouvé "1.") ou ème.

Avec un For Next pour traiter toute la colonne

Je l'ai fait direct sur mon fichier donc j'ai pas le code qui colle à l'extrait que je vous ai donné, mais si vous êtes curieux je peux vous le faire

Merci pour tout, notamment l'idée du STXT qui m'a amené au Mid et m'a relancé

Fanny

Rechercher des sujets similaires à "remplissage auto colonne tableau predefini"