XL 2010 Formulaire de modification

cathodique

XLDnaute Barbatruc
Bonjour,

Je bute pour mettre au point un formulaire de modification (UsfFiche).
L'idée est la suivante:
1- à l'ouverture du formulaire la combobox1 contiendra le n° des écritures comptables
2- la sélection d'un n° peuplera la Listbox1 (un bug survient si on clique sur toupie de combobox2 ou 3 avant le choix n° dans combobox1)
3- pour faciliter les modifications les combobox 2 et 3 seront alimentées respectivement à partir des feuilles "CodeComptes" et "Initiateurs".
4- au choix combobox2, combobox2 prend le n° de compte, textbox3 le libellé et textbox9 le montant du prévisionnel/budget.
5- au clic sur le bouton Modifier Ligne, mettra à jour la ligne correspondante dans la listBox
Car je voudrais faire au préalable une vérification du total des montants des textboxs TxtCtrlMontant et Textbox7, avant d’effectuer les modifications dans la feuille "Comptes".

Cela fait un bon moment que je suis dessus sans parvenir à vraiment résoudre le problème.

En vous remerciant par avance.

EDIT: MERCI DE CONSULTER CE POST
 
Dernière édition:

ChTi160

XLDnaute Barbatruc
Bonjour Cath
Bonjour le Fil ,le Forum
Merci JP , j’espère , que tu vas bien !
Cath ,pourquoi une procédure (TotalFacture)alors que tu peux faire cela lors du chargement de la ListBox .
Peux tu me dire ce qui doit figurer dans ces contrôles Total ,Contrôle Montants et Total du Frame Ligne à Modifier ?
Ensuite lorsque tu choisis un N° dans le ComboBox1 que doivent contenir les ComboBox "Compte" et "Initiateur "
Met l'exemple de la sélection des N°2 et N° 6 .

Merci
Bonne Journée
jean marie
 

cathodique

XLDnaute Barbatruc
Bonjour, Boisgontier:), Jpb388:), ChTi160:),

Merci de vous intéresser à mon problème et votre aide.

La feuille ‘’Comptes’’ est alimentée à partir d’un formulaire (aidé par Boisgontier pour alimenter la ListBox).

Le processus était le suivant:

Une facture peut comporter plusieurs lignes. Le total de la facture est saisi dans une textboxA, ensuite via des comboboxs et textboxs les renseignements d’une ligne de facture sont complétés. Au clic sur un bouton on alimente la ListBox. La somme des montants de la listbox est comparée au total de la facture (textboxA), s’ils sont égaux, un bouton est activé pour permettre le transfert des lignes de la Listbox vers la feuille comptes.
Cath ,pourquoi une procédure (TotalFacture)alors que tu peux faire cela lors du chargement de la ListBox .

J’avais cette procédure dans le 1er formulaire, je l’ai réutilisé.

Lors de la saisie d’une facture des erreurs peuvent être commises (sauf pour total de la facture).

L’idée est de sélectionner une facture en combobox1 ex :N°2 qui correspond à une dépense (que l’on retrouve sur la feuille comptes en colonne J (9) et le total de la facture est repris sur chaque ligne de la facture en colonne I (8).

Au choix de n°2, Affichage dans la listbox des lignes de la n°2. Cette dernière étant une dépenses, la combobox2 doit contenir les données concernant une dépense à partir de la feuille CodeComptes et la combobox3 à partir de la feuille Initiateurs . Et ce, afin de faciliter le remplissage des différents contrôles (frame1).

Au choix d’une ligne dans la listbox, les contrôles (frame1) sont renseignés. On doit pouvoir modifier le compte (combobox2=items dépenses), qui aura pour effet de compléter les textbox3 (libellé) et textbox6 (Budget/prévi). La combobox3 contiendra les initiateurs dépenses.

ex: affichage combobox2 (comporte 3 colonnes dont une largeur= 0, non visible). On aura le n° de compte, le libellé et le budget/prévi (non visible). Dans le cas n°2 pour dépenses (colonne 8).

Nb : la textbox7 (total) ne sera pas accessible. En effet, On ne doit pas pouvoir modifier le total d’une facture.

Les textbox4 et 5 seront alternativement visible/invisible suivant le type d’opération (dépenses/recettes) (que je mettrai plus tard). La sommation pour dépenses est la colonne 4 de la listbox.

Pour la n°6, c’est une recette. C’est le même raisonnement sauf qu’il faille récupérer les données Recettes pour alimenter la combobox2 et 3. La sommation concernera la colonne 5 (listbox) au lieu de 4.

J’espère que j’ai été plus claire cette fois-ci et surtout que mon raisonnement ne soit pas tordu.

Mes remerciements. Bon week-end.;)
 

