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
202
Réponses
17
Affichages
866