Microsoft 365 supprimer une valeur textbox et remplacer la nouvelle valeur dans la même cellule

sylviecro

XLDnaute Nouveau
Bonjour forum

J'ai un userform (j'ai crée une version minus) où tout va bien, mais je voudrais que si la personne s'est trompé dans la listBox qu'elle puisse corriger en choisissant une autre valeur dans la liste et que cette valeur remplace celle dans la cellule correspondante.

j'arrive à supprimer la valeur textBox avec :
Private Sub TextBox1_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal x As Single, ByVal Y As Single)
TextBox1 = ""
Sheets("Feuil1").Range("A7").ClearContents
End Sub

mais j'ai 90 textbox alors y a t'il un code moins long que de copier tout ça 90 fois? et surtout que lorsqu'on choisi la nouvelle valeur, elle s'ajoute en dessous de ma liste dans la feuille f1.

Je joints mon Userform et le code

Merci à tous :)
 

Pièces jointes

  • Classeur1.xlsm
    23.5 KB · Affichages: 7

jmfmarques

XLDnaute Accro
Bonjour
alors y a t'il un code moins long que de copier tout ça 90 fois?
Un "code" ? pas à proprement parler, mais une manière autre de procéder : qui passe par l'apprentissage, la création et l'utilisation d'un module de classe.

Ceci étant : un nombre si élevé (90 !) de textboxes révèle très probablement une conception mal pensée et à remettre en cause.
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonjour @sylviecro ,@jmfmarques , le Forum,

Je regardais ton fichier, et donc si je comprends bien tu voudrais qu'à chaque click de choix dans une des ListBox ca alimente la TextBox en dessous... Soit !

Mais lisant ta demande ci-dessus, là ca devient délirant dans mon esprit, voilà ce que je comprends :

1588959613125.png


Module de Class ou pas, j'ai surtout l'impression, si j'ai compris, que tu dois aller te détendre et revoir complètement ce que tu veux faire... J'en ai vu des UserForms délirants, mais ce concept là va rentrer dans le Top 100... Et comme le dit justement jlfmarques "conception mal pensée"...

Ton besoin semble d'être de simplement remplir la Feuil1 sur Trois Champs, donc pourquoi ne pas le faire à chaque Click sur le CommandButton... la Feuil1 s'incrémentera avec le contenu de TROIS TextBox uniquement , et ainsi de suite... Si besoin tu pourras toujours avec un autre CommandButton/et une ListBox dédiée pour "Modifier" en rapellant une ligne de la Feuil1...

Enfin peutêtre je suis à côté de la plaque et c'est moi qui doit aller me détendre LoL ;)

Bien @Toi, @Vous
@+Thierry
 

sylviecro

XLDnaute Nouveau
Bonjour @sylviecro ,@jmfmarques , le Forum,

Je regardais ton fichier, et donc si je comprends bien tu voudrais qu'à chaque click de choix dans une des ListBox ca alimente la TextBox en dessous... Soit !

Mais lisant ta demande ci-dessus, là ca devient délirant dans mon esprit, voilà ce que je comprends :

Regarde la pièce jointe 1066366

Module de Class ou pas, j'ai surtout l'impression, si j'ai compris, que tu dois aller te détendre et revoir complètement ce que tu veux faire... J'en ai vu des UserForms délirants, mais ce concept là va rentrer dans le Top 100... Et comme le dit justement jlfmarques "conception mal pensée"...

Ton besoin semble d'être de simplement remplir la Feuil1 sur Trois Champs, donc pourquoi ne pas le faire à chaque Click sur le CommandButton... la Feuil1 s'incrémentera avec le contenu de TROIS TextBox uniquement , et ainsi de suite... Si besoin tu pourras toujours avec un autre CommandButton/et une ListBox dédiée pour "Modifier" en rapellant une ligne de la Feuil1...

Enfin peutêtre je suis à côté de la plaque et c'est moi qui doit aller me détendre LoL ;)

Bien @Toi, @Vous
@+Thierry
J'ai déjà 53 ans, jamais eu de cours informatique alors oui il se peut bien que je prenne un chemin plus long pour arriver à mes fins, car j'y vais au plus compréhensible pour moi étant en bas de novice en vba lol... En fait, je dois composer avec un UserForm des plus facile à utiliser pour sauver le plus de temps possible aux usagers.... En gros, je travaille pour une compagnie de sinistre et je voulais créer un fichier pour chaque client.. Donc j'ai utilisé un Userform avec des onglets. Je vais insérer mon vrai fichier et expliquer ce que je veux vraiment. Peut-être pourriez-vous m'aider avec la logique de la chose? Je vais enlever les données personnelles et je joindrez à mon message.
Merci
 

sylviecro

XLDnaute Nouveau
Et voilà... mon fichier original en construction. Il y a plusieurs feuilles au bas et se sont elles qui doivent être remplis à chaque client. Donc j'ai créé un Userform pour entrer les données qui vont se transférées sur les dites feuilles (pour ça pas de problème) j'ai déjà fait. Là où je veux attirer l'attention c'est dans l'Userform. Il y a 6 onglets. Chacun des ongles représentent une pièce qui a été touché par un dommage. Le technicien voulait au moins 5 choix par étage (d'ou l'onglet 1er étage, RDC et sous-sol) et il voulait voir le résultat de ce qu'il a choisi... c'est pour ça les textBox. Par contre s'il se trompe à la 4e pièce, je voudrais qu'il puisse corriger en choisissant une autre pièce et que cette pièce se corrige dans la feuille data, car c'est de cette feuilles que mes autres feuilles vont prendre la source à moins que j'envoie directement de mes textbox, mais là c'est trop pour moi. Voilà. J'espère que c'est plus clair.
 