jpb388

XLDnaute Accro
Bonsoir à tous
j'en suis à la modification de la ligne listbox
je ne comprend pas bien ta phrase
5- Si le montant calculé de la textbox TxtCtrlMontant est égal total de la facture col9 figurant dans textbox7. Alors le bouton Valider les modifications sera actif pour modifier les lignes de la listbox dans la bd (feuille comptes).
si on change le prix il y aura forcément une différence
Merci Chti160 tout va bien j'espère qu'il en est de même pour toi
 

Pièces jointes

  • Modifications .xlsm
    95.1 KB · Affichages: 39

cathodique

XLDnaute Barbatruc
Bonsoir, Merci pour tous vos efforts à me venir en aide.
En effet, il est bien difficile de comprendre si on vous explique mal la problématique.
5- Si le montant calculé de la textbox TxtCtrlMontant est égal total de la facture col9 figurant dans textbox7. Alors le bouton Valider les modifications sera actif pour modifier les lignes de la listbox dans la bd (feuille comptes)
Je ne suis pas arrivé à ce point, il s'agit du bouton qui se trouve dans la Frame1.

Pour mieux comprendre mon problème, si tu observes bien la feuille 'comptes', pour par exemple la facture N°1. Il s'agit d'une dépense, on retrouve le type en colonne J (et sur l'userform en textbox8). En colonne F (dépenses) on trouve le montant de la facture (et sur l'userform en textbox4). ici j'ouvre un parenthèse: Il s'agissait d'une recette la colonne correspondante sur la feuille est la colonne G et sur l'userform la textbox5.
La colonne I, représente le total de la facture n°1. Le total d'une facture est repris pour chaque ligne de la facture et qui se retrouve sur l'userform en textbox7(total).
Etant donné, qu'il n'est pas autorisé de modifier le total d'une facture mais permis de corriger les comptes, l'initiateur, le montant d'une ligne de la facture. Les modifications doivent s'effectuer dans la listbox. Si et seulement si, le total des lignes de la listbox est égal au montant initial (col I sur la feuille et textbox7 sur l'userform).

J'espère que j'ai mieux expliqué.

Merci beaucoup.

Bonne soirée.
 

jpb388

XLDnaute Accro
Bonjour à tous
modification ligne listbox ok
transfert sur feuille compte ok
je n'ai pas fait les gardes fous comme bloquer les boutons,vider la listbox etc
Bon Dimanche et à lundi
 

Pièces jointes

  • Modifications .xlsm
    97.3 KB · Affichages: 29

cathodique

XLDnaute Barbatruc
Bonjour jpb388;),

Merci pour tout ce que tu as accompli. Mais le problème persiste.
Manip1:
à l'ouverture du formulaire, si on affiche avec combobox1, par ex:n°1(est une dépense), que l'on clique sur une ligne dans listbox. Ensuite, si on effectue un autre choix ex:n°2 ou 3 ou 4 ou 5 (sont des dépenses) le code ne plante pas.
Par contre dés qu'on choisit la n°6 qui est une recette le code plante.

Manip2:
à l'ouverture du formulaire, on affiche la n°6 (recettes), que l'on clique sur une ligne dans la listbox
puis on choisit une autre facture ex:n°1 ou 2 ou 3 ou 4 ou 5 (sont des dépenses), Alors le code plante toujours dans la même procédure et sur la même ligne de code.
erreur13.JPG

erreur13_module.JPG


edit: désolé mais je viens de me rendre compte que le plantage survenait en textbox4_change ou textbox5_change.
Merci beaucoup.
 
Dernière édition:

cathodique

XLDnaute Barbatruc
Bonsoir,:):)

J'ai décelé d'autres bogues. Je ne vais pas vous demander plus que vous n'en avez fait.

Je vais faire un break et reprendre mon problème en m'inspirant de vos propositions.

Je reviendrai pour partager ma solution ou revenir pour un coup de pouce en cas de besoin.

