Horusbk
XLDnaute Junior
Bonjour,
J'ai créé une application VBA (voir fichier joint) permettant à mes collaborateurs de trouver facilement une cellule donnée. Son fonctionnement est assez simple : grâce à un userform on sélectionne le N° de commande souhaitée (listebox) puis la date de la commande (combobox). Lorsqu'on clique sur chercher, Excel nous montre la cellule à modifier par l'intersection de la ligne et colonne voulues (choisi précédemment dans l'userform).
Par exemple :
Mon problème, est qu'avec le code actuel, c'est uniquement le dernier enregistrement 860878/9 qui fonctionne. Pour tous les autres, le VBA me renvoi une erreur "13" qui pointe vers cette ligne :
Selon moi, c'est CStr qui pose problème. Donc, je le modifie par CLng.
Avec cette modification tous les enregistrements de type nombre fonctionne avec le formulaire. Mais, ce n'est plus le cas avec le 860878/9 (en prenant en compte que dans mon fichier professionnel il y a beaucoup plus d'enregistrements de ce type...).
Ma question est donc la suivante :
Est-il possible de modifier mon code actuel de façon à ce que tous les numéros de commande soient pris en compte dans l'application ? (et que je n'ai plus de message d'erreur).
Dans le même temps :
Est-il possible que ma listbox de mon userform affiche une fois et une seule les données en double ?
Par exemple, la commande 8000 est présente trois fois, est-il possible de l'afficher une seule fois.
Par la suite je vais chercher à faire apparaître dans une autre listbox les différents types d'envoi lorsqu'une valeur de la colonne N° de commande est en double. (si vous connaissez la solution n'hésitez pas).
Merci pour votre aide, à votre disposition pour tous détails.
Baptiste.
J'ai créé une application VBA (voir fichier joint) permettant à mes collaborateurs de trouver facilement une cellule donnée. Son fonctionnement est assez simple : grâce à un userform on sélectionne le N° de commande souhaitée (listebox) puis la date de la commande (combobox). Lorsqu'on clique sur chercher, Excel nous montre la cellule à modifier par l'intersection de la ligne et colonne voulues (choisi précédemment dans l'userform).
Par exemple :
Mon problème, est qu'avec le code actuel, c'est uniquement le dernier enregistrement 860878/9 qui fonctionne. Pour tous les autres, le VBA me renvoi une erreur "13" qui pointe vers cette ligne :
VB:
Ligne = Application.Match(CStr(Me.ListBox1.Text), .[C:C], 0)
Selon moi, c'est CStr qui pose problème. Donc, je le modifie par CLng.
Avec cette modification tous les enregistrements de type nombre fonctionne avec le formulaire. Mais, ce n'est plus le cas avec le 860878/9 (en prenant en compte que dans mon fichier professionnel il y a beaucoup plus d'enregistrements de ce type...).
Ma question est donc la suivante :
Est-il possible de modifier mon code actuel de façon à ce que tous les numéros de commande soient pris en compte dans l'application ? (et que je n'ai plus de message d'erreur).
Dans le même temps :
Est-il possible que ma listbox de mon userform affiche une fois et une seule les données en double ?
Par exemple, la commande 8000 est présente trois fois, est-il possible de l'afficher une seule fois.
Par la suite je vais chercher à faire apparaître dans une autre listbox les différents types d'envoi lorsqu'une valeur de la colonne N° de commande est en double. (si vous connaissez la solution n'hésitez pas).
Merci pour votre aide, à votre disposition pour tous détails.
Baptiste.