[VBA] Correction auto via listes Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
L
Le Drosophile
Membre fidèle
Membre fidèle
Messages : 444
Appréciation reçue : 1
Inscrit le : 27 juin 2018
Version d'Excel : 2016

Message par Le Drosophile » 18 novembre 2019, 19:53

Bonsoir,

Pour une fois, avant de me lancer directement dans un projet je préfère venir vous consulter avant de compliquer les choses.

J'ai dans mon document Excel 2 colonnes (pour le fichier d'exemple) :
Colonne A : nom d'espèces
Colonne B : type

J'aimerais avoir un UserForm qui soit capable de me lister les différentes espèces qui présentent des "types" différents. Cela signifie qu'il y a une erreur dans la saisie. Il faut donc qu'une liste de résultats soit proposés pour corriger l'erreur sur l'ensemble des lignes.

Pour simplifier les choses, peut-on faire ainsi :
Si, pour le même nom d'espèce 2 types différents sont renseignés, alors l'ajouter à une liste.
Ensuite, un userform s'affiche avec une listbox qui liste chaque espèce qui pose problème, on sélectionne une espèce. A la sélection, une seconde listbox (initialement grisée) devient cliquable et qui liste :
"Très fort", "Fort", "Modéré", "Faible", "Très faible", "Nul").
Une fois le choix fait, on peut passer sur une autre espèce, s'il y en a une.

Il se peut que le document ait à traiter quelques milliers de lignes, c'est pourquoi j'essaie de ne pas passer par des procédure trop longue à s'exécuter.

Je vous remercie de votre attention ! :)
Si vous avez une meilleure solution je suis bien évidemment preneur.

Bonne soirée,
A plus tard !
Correction automatique.xlsm
(9.57 Kio) Téléchargé 7 fois
B
Baboutz
Membre fidèle
Membre fidèle
Messages : 288
Appréciations reçues : 18
Inscrit le : 19 avril 2019
Version d'Excel : 2016 FR

Message par Baboutz » 21 novembre 2019, 10:15

Salut Le Drosophile,

Si j'ai bien compris, tu aimerai un UF avec deux listes : la première qui liste les différentes espèces ayant un type différent et la seconde qui liste les différents types de cette espèce entré dans la base de donnée ?

Autre question : les espèces sont-elles toujours les unes à la suite des autres ? Je veux dire si l'espèce X est de la ligne 2 à 8, on ne pourra pas trouver une ligne avec cette espèce à la ligne 87 par exemple ? Je ne sais pas si j'ai été très clair :lole:

Bonne journée,

Baboutz
L
Le Drosophile
Membre fidèle
Membre fidèle
Messages : 444
Appréciation reçue : 1
Inscrit le : 27 juin 2018
Version d'Excel : 2016

Message par Le Drosophile » 22 novembre 2019, 23:35

Bonsoir,

Voici un document Excel qui présente une partie de ce que je cherche à faire.
Il reste une erreur : "Incompatibilité de type" parce que je ne sais pas comment lui faire comprendre ceci :

Si tu trouve des valeurs identiques à celles sélectionnées dans la ListBox1 en [colonne F] ("nom_scientifique") alors, tu remplace la valeur de la cellule correspondante en [colonne H] ("enjeu") par ce qui a été sélectionné dans la ComBox1.

Il faut que ça fonctionne avec "x" sélections depuis la ListBox1.

Je me suis beaucoup inspiré du code de ric que je remercie encore pour toute l'aide apportée.

J'ai quelques requêtes pour peaufiner cet outil :
- Si vous savez comment classer une listBox de manière à ce que les codes apparaissent toujours dans un ordre précis, exemple : "Très fort, Fort, Modéré, Faible, Très faible".
- Les espèces listées dans la ListBox1 (UF1) correspondent aux espèces qui présentent des enjeu différents (il ne peut y en avoir qu'un seul), peut-on faire apparaître dans la ListBox les différents enjeux qui ont été trouvés pour ces espèces ?
- Si vous avez également des solutions pour optimiser le code je suis preneur ! On sait jamais :)

Merci de votre attention.

Bonne soirée !
Liste_et_modifs.xlsm
(752.98 Kio) Téléchargé 2 fois
L
Le Drosophile
Membre fidèle
Membre fidèle
Messages : 444
Appréciation reçue : 1
Inscrit le : 27 juin 2018
Version d'Excel : 2016

