Modifier supprimer et ajouter avec tab structuré
Hello Forum,
Je suis littéralement en PLS
J'ai créer deux Userform avec une listebox, cbox, txtbox afin de gérer un tableau structuré.
Mon problème se situe sur la deuxième Userform.
1 dilemme :
Modifier données lignes client dans mon TAB structuré à partir des txtbox de la Userform2 en cliquant sur bouton modifier.
Les données des txtbox proviennent d'une listebox sur Userform2
2 dilemme :
Supprimer données lignes client dans mon TAB structuré à partir de la txtNOP de la Userform2 en cliquant sur bouton modifier.
3 dilemme :
Mettre à jour la colonne NOP qui est la colonne A afin que la numérotation soit cohérente 1,2,3.... et non 1,3,7...
Quand la ligne du tableau est supprimer.
Merci beaucoup, je n'en peu plus la je suis sponsoriser par Doliprane.
Entre les enfants et mes problème je suis en PLS
- Messages
- 4'092
- Excel
- 2021 FR 64 bits
- Inscrit
- 13/06/2016
- Emploi
- bénévole associations Goutte d'Or
Bonjour,
ci-jointe une proposition avec révision complète du code et utilisation des instructions relatives à un tableau structuré.
A noter que toute nouvelle ligne ajoutée à un tableau structuré reproduit format et formules.
Bonjour Forum et Bonjour Thev,
Un grand Merci à toi et au forum qui permet cela.
Maintenant la seul chose c'est la numerotation de la colonne NOP
T'es un chef, franchement mon cerveau te dit également merci..
Bonjour,
Option Compare Text
Private Sub UserForm_Initialize()
Me.enreg = [client].Rows.Count + 1
Me.Nop = Application.Max([client[nop]]) + 1
Tbl = [client].Value
Tri Tbl, LBound(Tbl), UBound(Tbl), 2
Me.Recherche.List = Tbl
End Sub
Private Sub Recherche_Change()
Me.enreg = Application.Match(Val(Me.Recherche), [client[nop]], 0)
Me.Nop = Me.Recherche
Me.Nom = [client].Item(enreg, 2)
Me.Prénom = [client].Item(enreg, 3)
Me.entreprise = [client].Item(enreg, 4)
Me.Activité = [client].Item(enreg, 5)
Me.Email = [client].Item(enreg, 6)
Me.Tph = [client].Item(enreg, 7)
Me.Commune = [client].Item(enreg, 8)
Me.Observations = [client].Item(enreg, 9)
Me.Prix = [client].Item(enreg, 10)
Me.Dates = [client].Item(enreg, 11)
End Sub
Private Sub B_valid_Click()
enreg = Me.enreg
[client].Item(enreg, 1) = Val(Me.Nop)
[client].Item(enreg, 2) = Me.Nom
[client].Item(enreg, 3) = Me.Prénom
[client].Item(enreg, 4) = Me.entreprise
[client].Item(enreg, 5) = Me.Activité
[client].Item(enreg, 6) = Me.Email
[client].Item(enreg, 7) = Me.Tph
[client].Item(enreg, 8) = Me.Email
[client].Item(enreg, 9) = Me.Observations
[client].Item(enreg, 10) = CDbl(Me.Prix)
[client].Item(enreg, 11) = CDate(Me.Dates)
End Sub
Private Sub B_sup_Click()
If MsgBox("Etes vous sûr de supprimer " & Me.Nom & "?", vbYesNo) = vbYes Then
[client].Rows(Me.enreg).Delete
Me.Recherche.List = [client].Value
End If
End Sub
Private Sub B_ajout_Click()
raz
Me.Nop = Application.Max([client[nop]]) + 1
Me.enreg = [client].Rows.Count + 1
End Sub
Sub raz()
Me.Nom = ""
Me.Prénom = ""
Me.entreprise = ""
Me.Activité = ""
Me.Tph = ""
Me.Tph = ""
Me.Email = ""
Me.Observations = ""
Me.Commune = ""
Me.Prix = ""
Me.Dates = ""
End Sub
Sub Tri(a, gauc, droi, colTri) ' Quick sort
ref = a((gauc + droi) \ 2, colTri)
g = gauc: d = droi
Do
Do While a(g, colTri) < ref: g = g + 1: Loop
Do While ref < a(d, colTri): d = d - 1: Loop
If g <= d Then
For c = LBound(a, 2) To UBound(a, 2)
temp = a(g, c): a(g, c) = a(d, c): a(d, c) = temp
Next
g = g + 1: d = d - 1
End If
Loop While g <= d
If g < droi Then Call Tri(a, g, droi, colTri)
If gauc < d Then Call Tri(a, gauc, d, colTri)
End Sub
Boisgontier