Modifier supprimer et ajouter avec tab structuré Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
Répondre
f
francesco069
Jeune membre
Jeune membre
Messages : 24
Inscrit le : 9 juillet 2013
Version d'Excel : 2010

Message par francesco069 » 27 mars 2020, 19:28

Hello Forum,


Je suis littéralement en PLS :cry: :cry: devant ma problématique et je ne suis pas un expert en code concernant les tableau structurés mais bon…

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 :cry: :cry: :cry:
AEP.xlsm
(54.24 Kio) Téléchargé 7 fois
Avatar du membre
thev
Membre impliqué
Membre impliqué
Messages : 2'680
Appréciations reçues : 225
Inscrit le : 13 juin 2016
Version d'Excel : 2019 FR 64 bits

Message par thev » 28 mars 2020, 10:23

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.
AEP1.xlsm
(69.7 Kio) Téléchargé 10 fois
f
francesco069
Jeune membre
Jeune membre
Messages : 24
Inscrit le : 9 juillet 2013
Version d'Excel : 2010

Message par francesco069 » 28 mars 2020, 13:19

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.. :mrgreen: :mrgreen:
B
Boisgontierjacques
Membre fidèle
Membre fidèle
Messages : 470
Appréciations reçues : 109
Inscrit le : 5 octobre 2018
Version d'Excel : 2016

Message par Boisgontierjacques » 28 mars 2020, 15:16

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
BDClientTDyn2.xlsm
(45.19 Kio) Téléchargé 20 fois
Répondre
  • Sujets similaires
    Réponses
    Vues
    Dernier message