Un formulaire pour deux feuilles

Bonsoir à tous, bonjour le forum

Une nouvelle fois je dois faire appel à un expert pour avoir un avis pratique à savoir :

J'ai créé un formulaire userform "Frm_art" , une fois les informations rentrées, je souhaiterais que;

- Les text box "txt_art", "txt_prixachat", "txt_prixvente" et "txt_stockmin" , aille dans un tableau sur "feuil1.

- Les text box "txt_art" et "txt_quantité" aille sur un tableau d'un second onglet "feuil2".
*Sachant que que "txt_art" sa se répète sur les deux feuils.

j'ai essaie comme suite mais il me semble que ce n'est pas évidant.

Merci de votre aide.

Terrier.

Private Sub btn_valide_Click()
Dim L As Integer

'Procédure permettant de sauvegarder l'ajout d'un nouveau client dans la base Source

        'On teste que les contrôles ont bien été saisie
        If Len(Me.txt_art) = 0 Then
            lblmessage = "Veuillez saisir le nom de l'article SVP!"
            Me.txt_art.SetFocus
        ElseIf Len(Me.txt_prixachat) = 0 Then
            lblmessage = "Veuillez saisir le prix d'achat SVP!"
            Me.txt_prixachat.SetFocus
        ElseIf Len(Me.txt_prixvente) = 0 Then
            lblmessage = "Veuillez saisir le prix de vente SVP!"
            Me.txt_prixvente.SetFocus
        ElseIf Len(Me.txt_stockmin) = 0 Then
            lblmessage = "Veuillez saisir le stock min SVP!"
            Me.txt_stockmin.SetFocus
        ElseIf Len(Me.txt_quantité) = 0 Then
            lblmessage = "Veuillez saisir la quantité SVP!"
            Me.txt_quantité.SetFocus
        Else

        'Si tous les champs sont complet Alors on peut sauvegarder la source
            'On cherche la prochaine ligne vide de la source

        With Worksheets("check")
            L = Range("b1048576").End(xlUp).Row + 1
            .Activate
            Range("K" & L).Value = Me.txt_art.Value
            Range("L" & L).Value = Me.txt_quantité.Value
            Range("N" & L).Value = "Entrée"
        End With

        With Worksheets("stock")
            M = .Range("b1048576").End(xlUp).Row + 1
            .Activate
            .Range("b" & M).Value = Me.txt_art.Value
            .Range("c" & M).Value = Me.lab_Réf
            .Range("e" & M).Value = CCur(Me.txt_prixachat.Value)
            .Range("f" & M).Value = CCur(Me.txt_prixvente.Value)
            .Range("h" & M).Value = CInt(Me.txt_stockmin.Value)
        End With

        Unload Me
        Feuil5.Range("d19") = Feuil5.Range("d19") + 1
        Feuil1.Activate

        End If
End Sub

Bonjour,

Tu n'as pas déclaré la variable M (mets Option Explicit en tête de module)

Dans le With Worksheets("check"), il manque les points devant tous les Range pour rattacher ces Range à la feuille (comme dans le second With).

De plus, tu cherches la dernière ligne de la colonne B mais tu n'écris pas dans cette colonne, donc les prochaines valeurs des colonnes K, L et N écraseront les valeurs actuelles.

Les 2 .Activate ne sont pas indispensables.

Bonsoir,

Merci Patrice33740 pour votre participation,

Je pense que j'ai corrigé ce que désignez, mais le problème reste le même;

les valeur sur la feuil1 ne ce sont enregistré, dommage que je peux pas partager le fichier excel.

Option Explicit
Public M As Integer
Private Sub txt_prixachat_Change()
    If Not IsNumeric(Me.txt_prixachat) Then
    Me.txt_prixachat = ""
    End If
End Sub

Private Sub txt_prixvente_Change()
    If Not IsNumeric(Me.txt_prixvente) Then
    Me.txt_prixvente = ""
    End If
End Sub

Private Sub txt_quantité_Change()
    If Not IsNumeric(Me.txt_quantité) Then
    Me.txt_quantité = ""
    End If
End Sub

Private Sub txt_stockmin_Change()
    If Not IsNumeric(Me.txt_stockmin) Then
    Me.txt_stockmin = ""
    End If
End Sub

'rénitialiser le formulaire
Private Sub UserForm_Initialize()
    Me.lab_Réf = Feuil5.Range("e19")
    Me.txt_art = ""
    Me.txt_prixachat = ""
    Me.txt_prixvente = ""
    Me.txt_stockmin = ""
    Me.txt_quantité = ""
    Me.lblmessage = ""
End Sub

Private Sub btn_valide_Click()
Dim L As Integer

'Procédure permettant de sauvegarder l'ajout d'un nouveau client dans la base Source

        'On teste que les contrôles ont bien été saisie
        If Len(Me.txt_art) = 0 Then
            lblmessage = "Veuillez saisir le nom de l'article SVP!"
            Me.txt_art.SetFocus
        ElseIf Len(Me.txt_prixachat) = 0 Then
            lblmessage = "Veuillez saisir le prix d'achat SVP!"
            Me.txt_prixachat.SetFocus
        ElseIf Len(Me.txt_prixvente) = 0 Then
            lblmessage = "Veuillez saisir le prix de vente SVP!"
            Me.txt_prixvente.SetFocus
        ElseIf Len(Me.txt_stockmin) = 0 Then
            lblmessage = "Veuillez saisir le stock min SVP!"
            Me.txt_stockmin.SetFocus
        ElseIf Len(Me.txt_quantité) = 0 Then
            lblmessage = "Veuillez saisir la quantité SVP!"
            Me.txt_quantité.SetFocus
        Else

        'Si tous les champs sont complet Alors on peut sauvegarder la source
            'On cherche la prochaine ligne vide de la source

        With Worksheets("check")
            L = .Range("b1048576").End(xlUp).Row + 1

            .Range("b" & L).Value = Date
            .Range("K" & L).Value = Me.txt_art.Value
            .Range("L" & L).Value = Me.txt_quantité.Value
            .Range("N" & L).Value = "Entrée"
        End With

        With Worksheets("stock")
            M = .Range("b1048576").End(xlUp).Row + 1

            .Range("b" & M).Value = Me.txt_art.Value
            .Range("c" & M).Value = Me.lab_Réf
            .Range("e" & M).Value = CCur(Me.txt_prixachat.Value)
            .Range("f" & M).Value = CCur(Me.txt_prixvente.Value)
            .Range("h" & M).Value = CInt(Me.txt_stockmin.Value)
        End With

'''''''''''''''''''''''''''''''''''''''
        Unload Me
        Feuil5.Range("d19") = Feuil5.Range("d19") + 1
        Feuil1.Activate

        End If
End Sub

j'ai oublié de préciser que feuil1 c'est Worksheets("Stock") et feuil2 c'est Worksheets("check").

Bonjour,

Etes-vous sûr que L va chercher la ligne désirée ? Il n'y a rien entre le fin de la colonne et la nouvelle ligne de saisie ?

Cdlt,

Bonjour 3GB,

Merci de votre aide, je viens de vérifier et ça étais vraiment sa (quelque lignes en bas des tableaux que je voyais pas), merci infiniment.

Rechercher des sujets similaires à "formulaire deux feuilles"