Aide récupérer valeur Textbox dans première cellule vide

bapt0201

XLDnaute Nouveau
Bonjour le forum,

J'ai un problème concernant les Textbox de mon UserForm.

J'aimerais récupérer la valeur de la TextBox dans la première cellule vide de mon tableau dans la colonne A mais ma macro prend en compte la dernière cellule de mon tableau, de plus elle rajoute une ligne a chaque fois que je tape une lettre.

je vous remercie d'avance pour vos réponses.

VB:
Sub textbox1()

derligne = Range("A" & Rows.Count).End(xlUp).Row + 1
Range("A" & derligne) = textbox1.Value

End Sub
 

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,

1- IMPORTANT: Se trouver un tuto sur les contrôles de userForm et leurs évènements.

2 - A tout hasard puisqu'il n'y a pas de classeur joint. Sur perte du focus du textbox:
VB:
Private Sub TextBox1_LostFocus()
    Dim derligne As Long
    If Trim(TextBox1.Value) <> "" Then
        derligne = Range("A" & Rows.Count).End(xlUp).Row + 1
        Range("A" & derligne) = TextBox1.Value
    End If
End Sub

Bonne journée
 

Staple1600

XLDnaute Barbatruc
Bonsoir le fil, bapt021, Roblochon

bapt021
Je suppose quand je lis ceci de plus elle rajoute une ligne a chaque fois que je tape une lettre.
que ton tableau est en fait un tableau structuré (ListObject)
Dans ce cas, c'est normal qu'une ligne s'ajoute automatiquement

Donc du coup, il te faut aussi un tuto sur comment piloter/manipuler les tableaux en VBA. ;)

PS: Dernière question
Le textbox1 est situé sur un Userform où directement sur la feuille ?
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Re @bapt0201

Allez, j'envoie malgré tout:
VB:
Sub test()
Dim derlig&
  derlig = Cells(Rows.Count, "a").End(xlUp).Row
  derlig = IIf(Cells(derlig, "a") = "", Cells(derlig, "a").End(xlUp).Row + 1, derlig + 1)
  Cells(derlig, "a") = textbox1.Value
End Sub

Préferez :
VB:
Sub test()
Dim derlig&
  If Sheets("toto").FilterMode Then Sheets("toto").ShowAllData      'nom de la feuille à adapter
  derlig = Cells(Rows.Count, "a").End(xlUp).Row
  derlig = IIf(Cells(derlig, "a") = "", Cells(derlig, "a").End(xlUp).Row + 1, derlig + 1)
  Cells(derlig, "a") = textbox1.Value
End Sub

nota: fonctionne avec ou sans tableau structuré.
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Bonsoir le fil,

nota: ne fonctionne qu'avec un tableau structuré ;)
VB:
Sub Test_ListObj()
ActiveSheet.ListObjects(1).ListRows.Add.Range.Item(1) = Format(InputBox("Date du jour", "Test", Date), "mm/dd/yyyy")
End Sub
NB: On mettra ce qu'on voudra après le signe =
(textbox1 par exemple)
Moi, j'ai eu la flemme de créer un userform, donc j'ai testé avec un InputBox ;)
 

bapt0201

XLDnaute Nouveau
Bonjour, merci pour vos réponses :)

Je viens de m'apercevoir que j'avais oublié de joindre mon fichier, désolé...

Effectivement, le fil précédent semble similaire mais il portait sur une macro pour étirer la formule à partir de la dernière cellule pleine c'est à dire la cellule que je cherche actuellement à remplir avec le textbox (première cellule vide de ma colonne).

J'ai essayé de l'adapter pour mon textbox mais je reste bloqué sur le même problème, la macro rajoute une ligne ou passe à la ligne suivante à chaque fois que je tape une lettre.

Cordialement,
 

Pièces jointes

  • Test_macro.xlsm
    19.4 KB · Affichages: 38

Discussions similaires

Réponses
1
Affichages
143

Statistiques des forums

Discussions
315 095
Messages
2 116 170
Membres
112 676
dernier inscrit
little_b