Changer la zone de selection en fonction de la valeur d'une TextBox USF

Bonjour,

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 en fonction de la valeur dans une textbox (laTextBox11 par exemple). Sachant que les cases fusionnées représentent les hauteurs des couches et j'aimerais que les noms affichés dans ces cases soit celui marqué dans la textbox "Nom de la couche"

Si je n'ai pas été clair merci de me le dire

Merci d'avance pour votre aide.

il faut en gros que je fasse ca, je pense :

Private Sub TextBox2_Change()
Range("B16").Select
Range("B16").Value = TextBox2

End Sub

mais avec le B16 qui change en fonction de la valeur de la TextBox qui représente la hauteur de couche

Bonjour,

La hauteur de la couche correspond aux valeurs de la colonne C ?

Sinon attention avec les fusions et VBA, c'est toujours un problème. Le mieux est d'avoir une référence à chaque cellule

Cordialement

oui c'est exact

A d'accord je ne connaissais pas le problème. Comment faire pour avoir une référence pour chaque cellule ?

Merci pour votre réponse

Donc si je comprends bien, vous choisissez une hauteur de couche en textbox 11 et vous voulez en textbox 10 avoir le nom de la couche qui se trouve en colonne B ?

Aussi à quoi sert le spinbutton en regard de la textbox11 ?

oui c'est ca. Je voudrais que la hauteur sélectionner dans la textbox11 correspondent à la case dans laquelle le nom de la couche va s'écrire.

Regarder pour la couche 1 ca marche car la case de début (B16) ne change pas.

Je voudrais la même chose mais avec les autres couches.

Merci

Bonjour

1. A droite de la textbox11 vous avez une textbox13, elle sert à quoi ?

2. Par ailleurs vous n'avez pas répondu à ma 2ieme question de mon post précédent

3. Regarder pour la couche 1 ca marche car la case de début (B16) ne change pas.

Je n'ai pas compris. En B16 il n'y a pas de données dans votre fichier

1. Elle sert à marquer la limite basse de la couche. Exemple entre 4m et 11m.

2. Le spin button en Textbox 11 sert à changer la valeur dans la textbox mais je l'ai enlever dans les versions d'après car j'ai mis la valeur d'une autre textbox à la place. Mais cela n'as rien à voir avec ma problématique

3. Regarder dans la nouvelle version que je vous ai donner. Quand on modifie la valeur de la textbox en face de Nom de la couche et bien il a quelque chose qui s'affichent dans la B16. J'ai réussi à faire ça car cette case ne change jamais puisque la couche 1 commence toujours à 0m.

Il faudrait donc que je puisse faire la même chose avec la valeur haute de la couche 2. il faudrait que ca fasse ca en fonction de la valeur que j'ai rentré dans la textbox 11

3. Regarder dans la nouvelle version que je vous ai donner. Quand on modifie la valeur de la textbox en face de Nom de la couche et bien il a quelque chose qui s'affichent dans la B16. J'ai réussi à faire ça car cette case ne change jamais puisque la couche 1 commence toujours à 0m.

Pour la couche 2, votre textbox2 de la couche 1 devient la textbox10. Dans votre userform, il vous donc faut un code Private sub textbox10_change. Là il faut savoir où doit aller la valeur de la textbox10 quand vous la complétez.

Il faudrait donc que je puisse faire la même chose avec la valeur haute de la couche 2. il faudrait que ca fasse ca en fonction de la valeur que j'ai rentré dans la textbox 11

Si vous mettez où la valeur haute de la couche 2 en textbox11
- par exemple valeur de 5, vous voulez que l'on mette la valeur de la textbox10 en B16 ?
- par exemple valeur de 10, la textbox10 va où ? en B35 ?

Si vous mettez où la valeur haute de la couche 2 en textbox11
- par exemple valeur de 5, vous voulez que l'on mette la valeur de la textbox10 en B16 ?
- par exemple valeur de 10, la textbox10 va où ? en B35 ?

Je voudrais que quand je marque 5, la valeur de la textbox 10 se mette en B16 +5. Soit B21. Et quand il vaut 10, en B35. etc...

Pour la couche 2, votre textbox2 de la couche 1 devient la textbox10. Dans votre userform, il vous donc faut un code Private sub textbox10_change. Là il faut savoir où doit aller la valeur de la textbox10 quand vous la complétez.

Oui il faut savoir où va la valeur de la textbox10. Et cela serait fait par la valeur de la textbox11 (la hauteur)

Pourquoi avez vous mis ce code dans le fichier

Private Sub TextBox11_Change()
TextBox11.Value = TextBox9
End Sub

Comme cela on ne sait pas changer la valeur de la textbox11 qui doit servir à trouver la ligne en colonne B pour mettre la valeur de la textbox10

Ou alors cela sert à connaitre la valeur min dans la couche 2 ? si oui, là cela a du sens

J'ai mis ce code car la valeur de la hauteur haute de la couche ne peut pas être différente de celle dans la textbox9. C'est en effet la valeur min de la couche 2.

Oui la textbox 11 correspond à la valeur de la ligne en colonne B et dans la colonne B on doit mettre la valeur de la textbox10 mais la ligne change en fonction de la valeur de la textbox11.