Merci à vous tous, j'apprécie beaucoup.

Bonne soirée.:);)
 

jpb388

XLDnaute Accro
re
oui c'est de ma faute j'ai utilisé un iif
VB:
Private Sub TextBox4_Change() 'calcul du total si modif prix
    Dim I%, Cal As Double
    If Me.ListBox1.ListCount = 0 Then Exit Sub
    For I = 0 To Me.ListBox1.ListCount - 1
        If Me.ListBox1.ListIndex = I Then
            If Me.TextBox4 <> "" Then Cal = Cal + TextBox4
        Else
            Cal = CDbl(Me.ListBox1.List(I, 5)) + Cal
        End If
    Next I
    Me.TxtCtrlMontant = Cal
End Sub


Private Sub TextBox5_Change() 'calcul du total si modif prix
    Dim I%, Cal As Double
    If Me.ListBox1.ListCount = 0 Then Exit Sub
    For I = 0 To Me.ListBox1.ListCount - 1
        If Me.ListBox1.ListIndex = I Then
            If Me.TextBox4 <> "" Then Cal = Cal + TextBox4
        Else
            Cal = CDbl(Me.ListBox1.List(I, 6)) + Cal
        End If
    Next I
    Me.TxtCtrlMontant = Cal
End Sub
|/code]
Ok à+
 
Dernière édition:

cathodique

XLDnaute Barbatruc
j’espère que tu vas quand même suivre ce fil !Lol
Bonjour Jean Marie:),
Évidemment que je vais suivre mon fil. Je fais juste un petit break car j'ai beaucoup d'autres choses à faire en ce moment. Je consulte régulièrement ma boite mail.
Je l'ai bien précisé dans mon post#23 que je reviendrai vous mettre au courant et éventuellement solliciter un coup de pouce. Merci beaucoup pour votre précieuse aide.
Bonne semaine.
 

cathodique

XLDnaute Barbatruc
:)
re
oui c'est de ma faute j'ai utilisé un iif

Private Sub TextBox4_Change() 'calcul du total si modif prix
Dim I%, Cal As Double
If Me.ListBox1.ListCount = 0 Then Exit Sub
For I = 0 To Me.ListBox1.ListCount - 1
If Me.ListBox1.ListIndex = I Then
If Me.TextBox4 <> "" Then Cal = Cal + TextBox4
Else
Cal = CDbl(Me.ListBox1.List(I, 5)) + Cal
End If
Next I
Me.TxtCtrlMontant = Cal
End Sub


Private Sub TextBox5_Change() 'calcul du total si modif prix
Dim I%, Cal As Double
If Me.ListBox1.ListCount = 0 Then Exit Sub
For I = 0 To Me.ListBox1.ListCount - 1
If Me.ListBox1.ListIndex = I Then
If Me.TextBox4 <> "" Then Cal = Cal + TextBox4
Else
Cal = CDbl(Me.ListBox1.List(I, 6)) + Cal
End If
Next I
Me.TxtCtrlMontant = Cal
End Sub

Ok à+
Bonjour jpb388:),

Merci beaucoup. J'avais corrigé. Mais très gentil de ta part d'avoir répondu rapidement.
Pour l'édition du code, utilises les balises de code VB pour que le code soit coloré pour une meilleure lisiblilité.

Encore merci. Bonne semaine.;)
 

ChTi160

XLDnaute Barbatruc
Bonjour Cath
Bonjour le Fil ,le Forum
une version perfectible .
je ne traite que la gestion des Données du userform (hors modification )
Question : peux tu mettre des exemples explicites de ce que tu veux lors d'une modification de Facture.
merci
jean marie
 

Pièces jointes

  • Modifications-Chti160-1.xlsm
    100.4 KB · Affichages: 24

cathodique

XLDnaute Barbatruc
Bonjour Jean Marie:), Le Fil:),Le Forum:),

Merci beaucoup, très gentil de ta part. Dans ton fichier en retour avec un complément d'explications.

Encore merci. Excuser mes retards.:oops:

Bonne journée.;)
 

Pièces jointes

  • Modifications-Chti160-1.1.xlsm
    849.5 KB · Affichages: 37

Discussions similaires

Réponses
3
Affichages
437

Statistiques des forums

Discussions
311 724
Messages
2 081 937
Membres
101 844
dernier inscrit
pktla