Pièces jointes

  • fiche client nouveau.xlsm
    457.7 KB · Affichages: 3

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonjour @sylviecro , le Forum

Pas simple ton affaire !, J'ai un peu regardé et j'ai essayé de respecter un peu ton concept, tu verras ce que ca donne sur le 1èr étége uniquement... En image ça donne ceci :

SylvieCro-small.gif



Mais je ne suis pas satisfait, le fait que les ListBox soient en Multi-Select pose bien des soucis et complique l'algo, ca bugue même car le "deselect" est très mal vu par VBA sur l'action Change...
En fait une fois le résultat devant les yeux, à mon humble avis, ce n'est pas nécessaire que ces Listbox soient en Multi-Select, puisque le selection est stockée au fur et à mesure dans les TextBox...

Enfin tu découvriras pas mal d'astuces en tout cas, j'utilise le "Tag" des TextBox, tu devras aller voir dans les Propriétés de chacune d'elle :

1589031998860.png


Ce qui me permet de faire ce genre d'Algo :

1589032085840.png


P1 = MultiPage1 'pour le 1er étage
R1 = Rangée 1 'exemple rangée 1 = Pièces
Txb01 to Txb05 par Rangée...

Bonne découverte
@+Thierry
 

Pièces jointes

  • XLD_sylviecro_fiche_client_nouveau.xlsm
    458.1 KB · Affichages: 8

sylviecro

XLDnaute Nouveau
Bonjour @sylviecro , le Forum

Pas simple ton affaire !, J'ai un peu regardé et j'ai essayé de respecter un peu ton concept, tu verras ce que ca donne sur le 1èr étége uniquement... En image ça donne ceci :

Regarde la pièce jointe 1066436


Mais je ne suis pas satisfait, le fait que les ListBox soient en Multi-Select pose bien des soucis et complique l'algo, ca bugue même car le "deselect" est très mal vu par VBA sur l'action Change...
En fait une fois le résultat devant les yeux, à mon humble avis, ce n'est pas nécessaire que ces Listbox soient en Multi-Select, puisque le selection est stockée au fur et à mesure dans les TextBox...

Enfin tu découvriras pas mal d'astuces en tout cas, j'utilise le "Tag" des TextBox, tu devras aller voir dans les Propriétés de chacune d'elle :

Regarde la pièce jointe 1066437

Ce qui me permet de faire ce genre d'Algo :

Regarde la pièce jointe 1066438

P1 = MultiPage1 'pour le 1er étage
R1 = Rangée 1 'exemple rangée 1 = Pièces
Txb01 to Txb05 par Rangée...

Bonne découverte
@+Thie




Merci beaucoup, je mijote tout ça... avec ma tite tête ça va me prendre une couple de jours et je te reviens là dessus. Très gentil le monsieur :)
 

sylviecro

XLDnaute Nouveau
Bonjour @sylviecro , le Forum

Pas simple ton affaire !, J'ai un peu regardé et j'ai essayé de respecter un peu ton concept, tu verras ce que ca donne sur le 1èr étége uniquement... En image ça donne ceci :

Regarde la pièce jointe 1066436


Mais je ne suis pas satisfait, le fait que les ListBox soient en Multi-Select pose bien des soucis et complique l'algo, ca bugue même car le "deselect" est très mal vu par VBA sur l'action Change...
En fait une fois le résultat devant les yeux, à mon humble avis, ce n'est pas nécessaire que ces Listbox soient en Multi-Select, puisque le selection est stockée au fur et à mesure dans les TextBox...

Enfin tu découvriras pas mal d'astuces en tout cas, j'utilise le "Tag" des TextBox, tu devras aller voir dans les Propriétés de chacune d'elle :

Regarde la pièce jointe 1066437

Ce qui me permet de faire ce genre d'Algo :

Regarde la pièce jointe 1066438

P1 = MultiPage1 'pour le 1er étage
R1 = Rangée 1 'exemple rangée 1 = Pièces
Txb01 to Txb05 par Rangée...

Bonne découverte)
@+Thierry

Pourrais-tu juste m'expliquer les 2 lignes : If left (CTRL.Tag,6) et If Right ... ?
Merci
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonsoir @sylviecro , le forum

Un petit exemple, plus simple qu'un long discours :

VB:
Sub Test()
Dim MyString

MyString = "sylviecro"

MsgBox "Hello " & Left(MyString, 6) & vbCrLf & "tu as les " & Right(MyString, 3) & " ?"

If Right(MyString, 1) <> "s" Then
MsgBox "Oooops pardon, hello " & Left(MyString, 6) & vbCrLf & "tu as les " & Right(MyString, 3) & "s ?"
End If

End Sub

Bonne soirée (ou après midi au Canada ;)
@+Thierry
 

Discussions similaires

Statistiques des forums

Discussions
312 198
Messages
2 086 134
Membres
103 129
dernier inscrit
Atruc81500