VBA supprimer une chaine de caractères définie de la valeur d'un textbox

miguelangelo

XLDnaute Occasionnel
Bonjour à tous,

voilà mon souci,

dans mon userform, j'ai une listbox de "Société"
et j'ai un textbox, dans lequel je rajoute des sociétés (depuis ma listbox)...

et je souhaite aussi pouvoir supprimer des sociétés (depuis ma listbox)

mes deux problèmes sont :

1) Comment, lors du rajout d'une société, vérifier qu'elle n'est pas déjà dans les valeurs de ma textbox. Pour m'éviter de l'enregistrer deux fois

Private Sub ajout_frs_Click()
Application.ScreenUpdating = False


If Me.liste_fournisseur.Value = "" Then Exit Sub
Me.Fournisseurs_lot.Value = Me.liste_fournisseur.Value & " ; " & Me.Fournisseurs_lot.Value
Me.liste_fournisseur.Value = ""
End Sub


2) Comment lors d'une suppression d'une société, aller vérifier au préalable que je l'avais déjà selectionnée


Private Sub supprime_frs_Click()
Application.ScreenUpdating = False


If Me.liste_fournisseur.Value = "" Then Exit Sub
'là c'est pas bon
If Me.Fournisseurs_lot.Value Like Me.liste_fournisseur.Value Then
Me.Fournisseurs_lot.Value = Replace(Me.Fournisseurs_lot.Value, Me.liste_fournisseur.Value & " ; ", "")


Else
Exit Sub
End If


End Sub

vous pouvez visualiser mon souci dans le fichier joint.


vous remerciant pour votre aide !
 

Pièces jointes

  • Classeur1.xlsm
    68.1 KB · Affichages: 28
  • Classeur1.xlsm
    68.1 KB · Affichages: 22

Papou-net

XLDnaute Barbatruc
Re : VBA supprimer une chaine de caractères définie de la valeur d'un textbox

Bonjour miguelangelo,

Voici la réponse à ta première question:

Code:
Private Sub ajout_frs_Click()

If Me.liste_fournisseur.Value = "" Then Exit Sub
If InStr(Fournisseurs_lot.Text, liste_fournisseur) > 0 Then
  liste_fournisseur.ListIndex = -1
  Cancel = True
  Exit Sub
End If
Me.Fournisseurs_lot.Value = Me.liste_fournisseur.Value & " ; " & Me.Fournisseurs_lot.Value
Me.liste_fournisseur.Value = ""
End Sub
Quant à la seconde question,peux-tu préciser à quel endroit tu sélectionnes la société que tu veux supprimer?

A +

Cordialement.
 

miguelangelo

XLDnaute Occasionnel
Re : VBA supprimer une chaine de caractères définie de la valeur d'un textbox

Bonjour Papou-net

merci déjà pour ta première réponse... mais je crois que du coup, un problème va se poser.

l'attendu, de ma 1ere question est que simplement, je ne puisse pas rajouter la société si elle est déjà dans mon textbox. là je comprends que la société n'apparait pas du tout dans la liste..

pour ma seconde question, je sélectionne toujours dans la même liste en fait... la différence se fait après dans les deux icones de mon userform : supprimer ou rajouter...

suis je clair ?
 

Papou-net

XLDnaute Barbatruc
Re : VBA supprimer une chaine de caractères définie de la valeur d'un textbox

RE:

Je ne sais pas si j'ai bien compris, je te laisse vérifier sur la copie de ton fichier en PJ.

Cordialement.
 

Pièces jointes

  • Copie de Classeur1-1.xlsm
    68.8 KB · Affichages: 21
  • Copie de Classeur1-1.xlsm
    68.8 KB · Affichages: 26

miguelangelo

XLDnaute Occasionnel
Re : VBA supprimer une chaine de caractères définie de la valeur d'un textbox

c'est en fait moi qui n'ai pas compris les corrections que tu as apporté..

Peux tu stp m'expliquer :

If InStr(Fournisseurs_lot.Text, liste_fournisseur) > 0 Then
liste_fournisseur.ListIndex = -1
Cancel = True
Exit Sub
End if

?
 

Papou-net

XLDnaute Barbatruc
Re : VBA supprimer une chaine de caractères définie de la valeur d'un textbox

Bonjour miguelangelo,

If InStr(Fournisseurs_lot.Text, liste_fournisseur) > 0 Then
liste_fournisseur.ListIndex = -1
Cancel = True
Exit Sub
La première ligne (If Instr...) recherche si le texte de ComboBox existe dans le texte de TextBox. Si c'est le cas, elle renvoie la position du 1er caractère, si non, elle renvoie 0. Si elle est trouvée (>0), la deuxième ligne efface la fenêtre du ComboBox (indice -1 = affichage vide). La 3ème ligne (Cancel...) annule l'action: elle efface le ComboBox et conserve son focus pour la saisie suivante. La 4ème sort de la procédure.

Espérant avoir été clair.

Cordialement.
 

Discussions similaires

Statistiques des forums

Discussions
311 725
Messages
2 081 943
Membres
101 849
dernier inscrit
florentMIG