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

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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

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.
 
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 ?
 
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

?
 
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.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
35
Affichages
2 K
Retour