Re : Ecraser des données sur une feuille à l'aide d'un formulaire
Bonjour Leskwal 🙂,
Je ne suis pas sûr que demander au gens de dézipper un fichier inconnu, puis de lancer une macro pour aboutir à la question soit la meilleure façon d'inspirer confiance pour obtenir des réponses, m'enfin...
Bon, j'ai eu un peu de mal à décortiquer tes macros, c'est déjà très compliqué pour peu de choses, j'ai peur que ça finisse en usine à gaz...
Pour simplifier, plutôt que d'utiliser une cellule B100 pour la bascule de ton USF, il serait plus simple de publier une variable:
Public Editer as Boolean
Puis d'affecter à Eviter True si tu veux éditer, False si si tu veux faire un nouvel enregistrement. Tu remplacerais le test sur B100 par un test sur Editer.
Maintenant ton problème d'enregistrement:
Dans ton TextBoxNumero, tu as la valeur de ta ligne si tu rajoutes 2. Mais bon, si ensuite tu supprimes des enregistrement, ou si tu fait des tris, ça va pas le faire. Vu que tu charges une plage de données dans ton combobox, il sera difficile de s'y référer pour connaître la ligne à renseigner... (De plus, j'ai testé en mettant de nouveau B comme Informations en enregistrement, et il ne me trouve que le premier... Il faudra donc que tu interdises la saisie d'une information déjà existante dans l'enregistrement, ou que tu rajoutes un bouton suivant pour trouver le bon.)
Personnellement, je chargerais le combobox dans la procédure UserForm_Initialize() en utilisant la méthode AddItem (tu trouveras d'ailleurs sur le forum du code pour classer par ordre alphabétique ton combobox, ce qui s'avèrera utile quand tu auras plus d'un vingtaine de valeurs...). Puis avec une boucle sur tes cellules concernée, tu cherches ta valeur et tu affectes celles trouvée à ton USF (pour trouver le suivant, tu gardes en mémoire la valeur de ta boucle et tu relance la recherche depuis cette valeur). Et pour enregistrer la modification, il te suffit de faire une boucle pour localiser ton numéro qui en principe est une clef primaire et écraser la ligne concernée.
Bon courage 😎