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 IfMerci encore à vous.
Bonne soirée.
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
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+