J'ai l'impression que l'on tourne en rond... savez-vous vraiment comment faire ?

Bonjour

savez-vous vraiment comment faire ?

??? ben évidemment. Le tout est de bien comprendre comment vous fonctionnez.

Pour résumer :

La textbox 3 est toujours à 0, la textbox 2 va toujours en B16
La textbox 9 est complétée
La textbox 11 prend toujours la valeur de la textbox 9. Ce qui fait que lorsque vous cliquez sur l'onglet Couche 2, la textbox11 affiche automatiquement la valeur de la textbox 9.
La valeur de la textbox 10 est positionnée en colonne B en fonction de la valeur de la textbox11 trouvée en colonne C

Pour allez plus loin, est-ce que cette manière de procéder est la même lorsque vous cliquez sur l'onglet Couche 3

Merci de confirmer

Bonjour,

La textbox 3 est toujours à 0, la textbox 2 va toujours en B16
La textbox 9 est complétée
La textbox 11 prend toujours la valeur de la textbox 9. Ce qui fait que lorsque vous cliquez sur l'onglet Couche 2, la textbox11 affiche automatiquement la valeur de la textbox 9.
La valeur de la textbox 10 est positionnée en colonne B en fonction de la valeur de la textbox11 trouvée en colonne C

Tout ce qui est dis est vrai à l'exception de :

La valeur de la textbox 11 ne change pas automatiquement quand je clique sur l'onglet couche 2, il faut supprimer le 0 et la valeur de la textbox9 apparait dans la textbox11. Si vous savez comment faire pour la rendre automatique je suis preneur. Peut être en mettant le code dans l'onglet Couche 2 ?

La dernière ligne de ce que vous avez écris est pile ce que je voudrais.

Merci,

Bonne journée

UPDATE : J'ai réussi à le faire quand je clique sur l'onglet couche 2 en mettant simplement le code dans le Sub Multipage.

Voici le code :

Private Sub MultiPage1_Change()

TextBox11.Value = TextBox9.Value
TextBox15.Value = TextBox13.Value

End Sub

RESOLU : J'ai trouvé une solution qui marche plutôt bien. Voici le code que j mets dans le bouton validé :

Private Sub TextBox10_Change()
a = (TextBox11.Value * 2) + 16

Cells(a, 2).Select
Cells(a, 2).Value = TextBox10

End Sub

Merci pour tout !

J'espère ne pas vous avoir pris trop de temps pour rien...

PS : j'ai un autre problème dans le même excel si cela vous intéresse. Il s'agit du même principe mais ici il faudrait sélectionner toute les cases correspondant à la couche (exemple : Couche 1 de 0m à 10m -> sélection des casses B16 à B36 puis fusion des cellules selection)

Bonjour,

La valeur de la textbox 11 ne change pas automatiquement quand je clique sur l'onglet couche 2, il faut supprimer le 0 et la valeur de la textbox9 apparait dans la textbox11. Si vous savez comment faire pour la rendre automatique je suis preneur. Peut être en mettant le code dans l'onglet Couche 2 ?

Oui j'avais fait aussi mais cela me semblait plus pratique que lorsque vous cliquez sur Couche 2, la textbox11 affiche directement la valeur en enregistrée en Textbox 9. Comme cela vous n'oubliez pas de cliquer dans la textbox 11 qui a le 0 et cela vous informe que vous avez mis une valeur en textbox9

Voici tout de même le fichier que j'avais préparé.

Attention avec vos instructions "HIDE" qui ne font que cacher l'usf à l'arrière plan. Dans le fichier vous verrez que je les ai modifiées au profit de UNLOAD ME

PS : j'ai un autre problème dans le même excel si cela vous intéresse. Il s'agit du même principe mais ici il faudrait sélectionner toute les cases correspondant à la couche (exemple : Couche 1 de 0m à 10m -> sélection des casses B16 à B36 puis fusion des cellules selection)

Oui pourquoi pas mais comme je vous ai dit ce n'est pas une bonne idée de fusionner avec les codes VBA. Comment allez vous faire lorsque vous repartez à 0 ? Votre idée ?

Cordialement

J'ai trouvé pour changer la valeur de la textbox 11 avec un code du style :

Textbox11.Value = TextBox9.Value +0,5

Merci pour ce petit truc qui me permet de réinitialiser ma macro à chaque fois et la ferme pour de bon !

Pour la fusion un autre forum m'as donné la solution qui parait plutot simple mais il fallait y penser avec un .merge et en appelant les variables a et b. Je n'ai pas le code sur moi ce soir mais je peux vous le transmettre si vous le voulez.

Merci beaucoup pour toute les questions et les réponses ! c'était une conversation très intéressante !

PS : Si vous êtes interresser par le résultats final je peux vous le donner dans quelque temps aussi

Bonjour

....merge et en appelant les variables a et b.

Oui c'est aussi possible de faire avec Merge. Mais je ne serai pas le seul est à vous écrire que les fusions ce n'est jamais bon avec VBA. Vous risquez toujours à un moment ou un autre d'avoir un souci

Si vous êtes interresser par le résultats final je peux vous le donner dans quelque temps aussi

Oui pourquoi pas.

A votre écoute si besoin

Cordialement

Rechercher des sujets similaires à "changer zone selection fonction valeur textbox usf"