Formulaire et mise en forme de tableau des saisies

Bonjour à tous,

Je vous contacte pour un petit soucis dont je n'ai pu trouver la réponse sur le forum ou ailleurs sur les internet. Je précise que je suis débutant et ce que je demande est peut-être bête ou pas possible ....

J'ai comme projet une main courante soit bêtement un tableau qui répertorie via le remplissage d'un formulaire des informations basiques. Cependant j'aimerai profiter des bienfaits qu'apporte l'outil "Mettre sous forme de tableau" sur les résultats du formulaire (tri par ordre chronologique, n'affichez que certaines dates etc.).

Or quand j'utilise mon bouton d'ajout de l'entrée, la dite entrée se cale en dessous du tableau et pas à "l'intérieur", donc pas possible de lui appliquer les diverses fonctionnalités des tableaux (je sais pas si vous voyez ce que je veux dire).

Je vous joins une capture d'écran, ainsi que le fichier (rien de confidentiel) et la partie du code qui concerne l'ajout d'une nouvelle entrée/ligne.

Vous n'avez qu'à aller sur le feuillet "Tableau de bord", cliquer sur le bouton "Nouvelle entrée" puis cliquer sur le bouton "Ajout" (pas besoin de tout remplir).

Private Sub btnAjout_Click()

Dim ligne As Integer

Sheets("Main-courante").Activate
ligne = Sheets("Main-courante").Range("B456541").End(xlUp).Row + 1

'Entrée date (colonne #1)
Cells(ligne, 2) = CDate(txtDateTrade.Value)

'Entrée sens (colonne #2)
If optAcheteur.Value = True Then
    Cells(ligne, 3) = "Acheteur"
Else
    Cells(ligne, 3) = "Vendeur"
End If

Merci encore à vous.

Bonne soirée.

capture
19projetvba.xlsm (38.64 Ko)

Bonsoir Ehmer, le forum,

Avec un tableau structuré (ListObject), le codage est légèrement différent.

Essaie ceci:

Private Sub btnAjout_Click()

Dim ListObj As ListObject, Sh As Worksheet, ligne As Long

         Set Sh = Sheets("Main-courante")
    Set ListObj = Sh.ListObjects("Tableau1")
          ligne = Sh.Cells(Rows.Count, 1).End(xlUp).Row

      With ListObj
      'Sh.Cells(ligne, 1) = ??
       Sh.Cells(ligne, 2) = CDate(txtDateTrade.Value)
        If optAcheteur.Value = True Then
         Sh.Cells(ligne, 3) = "Acheteur"
        Else
         Sh.Cells(ligne, 3) = "Vendeur"
        End If
       Sh.Cells(ligne, 4) = txtDebut.Value 'Date de début
       Sh.Cells(ligne, 5) = txtMaturite.Value 'Date de maturité
       Sh.Cells(ligne, 6) = txtPrix.Value 'Prix/Taux
       Sh.Cells(ligne, 7) = txtTaille.Value 'Taille de l'opération
       Sh.Cells(ligne, 8) = txtContrepartie 'Nom de la contrepartie
       Sh.Cells(ligne, 9) = cboType.Value & " " & txtNumSAB.Value
       Sh.Cells(ligne, 10) = txtISIN.Value
       Sh.Cells(ligne, 11) = cboPF.Value
       Sh.Cells(ligne, 12) = txtcommentaire
      End With
       ListObj.ListRows.Add
       Unload Me
End Sub
11projetvba-1.xlsm (31.60 Ko)

Cordialement,

Merci beaucoup, c'est exactement ce que je recherchais.

Passe une excellente soirée.

Et courage tout le monde en ces temps difficiles !

bonjour,

Une autre manière de voir les choses (juste pour décomposer le process AJOUT)

Nota dans les tableaux structurés (et dans toute les tables en général...) une première colonne index est recommandée !

A+

Rechercher des sujets similaires à "formulaire mise forme tableau saisies"