Modification code VBA
Bonjour
je suis un débutant, j'ai un formulaire VBA avec un nombre limité de textbox et je souhaite l'augmenter
je souhaite l'utiliser avec 16 textbox au lieu de 10 textbox
Merci d'avance
le code est le suivant :
Option Compare Text
Dim f, CCV3(), choix(), Rng, Ncol
Private Sub lblactivite_Click()
End Sub
Private Sub TextBox1_Change()
End Sub
Private Sub TextBox10_Change()
End Sub
Private Sub UserForm_Initialize()
Set f = Sheets("CCV3")
Set Rng = f.Range("A2:K" & f.[A65000].End(xlUp).Row)
CCV3 = Rng.Value
Ncol = Rng.Columns.Count
'---
TblTmp = Rng.Value
Ncol = Rng.Columns.Count - 1
For i = LBound(TblTmp) To UBound(TblTmp)
TblTmp(i, Ncol + 1) = i
ReDim Preserve choix(1 To i)
For K = 1 To Ncol
choix(i) = choix(i) & TblTmp(i, K) & " * "
Next K
choix(i) = choix(i) & i
Next i
Me.ListBox1.List = TblTmp
End Sub
Private Sub TextBoxRech_Change()
If Me.TextBoxRech <> "" Then
mots = Split(Trim(Me.TextBoxRech), " ")
tbl = choix
For i = LBound(mots) To UBound(mots)
tbl = Filter(tbl, mots(i), True, vbTextCompare)
Next i
n = 0: Dim b()
For i = LBound(tbl) To UBound(tbl)
a = Split(tbl(i), "*")
n = n + 1: ReDim Preserve b(1 To Ncol + 1, 1 To n)
For K = 1 To Ncol
b(K, i + 1) = a(K - 1)
Next K
b(K, i + 1) = a(K - 1)
Next i
If n > 0 Then
ReDim Preserve b(1 To Ncol + 1, 1 To n + 1)
Me.ListBox1.List = Application.Transpose(b)
Me.ListBox1.RemoveItem n
End If
Else
UserForm_Initialize
End If
End Sub
Private Sub ListBox1_Click()
For K = 1 To Ncol
Me("textBox" & K) = Me.ListBox1.Column(K - 1)
Next K
Me.Enreg = Me.ListBox1.Column(Ncol) + Rng.Row - 1
End Sub
Private Sub b_supp_Click()
Dim CurrentRecord As Long
If Me.Enreg <> "" And Me.TextBox1 <> "" Then
CurrentRecord = Me.Enreg - 1
Rng.Rows(CurrentRecord).Delete Shift:=xlUp ' Supprime la ligne de la plage
raz
Me.Enreg = ""
UserForm_Initialize
Else
UserForm_Initialize
End If
End Sub
Private Sub b_modif_Click()
If Me.Enreg <> "" And Me.TextBox1 <> "" Then
NoEnreg = Me.Enreg
For K = 1 To Ncol
f.Cells(NoEnreg, K) = Me("textBox" & K)
Next K
raz
Me.Enreg = ""
UserForm_Initialize
End If
End Sub
Private Sub b_ajout_Click()
raz
Me.Enreg = f.[A65000].End(xlUp).Row + 1
End Sub
Sub raz()
For K = 1 To Ncol
Me("textBox" & K) = ""
Next K
Me.TextBox1.SetFocus
End Sub
Bonjour,
Compte tenu de ton nombre de TextBoxes ...tu as intérêt à utiliser un module de classe
https://forum.excel-pratique.com/posting.php?mode=quote&f=2&p=398421
En espèrant que cela t'aide
je suis débutant et je ne maitrise pas les codes VBA, je prefère modifier ce model
Merci
Re,
Si tu as besoin de six TextBoxes supplémentaires dans ton formulaire ...
Rien ne t'interdit ... de les ajouter ...