Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Effacer certaines données dans un textbox

5 réponses
Avatar
Alain
Bonjour.
J'ai un textbox dans lequel j'envoie des données, sous la forme.
11/03; 01/04; 03/04; 06/04...
Ces dates sont séparées par un point-virgule.
Je souhaite avoir la possibilité d'effacer certaines dates.Soit la 1ère soit
la seconde soit la 3ème etc. Sans que l'utilisateur touche au textbox.
Merci beaucoup
Alain

5 réponses

Avatar
?ve
Salut Alain,
A adapter bien entendu. La position de la date à supprimer est à indiquer
dans un autre TextBox (pour le test) et la proc ci-dessous liée à un bouton
" CommandButton1" :

Private Sub CommandButton1_Click()
Dim Tbl1
Dim Tbl2() As String
Dim I As Integer
Dim J As Integer

Dim Texte As String
Tbl1 = Split(TextBox1.Text, ";")
For I = 0 To UBound(Tbl1)
If I <> TextBox2.Text Then
J = J + 1
ReDim Preserve Tbl2(1 To J)
Tbl2(J) = Tbl1(I)
End If
Next
TextBox1.Text = Join(Tbl2, ";")
End Sub

Hervé.

"Alain" a écrit dans le message de news:

Bonjour.
J'ai un textbox dans lequel j'envoie des données, sous la forme.
11/03; 01/04; 03/04; 06/04...
Ces dates sont séparées par un point-virgule.
Je souhaite avoir la possibilité d'effacer certaines dates.Soit la 1ère
soit

la seconde soit la 3ème etc. Sans que l'utilisateur touche au textbox.
Merci beaucoup
Alain




Avatar
Alain
Euh Merci Hervé, mais je n'arrive pas à adapter.
Mon textbox dans lequel il y a les dates est Textbox6, et de ce fait j'ai
créé textboxA.
Mais cela ne fonctionne pas.
Alain


"?ve" a écrit dans le message de
news:
Salut Alain,
A adapter bien entendu. La position de la date à supprimer est à indiquer
dans un autre TextBox (pour le test) et la proc ci-dessous liée à un
bouton

" CommandButton1" :

Private Sub CommandButton1_Click()
Dim Tbl1
Dim Tbl2() As String
Dim I As Integer
Dim J As Integer

Dim Texte As String
Tbl1 = Split(TextBox1.Text, ";")
For I = 0 To UBound(Tbl1)
If I <> TextBox2.Text Then
J = J + 1
ReDim Preserve Tbl2(1 To J)
Tbl2(J) = Tbl1(I)
End If
Next
TextBox1.Text = Join(Tbl2, ";")
End Sub

Hervé.

"Alain" a écrit dans le message de news:

Bonjour.
J'ai un textbox dans lequel j'envoie des données, sous la forme.
11/03; 01/04; 03/04; 06/04...
Ces dates sont séparées par un point-virgule.
Je souhaite avoir la possibilité d'effacer certaines dates.Soit la 1ère
soit

la seconde soit la 3ème etc. Sans que l'utilisateur touche au textbox.
Merci beaucoup
Alain








Avatar
michdenis
Bonjour Alain,

Il y a ceci :

Attention à l'information que tu saisiras dans la boîte de dialogue, le premier élément de ta liste dans le textbox a
l'index 0 (position) et non pas 1.

'----------------------------
Dim LeTexte As String, C As Variant
Dim Liste As String, T As String

Liste = Application.InputBox("Énumérez la position des items à enlever.")
If Liste = "Faux" Then Exit Sub

LeTexte = Me.TextBox1

C = Split(LeTexte, ";")
For a = 0 To UBound(C)
If InStr(1, Liste, CStr(a), vbTextCompare) = 0 Then
T = T & C(a) & ";"
End If
Next
If UBound(C) <> 0 Then
If T <> "" Then
Me.TextBox1 = Left(T, Len(T) - 1)
End If
Else
Me.TextBox1 = ""
End If
'----------------------------


Salutations!



"Alain" a écrit dans le message de news:
Bonjour.
J'ai un textbox dans lequel j'envoie des données, sous la forme.
11/03; 01/04; 03/04; 06/04...
Ces dates sont séparées par un point-virgule.
Je souhaite avoir la possibilité d'effacer certaines dates.Soit la 1ère soit
la seconde soit la 3ème etc. Sans que l'utilisateur touche au textbox.
Merci beaucoup
Alain
Avatar
?ve
Avec modif :
J'ai corrigé la petite erreur due au fait que le tableau Tbl1 commence à 0
et non à 1.
Le textbox où se trouvent les dates, est le TextBox6 et le textbox où est
indiquée la position de la date à supprimer est le TextBoxA :

