Problème pour modifier un formulaire grâce avec une macro.

dexmanu - 17 juil. 2000 à 19:55
 Sylvain - 30 mars 2001 à 08:00
Bonjour,

Je ne sais pas comment faire, et surtout quel langage prendre pour pouvoir modifier un tableau sous Excel existant.
J’ai crée un formulaire (Userform) pour pouvoir entrer une multitude de nom de client, avec leurs renseignements (Style : Adresse, code postal, responsable…. Etc.), jusque là pas de problème.
Mais maintenant, j’ai créé le même formulaire mais j’ai remplacé le TextBox pour la saisie du nom du client par un ComboBox qui me permettra donc, par sa sélection, par la liste déroulante, d’avoir automatiquement les renseignements que j’ai déjà sur le client, apparaître dans les TextBox et/ou ComboBox qui leur appartiennent dans le formulaire et ainsi pouvoir modifier les champs.
Et ensuite, j’aimerais que lorsque je modifie les différents champs, et que lorsque je fais OK les nouveaux champs viennent en remplacement des anciens sous la feuille Excel.
Merci de m’aider.

1 réponse

Pour qu'un ComboBox utilisé dans un formulaire puisse voir une liste "affichable" qui corresponde à une série de cellules EXCEL, on doit spécifier la plage désirée dans "RowSource" (exemple: $D$25:$D$100 ) Les ComboBox aiment les "$" et ont l'air de ne rien faire sans "$"...
Si on veut que la valeur "sélectionnée" (ou modifiée) hors de la liste déroulante s'inscrive dans le chiffrier, il faut également spécifier LA cellule qui va être modifiée dans "ControlSource" (exemple: $D$20); le contenu de cette dernière va également s'afficher par défaut à l'ouverture du formulaire.

Pour modifier n'importe quel item de la liste d'origine, il faut écrire un peu de code dans l'événement clic du ComboBox de façon à rechercher la cellule correspondante au choix effectué et d'y recopier le contenu de la cellule attribuée au ControlSource.

Une suggestion: Comme vous semblez avoir plusieurs champs concernant la même personne, puis-je vous suggérer de faire un formulaire contenant tous les champs voulus.

Faites en sorte que chaque "Zone de Texte" soit reliée à une rangée "toujours la même" (exemple rangée 100) contenant les mêmes champs, des mêmes colonnes que celle de votre BD (ex qui débuterait rangée 101 et suivantes).

À l'appel du formulaire copier le 1er registre (ex ligne 101) dans la ligne 100. Vous voyez donc les données du 1er enregistrement.

Faites-vous un bouton "Précédent", un bouton "Suivant", un bouton "Nouveau", un bouton "supprimer" et selon vos autres besoins. Faites un bouton "Annuler" et un gros bouton "Sauvegarder". (Annuler sort tout simplement) (Sauvegarder recopie la ligne 100 dans la ligne "Compteur" -qui est une variable donnant le numéro de ligne que vous afficher dans le formulaire) (Précédent diminue "Compteur" de 1 s'il est >101 et suivant fait le contraire) (Nouveau recherche la première ligne vide)
Je crois que ce serait plus facile à gérer ainsi et vous avez même la possibilité d'annuler vos changements... (Tant que vous ne cliquez pas sur "Sauvegarder")

Bonne Chance,

Sylvain
0
Rejoignez-nous