Boucle sur comboBox_Change

pmfontaine

XLDnaute Occasionnel
Bonjour,
Je souhaiterais savoir s'il est possible de faire une boucle sur plusieurs "Private Sub comboBox_Change()"
En resumé, est-ce que l'on peut
remplacer :
Private Sub comboBox1_Change()"
action1
End Sub
Private Sub comboBox2_Change()"
action2
End Sub
Private Sub comboBox3_Change()"
action3
End Sub
Private Sub comboBox4_Change()"
action4
End Sub
Private Sub comboBox5_Change()"
action5
End Sub

Par un truc du style :
For i = 1 to 5
Private Sub comboBox & i_Change()"
action & i
End Sub
Next i

J'ai bien trouvé https://www.excel-downloads.com/threads/boucle-ave-combobox_change.160876/ sur le forum, mais je ne l'ai pas compris.
Merci
Patrick
 
Dernière édition:

pmfontaine

XLDnaute Occasionnel
Bonjour,
Mon fichier saisie fonctionne bien, mais maintenant je cherche a le faire évoluer pour pouvoir modifier ou supprimer une fiche (une ligne).
J'ai trouvé une piste ICI mais j'ai du mal à modifier le fichier de Dranred.
Est-ce que vous auriez une piste a partir du fichier de Dranred du 25/12/16 que je remets ici en pièce jointe ?
Merci
Patrick
 

Pièces jointes

  • CBxLiéesPmfontaine.xlsm
    127.8 KB · Affichages: 36

Dranreb