Private Sub CommandButton1_Click()
Dim Tbl1
Dim Tbl2() As String
Dim I As Integer
Dim J As Integer

Dim Texte As String
'TextBox6, TextBox
'où se trovent les dates
Tbl1 = Split(TextBox6.Text, ";")
For I = 0 To UBound(Tbl1)
'TextBoxA, position
'de la date à supprimer
If I <> TextBoxA.Text - 1 Then
J = J + 1
ReDim Preserve Tbl2(1 To J)
Tbl2(J) = Tbl1(I)
End If
Next
'remet les dates restantes
'dans le TextBox6
TextBox6.Text = Join(Tbl2, ";")

Erase Tbl1
Erase Tbl2
End Sub

Hervé.


"Alain" a écrit dans le message de news:

Euh Merci Hervé, mais je n'arrive pas à adapter.
Mon textbox dans lequel il y a les dates est Textbox6, et de ce fait j'ai
créé textboxA.
Mais cela ne fonctionne pas.
Alain


"?ve" a écrit dans le message de
news:
Salut Alain,
A adapter bien entendu. La position de la date à supprimer est à
indiquer


dans un autre TextBox (pour le test) et la proc ci-dessous liée à un
bouton

" CommandButton1" :

Private Sub CommandButton1_Click()
Dim Tbl1
Dim Tbl2() As String
Dim I As Integer
Dim J As Integer

Dim Texte As String
Tbl1 = Split(TextBox1.Text, ";")
For I = 0 To UBound(Tbl1)
If I <> TextBox2.Text Then
J = J + 1
ReDim Preserve Tbl2(1 To J)
Tbl2(J) = Tbl1(I)
End If
Next
TextBox1.Text = Join(Tbl2, ";")
End Sub

Hervé.

"Alain" a écrit dans le message de news:

Bonjour.
J'ai un textbox dans lequel j'envoie des données, sous la forme.
11/03; 01/04; 03/04; 06/04...
Ces dates sont séparées par un point-virgule.
Je souhaite avoir la possibilité d'effacer certaines dates.Soit la
1ère



soit
la seconde soit la 3ème etc. Sans que l'utilisateur touche au textbox.
Merci beaucoup
Alain












Avatar
Alain
Merci beaucoup et bravo Denis, cela fonctionne très bien.
Mais si tu le permets, je souhaite pouvoir avoir une procédure plus simple
pour les utilisateurs car tu comprends 0 pour dire 1 et 1 pour 2...
J'ai peur que dans la masse, il y ai beaucoup de trompage.
Peux-tu de manière très succincte m'expliquer cette procédure géniale ?
Encore merci, et bravo.
Alain


"michdenis" a écrit dans le message de
news:
Bonjour Alain,

Il y a ceci :

Attention à l'information que tu saisiras dans la boîte de dialogue, le
premier élément de ta liste dans le textbox a

l'index 0 (position) et non pas 1.

'----------------------------
Dim LeTexte As String, C As Variant
Dim Liste As String, T As String

Liste = Application.InputBox("Énumérez la position des items à enlever.")
If Liste = "Faux" Then Exit Sub

LeTexte = Me.TextBox1

C = Split(LeTexte, ";")
For a = 0 To UBound(C)
If InStr(1, Liste, CStr(a), vbTextCompare) = 0 Then
T = T & C(a) & ";"
End If
Next
If UBound(C) <> 0 Then
If T <> "" Then
Me.TextBox1 = Left(T, Len(T) - 1)
End If
Else
Me.TextBox1 = ""
End If
'----------------------------


Salutations!



"Alain" a écrit dans le message de
news:

Bonjour.
J'ai un textbox dans lequel j'envoie des données, sous la forme.
11/03; 01/04; 03/04; 06/04...
Ces dates sont séparées par un point-virgule.
Je souhaite avoir la possibilité d'effacer certaines dates.Soit la 1ère
soit

la seconde soit la 3ème etc. Sans que l'utilisateur touche au textbox.
Merci beaucoup
Alain