Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2019 Intégration De Données Issus de TextBox Dans un tableau

MrGogy

XLDnaute Nouveau
Bonsoir,
J'expose mon problème ici car je suis dans l'incapacité de le résoudre par moi-même.
Je m'explique, je dispose d'un UserForm avec des TextBox, et je voudrais que les informations de celles-ci puissent venir se greffer sur un tableau déjà édité à la main. (Pour une mise en forme plus en adéquation avec mon projet). Sauf que j'arrive à intégrer les 2 premières lignes de mon tableau mais ensuite je ne comprends pas comment faire pour continuer sur les lignes suivantes.
Le tableau est de la ligne 26 à 34.
Je vous met ci joint mon code.
Merci de votre aide.
Cdlt

VB:
Private Sub AjouterArticle_Click()
If TextBox1 = "" Or TextBox2 = "" Or TextBox3 = "" Or TextBox4 = "" Then
MsgBox ("Merci de Remplir toutes les informations")
Else
    If Sheets("Facture").Range("C26") = "" Then
    Sheets("Facture").Range("C26") = TextBox1
    Else
    Sheets("Facture").Range("C27") = TextBox1
    End If
    dlt = Sheets("Facture").Range("c34").End(xlUp).Row
    Sheets("Facture").Range("c" & dlt) = TextBox1
    Sheets("Facture").Range("d" & dlt) = TextBox2
    Sheets("Facture").Range("f" & dlt) = TextBox3
    Sheets("Facture").Range("l" & dlt) = TextBox4
    End If
Unload Me
UserFormProduits.Show
End Sub
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonsoir @MrGogy , le Forum

Je ne comprends pas bien la finalité, du if Range("C26") = "" then ... Puisque tu trouves la dernière cellule vide de la colonne C plus bas quand tu initialises la Variable dlt... Par contre tu n'incrémentes pas de "+1"...

Si j'ai bien compris :

VB:
Private Sub CommandButton1_Click()
Dim WS As Worksheet
Dim dlt As Integer

Set WS = ThisWorkbook.Worksheets("Facture")

    If TextBox1 = "" Or TextBox2 = "" Or TextBox3 = "" Or TextBox4 = "" Then
        MsgBox ("Merci de Remplir toutes les informations")
    Else
    
        dlt = WS.Range("C35").End(xlUp).Row + 1
    
            With WS
            .Range("c" & dlt) = TextBox1
            .Range("d" & dlt) = TextBox2
            .Range("f" & dlt) = TextBox3
            .Range("l" & dlt) = TextBox4
            End With
    End If

Me.TextBox1 = ""
Me.TextBox2 = ""
Me.TextBox3 = ""
Me.TextBox4 = ""

End Sub

Moi, perso, je ne décharge pas le Userform pour le recharger, je préfère simplement vider les Textbox si il n'y a que ça évidemment...

Bonne nuit
@+Thierry
 

MrGogy

XLDnaute Nouveau
Bonjour,

Merci de Votre aide et de votre réponse aussi rapide !
En me penchant d'un peu plus près j'ai réussi à créer une boucle permettant de faire la même chose, moyennant des heures de sommeil en moins haha.
Bien sur je garde le votre dans une coin au cas ou
Je vous fait parvenir mon Code si dessous :

VB:
Private Sub AjouterArticle_Click()
If TextBox1 = "" Or TextBox2 = "" Or TextBox3 = "" Or TextBox4 = "" Then
MsgBox ("Merci de Remplir toutes les informations")
End If
For i = 26 To 34
Range("C" & i).Select
If IsEmpty(Selection) Then
    Range("C" & i).Value = TextBox1
    Range("D" & i).Value = TextBox2
    Range("F" & i).Value = TextBox3
    Range("L" & i).Value = TextBox4
    TextBox1.Value = ""
    TextBox2.Value = ""
    TextBox3.Value = ""
    TextBox4.Value = ""
    TextBox1.SetFocus
    Exit Sub
End If
Next i
End Sub

Cdlt
 

Discussions similaires

Réponses
6
Affichages
248
Réponses
17
Affichages
970
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…