none
TRANSFERT DE USERFORM VERS UN AUTRE CLASSEUR EXCEL RRS feed

  • Discussion générale

  • Bonjour à tous,

    <o:p> </o:p>

    J’ai 2 fichiers

    1 fichier nommé SOMMAIRE et l’autre nommé  BASE DE DONNEEES CLIENTS.

    Le fichier SOMMAIRE contient 1 userform.

    Je souhaiterais que lorsque je clic sur le bouton VALIDER (qui se trouve sur mon userform), les infos renseignées sur mon userform soient transférées sur la feuille « BASE_DONNEES » de mon fichier BASE DE DONNEEES CLIENTS.

    J’ai essayé de faire  la programmation mais le transfert ne se fait pas correctement.

    Apparemment, on ne pas joindre de fichier donc je vais essayer de vous donner le contenu de mon userform  et de mon fichier BASE DE DONNEEES CLIENTS pour que vous ayez un aperçu.

    CONTENU DE L’USERFORM (entre parenthèses les contrôles utilisés)

    1 ère partie

    1-      Date (DTPicker1)

    2-      Nom_client (ComboBox)

    3-      N° facture (TextBox)

    4-      Ville (ComboBox)

    5-      Quartier (ComboBox)

    2e partie

    PRODUITS          QTE        PU          TTC

    La colonne de « PRODUITS » comporte  5 comboBox disposés les uns en dessous des autres

    La colonne « QTE »  comporte 5 TextBox

    La colonne « PU » comporte 5 ComboBox

    La colonne « TTC » comporte 5 TextBox

    En dessous de tous les TextBox QTE j’ai  un TextBox TOTAL_QTE qui fait le total des QTE et un textBox TOTAL_TTC  qui fait la somme des TTC.

    J’ai aussi une comboBox Taux_Remise, et 4 autres textBox : Remise,  TOTALTTC, HT, TVA

    Vous trouverez dans le code ci-dessous la destination du contenu de ces textbox et combobox dans le fichier BASE DE DONNEES CLIENTS.

    <o:p> </o:p>

    Merci de corriger les erreurs que j’ai pu glisser a l’intérieur de ce code.

    Private Sub ValiderButton_Click()
    Dim Ligne As Long, ShB As Worksheet
    Dim prodcol As Integer
    Dim plage, plage2 As Range
    Dim prod, prod1, prod2, prod3, prod4 As String
    Dim monprod As Range
    Dim monclient As Range
    Dim Client As String
    Dim clientdl As Integer
    Set ShB = Workbooks("BASE DE DONNEES CLIENTS").Sheets("BASE_DONNEES")
    ' on entre les données à partir du formulaire dans la ligne 14 nouvellement créée
    ' on insère une ligne
     With ShB
      Cells(14, 1).Select
      ActiveCell.EntireRow.Insert Shift:=xlDown
      ActiveCell.Offset(1, 0).EntireRow.Copy Cells(ActiveCell.Row, 1)
      On Error Resume Next
      ActiveCell.EntireRow.SpecialCells(xlCellTypeConstants, xlNumbers + _
                                                             xlTextValues + _
                                                             xlLogical + _
                                                             xlErrors).ClearContents
    End With
    With ShB
    'on transfert les données de l’userform  vers le fichier BASE DE DONNEES CLIENTS
    Cells(14, 1) = FactureForm.DTPicker1
    Cells(14, 2) = FactureForm.Nom_Client.Value
    Cells(14, 3) = FactureForm.FA
    Cells(14, 4) = FactureForm.BL
    Cells(14, 5) = FactureForm.Ville
    Cells(14, 6) = FactureForm.Quartier
    End With
    With ShB
    ' on trouve la colonne du  produit concerné
    Set plage = Range("I7:CC7") ' à modifier
    Set prod = Produit.Value  ' produit
        Set monprod = plage.Find(prod, LookIn:=xlValues, lookat:=xlWhole)
        If Not monprod Is Nothing Then
            Cells(14, monprod.Column) = Val(Qté)
            Cells(14, monprod.Column + 1) = Val(TTC)
        Else
            MsgBox "le Produit " & prod & " n'est pas présent dans la base"
        End If
    
    prod1 =Produit1.Value  'produit1
    Set monprod = plage.Find(prod1, LookIn:=xlValues, lookat:=xlWhole)
    If Not monprod Is Nothing Then
            Cells(14, monprod.Column) = Val(QtéTextBox1)
            Cells(14, monprod.Column + 1) = Val(TTC1)
    Else
    MsgBox "le Produit " & prod1 & " n'est pas présent dans la base"
    End If
    prod2 = Produit2.Value  'produit2
    Set monprod = plage.Find(prod2, LookIn:=xlValues, lookat:=xlWhole)
    If Not monprod Is Nothing Then
            Cells(14, monprod.Column) = Val(QtéTextBox2)
            Cells(14, monprod.Column + 1) = Val(TTC2)
    Else
    MsgBox "le Produit " & prod2 & " n'est pas présent dans la base"
    End If
    
    prod3 = Produit3.Value  'produit3
    Set monprod = plage.Find(prod3, LookIn:=xlValues, lookat:=xlWhole)
    If Not monprod Is Nothing Then
            Cells(14, monprod.Column) = Val(QtéTextBox3)
            Cells(14, monprod.Column + 1) = Val(TTC3)
    Else
    MsgBox "le Produit " & prod3 & " n'est pas présent dans la base"
    End If
    
    prod4 = Produit4.Value  'produit4
    Set monprod = plage.Find(prod4, LookIn:=xlValues, lookat:=xlWhole)
    If Not monprod Is Nothing Then
        Cells(14, monprod.Column) = Val(QtéTextBox4)
            Cells(14, monprod.Column + 1) = Val(TTC4)
    Else
    MsgBox "le Produit " & prod4 & " n'est pas présent dans la base"
    End If
    End With
    'on transfert les données de l’userform  vers la feuille « BASE_DONNEES » du fichier BASE DE DONNEES CLIENTS
    With ShB
    Cells(14, 36) = FactureForm.TOTAL_QTE.Value
    Cells(14, 37) = FactureForm.TOTAL_TTC.Value
    Cells(14, 38) = FactureForm.Taux_Remise.Value
    Cells(14, 39) = FactureForm.Remise.Value
    Cells(14, 40) = FactureForm.TOTALTTC.Value
    Cells(14, 41) = FactureForm.HT.Value
    Cells(14, 42) = FactureForm.TVA.Value
    End With
    
    ' Transfert du client dans le fichier  « SOMMAIRE » feuille « PARAMETRES »  colonne D  en Laissant la  ligne 2 vide pour pouvoir entrer un nouveau client  au niveau de la facture 
     
    clientdl = Sheets("PARAMETRES").Range("D65536").End(xlUp).Row
    Set plage2 = Sheets("PARAMETRES").Range("D2:D" & clientdl)
    Client = Nom_Client.Value
    Set monclient = plage2.Find(Client, LookIn:=xlValues, lookat:=xlWhole)
    If Not monclient Is Nothing Then
     Else
        clientdl = Sheets("PARAMETRES").Range("D65536").End(xlUp).Row
        Sheets("PARAMETRES").Cells(clientdl + 1, 1) = Client
        Sheets("PARAMETRES").Range("D3:D" & clientdl + 1).Sort key1:=Sheets("PARAMETRES").[A1]
    End If
    End Sub
    

    • Type modifié Aurel Bera lundi 29 octobre 2012 10:43 Pas de reponse
    vendredi 26 octobre 2012 15:27

Toutes les réponses