XLDnaute Barbatruc
Bonjour.
Il faudrait me préciser ce que vous voulez pouvoir modifier au juste.
Pour ajouter ou supprimer une espèce de la feuille Espèces ce serait relativement simple.
Pour corriger ou supprimer toute une observation, ça impliquerait de pouvoir la retrouver d'après des critères y figurant : Le nom de l'observateur et surtout la date de l'observation, voire l'heure s'il peut y en avoir plusieurs sur un site, pour un observateur dans une même journée.
Ça impliquerait des ComboBox supplémentaires pour ces renseignements et l'utilisation d'un second objet ComboBoxLiées pour les gérer, et, je pense, la suppression de la liste des Sites. (On la reconstituerait d'après les observations et on pourrait en entrer un nouveau.)
 
Dernière édition:

pmfontaine

XLDnaute Occasionnel
Bonsoir Dranreb et Merci pour la rapidité de votre réponse.
Mon Formulaire de saisie final (Voir le votre complété), comportera en plus : la date et les observateurs, Je pense qu'une erreur de saisie est toujours possible, je pense que pour une ligne de la base il serait bien de pouvoir modifier une date, un nom d'observateur voir une espèce (donc les 4 comboBoxliées)
Ensuite au cas ou une données serait considérait comme inutile ou saisie deux fois, il serait bien de pouvoir supprimer cette ligne.
Patrick
 

Pièces jointes

  • CBxLiéesPmfontainetousleschamps.xlsm
    122.3 KB · Affichages: 45

Dranreb

XLDnaute Barbatruc
Il y a plusieurs observateurs pour une même observation ???
Ce sont juste des informations attachées alors, elles ne peuvent servir au repérage de l'observation. Celle ci est uniquement reconnaissable à sa date et au site
Mais il est possible de la faire revenir en entier dans la ListBox pour pouvoir en retirer ou ajouter une espèce.
S'il faut pouvoir changer la date ça implique une complication pour stopper le processus de recherche.
L'objet ComboBoxLiées est équipé de méthodes Stopper et Réactiver pour pouvoir le faire. Mais est-ce bien la peine de s'en servir pour un cas qui se présentera peu souvent ?
 
Dernière édition:

pmfontaine

XLDnaute Occasionnel
Oui dans les relevés actuels, il peut avoir jusqu’à 8 observateurs. Et je sais que le souhait est de continuer à noter les observateurs.
Mon souhait n'est pas de faire revenir la liste complète des espèces pour chaque séance d'observation, mais de pouvoir corriger ligne par ligne, même s'il y a plusieurs lignes a corriger, je pense que les corrections sont exceptionnelles.
En résumé il faudrait afficher le même userform sans la comboBox "LBx" et pouvoir afficher les lignes de TabObs afin de pouvoir la modifier ou la supprimer.
Avant de poster ma question j'ai pensé créer un deuxième UserForm sans "LBx" Je ne sais pas si c'est une bonne piste ?
Bonne soirée
Patrick
 

Dranreb

XLDnaute Barbatruc
Presque impossible à moins de tout compliquer. Pour quelque chose d'exceptionnel ça ne vaut pas le coup.
Qu'est ce qui permet d'identifier une ligne à modifier dans les observations, en dehors du site et de la date, pour lesquels il en existe plusieurs pour des animaux différents ?
On ne peut pas prendre le nom d'animal latin ou vernaculaire parce qu'il est déjà utilisé pour rechercher l'animal dans la liste des espèces, alors on ne peut pas aussi le chercher dans les observations. C'est soit l'un soit l'autre.
On pourrait tout au plus dédier l'un des deux noms à la recherche parmi les observations, et l'autre à celle parmi les espèces.
Une autre solution qui rendrait toute liberté de manœuvre serait de supprimer purement et simplement la liste des espèces et de tout chercher seulement dans les observations. Quitte à ce qu'il y ait éventuellement aussi un site bidon ou vide en plus qui contienne toutes les espèces non observées dans les vrais sites.
Si une même ComboBox est prise en charge par plusieurs objets ComboBoxLiées travaillant avec des tables différentes c'est le plantage assuré, à moins de bien veiller à ce qu'à tout moment un seul de ces objets soit actif.

Remarque: La ListBox pourrait toujours être utilisée, même si tout est dans un seul tableau, celui des observations, en affichant toutes les lignes se rapportant aux choix effectués dans certaines ComboBox.
Ce serait finalement la meilleure solution, parce que si on ne choisi que le site et la date on y trouve très exactement une observation.
 
Dernière édition:

pmfontaine

XLDnaute Occasionnel
Bonjour A tous, Bonjour Dranred,
Merci pour vos réponse. En faite je comprends que nous n'avons pas la même perception de la modification. Je ne souhaite pas que l'on puisse faire une recherche sur un ou deux champ, mais mon idée était de permettre à celui qui rentre les données (ou a un validateur pour les espèces) de pouvoir faire défiler les lignes rentrer dans un Userform et de pouvoir, si besoin, corriger un champs ou le supprimer.
Dans le style de ce fichier http://www.developpez.net/forums/at...rform-crud-c-reate-r-ead-u-pdate-d-elete.xls/
Mais le problème est qu'il n'est peux être pas possible d'avoir les ComBoBox pré-remplis avec une lignes de TabObs et en même temps avoir dans la liste déroulante les données de TabSites, TabEspèces, TabObservateurs ?

Dans ce cas on peut peu être faire simple en mettant juste une colonne en plus dans TabObs, et dans un UserForm simple qui ne fait que lire ligne par ligne la TabObs une case "Validé" NON / OUI.

J'espère que mon explication vous permettra de comprendre ma vision.
Maintenant si il faut faire une usine a gaz pour faire ça, je laisse tombé pour le moment.
Encore Merci
Patrick
 

Dranreb

XLDnaute Barbatruc
Bonjour.
Dans les développement faisables simplement il y a seulement moyen de faire revenir dans la ListBox toutes les lignes d'observations relatives à un site et une date et de les y renvoyer globalement corrigées, avec des lignes en plus, d'autres en moins, et certaines corrigées. Mais on peut ajouter des TextBox ou des CheckBox derrière les ComboBox pour des infos associées à la ligne d'observation, comme une case validé si vous voulez. La seule chose qu'on ne peut pas faire c'est avoir à la fois, au même moment, une connexion avec la table espèce et pouvoir retrouver un animal dans les observations. De ce fait on ne peut pas ramener unes seule ligne d'observation pour un site et une date car aucun critère recherchable ne les distingue.
 

Discussions similaires

Réponses
11
Affichages
871

Statistiques des forums

Discussions
312 235
Messages
2 086 476
Membres
103 227
dernier inscrit
maloalek