après plusieurs essais de ma part et des recherches je ne trouve toujours pas comment faire.
Je cherche à changer la valeur dans les cases de la colonne B de ma feuille en fonction de la valeur dans une textbox (laTextBox11 par exemple). Il faudrait donc que le VBA sélectionne la bonne case de la colonne B en fonction d’un chiffre que je rentre en TextBox11 et que quand j’écrive dans la Textbox lié au nom de la couche, ca écrive ce qu’il y a dans la case.
Pour exemple regarder la couche 1, elle marche car la hauteur ne change jamais (0m).
Si je regarde ton formulaire notamment le code derrière le Textbox11 dés que celui-ci change lors d’une saisie ce traitement s’exécute :
Private Sub TextBox11_Change()
TextBox11.Value = TextBox9
End Sub
C’est à dire qu’à toute saisie de ce Textbox ce code remet la valeur de la Texbox9 dans celui-ci
Comme le Textbox9 à la valeur 0 aucune saisie en Textbox11 n’est maintenue car c’est celle du Textbox9 soit 0 qui est remis
Difficile dans ces conditions de mettre un traitement derrière une saisie qui ne reste pas
Quand est il exactement de ce fonctionnement ?
As tu essayé de saisir un chiffre autre que 0 dans ce Textbox11
Impossible il reste à 0
Du fait des lignes de code que je t’ai indiquées ci-dessus qui interviennent à tout changement du Textbox11
Pour le problème de la valeur = 0, il faut seulement changer la valeur de TextBox 9 et la valeur de Textbox11 se changera quand vous supprimerez le 0.
Merci de votre patience mais j’ai réussi a trouver une solution pour la couche 1 avec ce code la :
Range(« B16 »).Select
Range(« B16 »).Value = TextBox2
cela marche car le début de la couche 1 ne change jamais et est égale à 0m. c’est pour ca que je peux mettre B16 pour la cellule de sélection.
Pour les autres couches je voudrais le mêmes principes mais au lieu de B16 un truc qui fasse changer la sélection en fonction de la valeur dans TextBox11.
« Pour le problème de la valeur = 0, il faut seulement changer la valeur de TextBox 9 et la valeur de Textbox11 se changera quand vous supprimerez le 0. »
Certes je l avais bien compris mais il n en reste pas moins que le Texbox11 n est pas modifiable donc difficile de prévoir dans ces conditions une procédure avec sa mise à jour car celle-ci est impossible avec ce fonctionnement
« Pour les autres couches je voudrais le mêmes principes mais au lieu de B16 un truc qui fasse changer la sélection en fonction de la valeur dans TextBox11. »
La valeur dans le Texbox11 est celle du Texbox9
Or pour mettre une procédure derrière il faudrait qu il soit autonome sinon impossible
Sa donnée mise sur laquelle le code devrait agir sera automatiquement remplacée par la valeur du Texbox9 avant l enclenchement de celle-ci donc inopérant sur l issue de son traitement
Il faut revoir la conception de l ensemble ou peut être prévoir un autre Texbox non assujetti à un autre pour que la donnée saisie ne soit remplacée
Je ne vois comment faire autrement c est impossible
Merci d’abord de votre réponse détaillé cela me permet d’apprendre un peu plus.
D’accord, et si la textBox11 ne comportait pas de code et que l’on pourrait saisir ce que l’on veut. Quel serait le code à employer pour faire ce que je voulais ?
La donnée saisie en textbox11 est à rechercher dans quel colonne ?
Je suppose en colonne C puis une fois trouvé en déduire celle de la colonne B pour la mettre à jour d une autre donnée saisie dans une autre Texbox
Ais je bien compris ?
Je ne pensais pas faire comme cela mais cette technique a l’air très bien et même mieux.
Donc oui ce serait comme ca.
Il faut trouvé la ligne correspondant en colonne C puis marqué à la même ligne mais dans la colonne B la valeur marqué dans Textbox10.
Ci-joint ton fichier adapté pour le TextBox11 onglet du formulaire « Couche 2 »
Saisis dans le textbox du Nom de la couche une donnée à ta convenance puis dans le TextBox11 Hauteur de la couche une valeur de la colonne C onglet « Feuille de calcul » sois en saisie manuelle soit avec les petite flèches (attention pour séparer les décimales à utiliser le point et non la virgule)
puis cliques sur le bouton « Valider » du formulaire
Le traitement trouve la ligne dans la colonne C puis remonte sur la première ligne qui détient la première valeur du groupe en colonne D pour intégrer colonne B la donnée du TextBox10 « Nom de la couche »
Fais des essais et dis moi
La procédure pour récupérer la valeur du TextBox9 pour le TextBox11 à été inhibée
Je suis désolé mais la solution que vous proposer n’avait pas l’air de fonctionner. J’ai trouver une solution sur un autre forum. Voici leurs solutions : classeur1.xlsm (18,6 Ko)
Il s’agit d’une solution un peu plus simple que la votre et que je comprend