Userform/ Erreur481 + Demander un Calcul avant ajout

Bonjour à la communauté,

Grâce à différents tutos j'ai réussi à mettre en forme un userfom qui m'aide à gérer un suivi d'achat et j'aimerai qu'il complète aussi un bon d'achat (DA sur mon fichier).

capture 6

Dans l'idée ce que j'ai mis en rouge doit être entrée sur la feuille "Achat" qui correspond au suivi des Demandes d'achat réalisées , ce qui m'intéresserait ici c'est le montant total de la demande et non pas le détails qui figure dans l'encadré.

1/ Auriez-vous une solution pour demander au formulaire qu'une fois les articles "Ajoutés", il réalise l'addition des montantsHT renseignés ? Quitte à rajouter un autre bouton "Calculer"

******

Je suis tombée il y a quelques jours sur un forum où l'auteur a partagé son doc pour de l'aide "devis-excel.xls" mais je n'arrive plus à retrouver le lien .... ><' la manip correspond à ce que j'aimerai avoir. Etant débutante , j'ai essayé de prendre des infos à droite et à gauche comme je les comprenais, j'ai fais un premier jet où ce que je veux s'enregistre bien puis sur mon second essai c'est l'inverse, ce qui ne se produisait pas se produit, par contre ce qui se produisait ne se produit plus

Pour enregistrer sur mon tableau de suivi :

Private Sub Btn_DA_click()
Dim wsA As Worksheet
Dim nl As Integer

Set wsA = Sheets("Achats") 'Indication sur qu'elle feuille seront inscris les données saisies
    With wsA
        nl = .Cells(Columns.Count, 2).End(xlUp).Row + 1
        .Cells(nl, 1) = Txt_date 'Date
        .Cells(nl, 2) = Txt_DonneurOrdre
        .Cells(nl, 3) = Txt_ImputProjet ' Imputation
        .Cells(nl, 4) = Txt_Client
        .Cells(nl, 5) = Txt_Fournisseur 'Fournisseur
        .Cells(nl, 6) = CBX_Designation 'Désignation
        'Cells(nl ,7) = Txt_MttHT [NON ASSIGNE POUR LE MOMENT]
        .Cells(nl, 9) = "DASR21_" & Right("0000" & Trim(Str(nl - 1)), 4)
    End With
End Sub

Ce code fonctionne seul, sur un autre classeur.

Puis sur un autre classeur j'ai essayé de suivre le modèle du fichier Excel-Devis, j'ai donc enlevé le code précédent puis tenté de combiner. (CF Update)

Brouillon : Il s'agit ici du premier code que j'ai fais où l'enregistrement sur le fichier suivi était opérationnelle mais pas la partie Résumé de mon Userform:

capture7

Pour résumer, ce qui bloque ce sont les infos entrées dans l'encadré Résumé que je n'arrives à ressortir ..

quels sont les mots de liaison?? Ou les règles quand il y a 2 "Sub" ?

Si quelqu'un peut m'aider à dépoussiérer mon fichier j'en serai reconnaissante

Mon fichier est "Doc anonyme-test-achat.xlsm"

7devis-excel.zip (29.13 Ko)

UPDATE:

J'ai tenté un codage pour l'action du Bouton de Création, sur le modèle du fichier "Excel-devis"

Bonne nouvelle :D J'ai réussi à donner l'instruction à mon Userform que je veux la copie de ma feuille et une partie des infos sont correctement renseignées sur la copie (les TXTBOX sans grandes surprises)

En revanche les infos ne se sont pas enregistrées sur mon tableau de suivi.. puis une erreur persiste :

code d'exécution 381 : Impossible de lire la propriété List.index de table de propriétés non valides

Ce qui fait que les infos de l'encadré Résumé ne sont non plus pas inscrites..

Voici le code et l'erreur indiquée est à partir ligne " .range("a15").value=me.list_order.list(ligne,0)"

Private Sub Btn_DA_click()
  Dim dl As Integer
    Dim ligne As Integer
    Dim Nbligne As Integer
        Nbligne = Me.List_order.ListCount - 1
        For ligne = 0 To Nbligne
        Next ligne

    Sheets("DA").Copy after:=Sheets("Achats")
With ActiveSheet
    .Name = Me.Label_info
    .Tab.ColorIndex = 4
    .Range("d1").Value = Me.Label_info
    .Range("d2").Value = Me.Txt_ImputProjet
    .Range("g2").Value = Me.Txt_Client
    .Range("d3").Value = Me.Txt_DonneurOrdre
    .Range("d5").Value = Me.Txt_date
    .Range("b13").Value = Me.Txt_Fournisseur
    .Range("a15").Value = Me.List_order.List(ligne, 0)
    .Range("f15").Value = Me.List_order.List(ligne, 1)
    .Range("g15").Value = Me.List_order.List(ligne, 2)
    .Range("h15").Value = Me.List_order.List(ligne, 3)
End With
    Range("ligneACH").Copy
        With Sheets("Achats")
            .Range("a99999").End(xlUp)(2).PasteSpecial Paste:=xlPasteValues
        End With
End Sub

Pleaaaase

J'ai mis ici une nouvelle version de mon docuement sans la partie de code du précédent message

Bonjour Nayk

Très original, de faire une boucle sans rien mettre dedans

  For ligne = 0 To Nbligne
  Next ligne

Ce sera mieux comme ça

Private Sub Btn_DA_click()
  Dim dl As Integer
  Dim Ligne As Integer
  Dim Nbligne As Integer
  Nbligne = Me.List_order.ListCount - 1
  Sheets("DA").Copy after:=Sheets("Achats")
  With ActiveSheet
    .Name = Me.Label_info
    .Tab.ColorIndex = 4
    .Range("d1").Value = Me.Label_info
    .Range("d2").Value = Me.Txt_ImputProjet
    .Range("g2").Value = Me.Txt_Client
    .Range("d3").Value = Me.Txt_DonneurOrdre
    .Range("d5").Value = Me.Txt_date
    .Range("b13").Value = Me.Txt_Fournisseur
    For Ligne = 0 To Nbligne
    .Range("A" & 15 + Ligne).Value = Me.List_order.List(Ligne, 0)
    .Range("F" & 15 + Ligne).Value = Me.List_order.List(Ligne, 1)
    .Range("G" & 15 + Ligne).Value = Me.List_order.List(Ligne, 2)
    .Range("H" & 15 + Ligne).Value = Me.List_order.List(Ligne, 3)
    Next Ligne
  End With
  Range("ligneACH").Copy
  With Sheets("Achats")
    .Range("a99999").End(xlUp)(2).PasteSpecial Paste:=xlPasteValues
  End With
End Sub

@+

Bonjour BrunoM45

Très original, de faire une boucle sans rien mettre dedans

En effet je ne savais pas trop comment l'employer ^^' Je n'étais pas si loin du but .. Mercii Beaucoup !!

Rechercher des sujets similaires à "userform erreur481 demander calcul ajout"