Copie textbox vers tableau

Bonjour à tous, merci de m'accueillir sur ce forum

Voici mon problème :

J'ai un tableau de créé dans "Listes" qui s'appelle "Liste_designation".

Lorsque je clique sur Ajouter (dans mon userform), je souhaiterai que le contenu de la Textbox va se diriger à la fin du tableau.

Voici le code actuel :

Private Sub BT_AJOUT_CAT_Click()

Application.ScreenUpdating = False
Application.DisplayAlerts = False

If TB_AJOUT_CAT.Text <> "" Then

   Sheets("Listes").Select
   Range("B3").Select
   Selection.ListObject.ListRows.Add AlwaysInsert:=True
   ActiveCell.FormulaR1C1 = TB_AJOUT_CAT.Text
   Sheets("Global").Select
   LBL_info_cat.Caption = TB_AJOUT_CAT.Value & " enregistré !"
   TB_AJOUT_CAT.Value = ""

Else

   MsgBox "Rien à ajouter !"

End If

Application.ScreenUpdating = True
Application.DisplayAlerts = True

End Sub

J'ai bien essayé la fonction "Array", mais je n'ai rien compris pour être très honnête.

Pouvez-vous m'aider ?

Merci beaucoup

Ton tableau il a une colonne qui est toujours remplie à chaque ligne?

Merci beaucoup pour la réponse.

Si l'on parle du tableau "Source", oui, il a chaque ligne de remplie.

OK alors en reprenant ton code:

Private Sub BT_AJOUT_CAT_Click()

Application.ScreenUpdating = False
Application.DisplayAlerts = False

If TB_AJOUT_CAT.Text <> "" Then
With Sheets("Listes").ListObject("Liste_designation")
   .ListRows.Add AlwaysInsert:=True
  'Si ton tableau commence en ligne 1 et a des en-têtes
   Sheets("Listes").Cells(.ListRows + 1,2).Value = TB_AJOUT_CAT.Text
   'OU
   'Si ton tableau commence en ligne 1 et n'a pas d'en-têtes
   Sheets("Listes").Cells(.ListRows,2).Value = TB_AJOUT_CAT.Text
End With
   Sheets("Global").Select
   LBL_info_cat.Caption = TB_AJOUT_CAT.Value & " enregistré !"
   TB_AJOUT_CAT.Value = ""

Else

   MsgBox "Rien à ajouter !"

End If

Application.ScreenUpdating = True
Application.DisplayAlerts = True

End Sub

Merci beaucoup pour la réponse,

Je viens d'essayer le code, avec ce que j'ai besoin, C-a-d avec entête.

J'ai une erreur 438 : "Propriété ou méthode non gérée par cet objet".

Le curseur s'arrête sur cette ligne :

With Sheets("Listes").ListObject("Liste_designation")

Je cherche de mon coté

Si cette ligne est en erreur il faut vérifier:

  • Que ta feuille s'appelle bien "Listes"
  • Que ton tableau dans cette feuille s'appelle bien "Liste_designation"

Ah!

Ma faut c'est

With Sheets("Listes").ListObjects("Liste_designation")

J'ai oublié le s

Effectivement, ça fonctionne mieux, cependant j'ai toujours une erreur :

Erreur 450, Nombre d'arguments incorrect ou affectation de propriété incorrecte.

Arrêt sur ligne :

   Sheets("Listes").Cells(.ListRows + 1, 2).Value = TB_AJOUT_CAT.Text

J'ai encore oublié une partie

Sheets("Listes").Cells(.ListRows.Count + 1, 2).Value = TB_AJOUT_CAT.Text

Merci, cela fonctionne.

Cependant, je perds les données du tableau, il n'y a pas de décalage des valeurs, un peu comme si on faisait un couper coller.

Merci de votre aide.

Il n'ajoute pas la valeur à la ligne vide?

Est-ce que par hasard ton tableau ne commence pas en ligne 1?

Merci

Il commence en B3, mais je peux le faire démarrer de n'importe où.

Où faudrait'il qu'il démarre ?

Non en B3 c'est possible. Du coup si l'en-tête est en B3:

Private Sub BT_AJOUT_CAT_Click()

Application.ScreenUpdating = False
Application.DisplayAlerts = False

If TB_AJOUT_CAT.Text <> "" Then
With Sheets("Listes").ListObjects("Liste_designation")
   .ListRows.Add AlwaysInsert:=True
  'Si ton tableau commence en ligne 3 et a des en-têtes
   Sheets("Listes").Cells(.ListRows + 3,2).Value = TB_AJOUT_CAT.Text
End With
   Sheets("Global").Select
   LBL_info_cat.Caption = TB_AJOUT_CAT.Value & " enregistré !"
   TB_AJOUT_CAT.Value = ""

Else

   MsgBox "Rien à ajouter !"

End If

Application.ScreenUpdating = True
Application.DisplayAlerts = True

End Sub

Bonjour, merci pour la réponse

Si je comprends bien, quand tu fais

.Cells(.ListRows + 3, 2)

C'est que tu te positionnes en cellule 3 de la colonne 2 ?

J'ai toujours une erreur :

"Erreur 450 Nombre d'arguments incorrects ou affectation de propriété incorrecte"

La valeur de ma textbox est bonne, l'espion qui ressort ma donne la valeur entrée.

Merci beaucoup

J'ai encore oublié le .Count derrière ListRows...

.Cells(.ListRows.Count + 3, 2)

ListRows.Count permet de récupérer le nombre de ligne du tableau.

Donc la cellule a remplir est: nb lignes du tableau + 1 (ligne d'en-tête) + X (nb de lignes vides avant le début du tableau)

Donc là on demande de mettre la valeur dans la dernière ligne du tableau (fraîchement créée), colonne 2.

Merci beaucoup,

Je venais de trouver la réponse pour être très honnête !

Merci à toi

Rechercher des sujets similaires à "copie textbox tableau"