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

  • Initiateur de la discussion Initiateur de la discussion bapt0201
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
 
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
 
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 ?
 
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:
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 😉
 
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

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
250
Réponses
3
Affichages
45
Réponses
5
Affichages
464
Retour