Message par Le Drosophile » 23 novembre 2019, 00:17

Autre question : les espèces sont-elles toujours les unes à la suite des autres ? Je veux dire si l'espèce X est de la ligne 2 à 8, on ne pourra pas trouver une ligne avec cette espèce à la ligne 87 par exemple ? Je ne sais pas si j'ai été très clair
Oublié de réponse :?

La position des espèces est variable, en revanche, elles sont toujours classées dans l'ordre alphabétique, depuis la colonne "nom_scientifique".

A plus tard !
g
gmb
Fanatique d'Excel
Fanatique d'Excel
Messages : 12'397
Appréciations reçues : 305
Inscrit le : 4 avril 2013
Version d'Excel : 2016

Message par gmb » 23 novembre 2019, 01:39

Bonjour
Bonjour à tous

Un essai à tester, si j'ai bien compris.
Bye !
Liste_et_modifs (1) v1.xlsm
(753.18 Kio) Téléchargé 3 fois
L
Le Drosophile
Membre fidèle
Membre fidèle
Messages : 444
Appréciation reçue : 1
Inscrit le : 27 juin 2018
Version d'Excel : 2016

Message par Le Drosophile » 23 novembre 2019, 10:12

Bonjour,

Merci pour votre proposition, actuellement, lorsque je clique sur Valider, j'ai toujours l'erreur "Incompatibilité de type". Que je ne sais pas comment résoudre...
g
gmb
Fanatique d'Excel
Fanatique d'Excel
Messages : 12'397
Appréciations reçues : 305
Inscrit le : 4 avril 2013
Version d'Excel : 2016

Message par gmb » 23 novembre 2019, 12:19

En effet. la variable t n'est pas définie :
Private Sub CommandButton1_Click()
    lrdc = dc.Range("A" & Rows.Count).End(xlUp).Row
    
    For e = 2 To lrdc
        If dc.Cells(e, 4) = t Then
            ...
Qu'est-elle censée représenter et que veux-tu qu'il se passe lorsque tu valides après avoir sélectionné un ou plusieurs noms et un enjeu ?
Bye !
L
Le Drosophile
Membre fidèle
Membre fidèle
Messages : 444
Appréciation reçue : 1
Inscrit le : 27 juin 2018
Version d'Excel : 2016

Message par Le Drosophile » 23 novembre 2019, 12:50

Bonjour,

La variable t est déclarée en tant que texte.

La variable t correspond à tous les éléments qui ont été sélectionnés dans la ListBox1 (UF1).
Là où j'ai une erreur, je voudrait qu'à chaque fois qu'Excel trouve t dans la colonne F ("nom-scientifique") alors il modifie la cellule de la même ligne en colonne H ("enjeu") par ce qui a été défini dans la ComboBox1 (UF1).

Cette ComboBox présente les choix suivants : "Très fort, Fort, Modéré, Faible, Très faible", l'enjeu de toutes les espèces sélectionnées correspondra donc au choix qui aura été fait.

Dans la version que vous avez transmise cette nuit (1h39 !) la ComboBox1 n'est plus renseignée pareil (il faudrait qu'elle ne soit pas modifiée, seules les infos dans la ListBox1 peuvent être changées (classement, ajout d'informations, etc.).

Bonne journée :)
g
gmb
Fanatique d'Excel
Fanatique d'Excel
Messages : 12'397
Appréciations reçues : 305
Inscrit le : 4 avril 2013
Version d'Excel : 2016

Message par gmb » 23 novembre 2019, 14:20

Nouvel essai.
Bye !
Liste_et_modifs (1) v2.xlsm
(798.66 Kio) Téléchargé 6 fois
1 membre du forum aime ce message.
L
Le Drosophile
Membre fidèle
Membre fidèle
Messages : 444
Appréciation reçue : 1
Inscrit le : 27 juin 2018
Version d'Excel : 2016

Message par Le Drosophile » 23 novembre 2019, 14:27

Oh super ! C'est exactement ce que je voulais faire ! Merci :mrgreen:

Je vais l'adapter à mon document principal et faire des tests sur les différentes données, mais ça ne devrait pas poser de problème :)

Merci beaucoup !
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message