Remplir les cases d'un tableau suivant textbox et autres d'un userform

Squoltahthx94

XLDnaute Occasionnel
Bonjour le forum,

Je suis sur une base de devis que je souhaite conserver et pour voir consulter.
J'ai donc créer un userform avec tous les contrôles que j'ai besoin pour créer mes ligne de texte et de calcul, j'ai crée un multipage pour ça.
Mon problème viens de la parti saisie des informations dans l'onglet 'Bdd_DEvis' :
J'ai créer dans le dernier onglet du multipage un bouton enregistrer pour enregistrer toute les données mais j'en suis à la première page et j'ai déjà tout ça de code :

Code:
Private Sub CommandButton1_Click()
Dim lig As Long
    With Sheets("BDD_devis")
        lig = .Range("a" & Rows.Count).End(xlUp).Row + 1
        .Range("a" & lig).Value = Me.date_devis.Value
        .Range("b" & lig).Value = Me.N_Devis.Value    'Ecrit en A... la valeur de Textbox1
        .Range("c" & lig).Value = Me.ComboBox243.Value    'etc....
        .Range("d" & lig).Value = Me.CheckBox1.Value    'etc.....
        .Range("e" & lig).Value = Me.CheckBox2.Value
        .Range("f" & lig).Value = Me.CheckBox3.Value
        .Range("g" & lig).Value = Me.ComboBox1.Value
        .Range("h" & lig).Value = Me.Nom_Societe.Value
        .Range("i" & lig).Value = Me.ComboBox2.Value
        .Range("j" & lig).Value = Me.Code_Postal.Value
        .Range("k" & lig).Value = Me.Ville.Value
        .Range("l" & lig).Value = Me.Comment1.Value
        .Range("m" & lig).Value = Me.ComboBox3.Value 'ligne 1
        .Range("n" & lig).Value = Me.TextBox1.Value
        .Range("o" & lig).Value = Me.TextBox2.Value
        .Range("p" & lig).Value = Me.TextBox3.Value
        .Range("q" & lig).Value = Me.TextBox4.Value
        .Range("r" & lig).Value = Me.ComboBox4.Value ' ligne 2
        .Range("s" & lig).Value = Me.TextBox8.Value
        .Range("t" & lig).Value = Me.TextBox7.Value
        .Range("u" & lig).Value = Me.TextBox6.Value
        .Range("v" & lig).Value = Me.TextBox5.Value
        .Range("w" & lig).Value = Me.ComboBox5.Value ' ligne 3
        .Range("x" & lig).Value = Me.TextBox12.Value
        .Range("y" & lig).Value = Me.TextBox11.Value
        .Range("z" & lig).Value = Me.TextBox10.Value
        .Range("aa" & lig).Value = Me.TextBox9.Value
        .Range("ab" & lig).Value = Me.ComboBox6.Value ' ligne 4
        .Range("ac" & lig).Value = Me.TextBox16.Value
        .Range("ad" & lig).Value = Me.TextBox15.Value
        .Range("ae" & lig).Value = Me.TextBox14.Value
        .Range("af" & lig).Value = Me.TextBox13.Value
        .Range("ag" & lig).Value = Me.ComboBox7.Value ' ligne 5
        .Range("ah" & lig).Value = Me.TextBox20.Value
        .Range("ai" & lig).Value = Me.TextBox19.Value
        .Range("aj" & lig).Value = Me.TextBox18.Value
        .Range("ak" & lig).Value = Me.TextBox17.Value
        .Range("ag" & lig).Value = Me.ComboBox7.Value ' ligne 6
        .Range("ah" & lig).Value = Me.TextBox24.Value
        .Range("ai" & lig).Value = Me.TextBox23.Value
        .Range("aj" & lig).Value = Me.TextBox22.Value
        .Range("ak" & lig).Value = Me.TextBox21.Value
        .Range("al" & lig).Value = Me.ComboBox8.Value ' ligne 7
        .Range("am" & lig).Value = Me.TextBox28.Value
        .Range("an" & lig).Value = Me.TextBox27.Value
        .Range("ao" & lig).Value = Me.TextBox28.Value
        .Range("ap" & lig).Value = Me.TextBox29.Value
        .Range("aq" & lig).Value = Me.ComboBox9.Value ' ligne 8
        .Range("ar" & lig).Value = Me.TextBox32.Value
        .Range("as" & lig).Value = Me.TextBox31.Value
        .Range("at" & lig).Value = Me.TextBox30.Value
        .Range("au" & lig).Value = Me.TextBox29.Value
        .Range("av" & lig).Value = Me.ComboBox10.Value ' ligne 9
        .Range("aw" & lig).Value = Me.TextBox36.Value
        .Range("ax" & lig).Value = Me.TextBox35.Value
        .Range("ay" & lig).Value = Me.TextBox34.Value
        .Range("az" & lig).Value = Me.TextBox33.Value
        .Range("ba" & lig).Value = Me.ComboBox11.Value ' ligne 10
        .Range("bb" & lig).Value = Me.TextBox40.Value
        .Range("bc" & lig).Value = Me.TextBox39.Value
        .Range("bd" & lig).Value = Me.TextBox38.Value
        .Range("be" & lig).Value = Me.TextBox37.Value
        .Range("bf" & lig).Value = Me.ComboBox12.Value ' ligne 11
        .Range("bg" & lig).Value = Me.TextBox40.Value
        .Range("bh" & lig).Value = Me.TextBox39.Value
        .Range("bi" & lig).Value = Me.TextBox38.Value
        .Range("bj" & lig).Value = Me.TextBox37.Value
        .Range("bk" & lig).Value = Me.Coeff1.Value
        .Range("bl" & lig).Value = Me.Total1.Value

end with

il n'y a pas un moyen de faire plus simple car en fait je lit une ligne que j'enregistre et je répété cela pour les 9 suivantes par pages d'onglet.

Je souhaiterais à chaque fois que j'ouvre cet userform que le n° de devis s'incrémente de la manière suivante "2012-0001" "2012-0002" etc.....


Merci de votre retour pour ces deux questions.

voici mon fichier :
 

Pièces jointes

  • Devis+matrice2.xlsm
    179.8 KB · Affichages: 66

Bebere

XLDnaute Barbatruc
Re : Remplir les cases d'un tableau suivant textbox et autres d'un userform

bonjour Squoltahthx94
dans la propriété Tag tu mets l'index colonne de la feuille 1(date_devis) pour A,2(N_Devis) pour B,3(ComboBox243) pour C,etc

Code:
Private Sub CommandButton1_Click()
    Dim lig As Long, C As Integer, Ctrl As MSForms.Controls

    With Sheets("BDD_devis")
        lig = .Range("a" & Rows.Count).End(xlUp).Row + 1

        For Each Ctrl In Me.Controls
            C = Ctrl.Tag
            .Cells(lig, C).Value = Ctrl.Value
        Next Ctrl

Code:
Private Sub CheckBox1_Change()
    Dim i As Byte
    
    If CheckBox1.Value = True Then
        For i = 1 To 7
            Me("Comment" & i) = "Devis de Dépannage :"
        Next i
        MultiPage1.Enabled = True
        Me.MultiPage1.Value = 0    'permet d'activer le mltipage à la page 1 (0=1, 1=2...)
        CheckBox2.Value = False
        CheckBox3.Value = False

    Else
        For i = 1 To 7
            Me("Comment" & i) = ""
        Next i
        MultiPage1.Enabled = False
        
    End If
    
End Sub
 

Squoltahthx94

XLDnaute Occasionnel
Re : Remplir les cases d'un tableau suivant textbox et autres d'un userform

bonjour berbere,

Merci de ton retour mais je ne comprend pas bien le coup de la proprieté 'tag' tu pourrais un peu plus développer s'il te plait car je ne me suis jamais servi de cette propriété .

Merci
 

Bebere

XLDnaute Barbatruc
Re : Remplir les cases d'un tableau suivant textbox et autres d'un userform

si tu affiches l'objet userform ,tu cliques sur une textbox ou combobox ou autre et dans la fenêtre des propriétés tu cherches Tag et à côté tu inscris le chiffre
tu mets cette ligne dans UserForm_Initialize
Me.N_Devis = "AVA-" & Year(Date) & "-" & Application.CountA(Range("B:B")) - 1
counta est l'équivalent de nbval,date=date du jour,year l'année de la date