Je n'ai pas le bon fer à friser pour les boucles

yremy

XLDnaute Junior
Bonjour Forum ! Bonjour à tous !

Vous avez été privé d'un roman grâce à une panne électrique causée par des légumes farçis. (enfin, je crois que c'est plutôt le four qui n'aime pas ma façon très scolaire de coder)
En plus, j'en étais à la (presque) Fin.

Alors je m'essaie au style synthétique :

un tableau ci-joint me permet de remplir des Labels sur un Userform (qui prend bonne tournure), et qui permettront l'écriture d'un récap manuel (coup de Tampon rouge sur une facture, puis feutre noir Suisse Allemand)

Je suis désormais d'excel-lent(Salut !)(e) humeur. Encore plus qu'avant.
Au temps pour le style synthétique. J'essaie de continuer. Style synthétique ! (je m'accroche)

Sur le Userform :
Douze*3 Labels : "Montant TTC " "Type TVA" "Imputation" qui se nomment respectivement :

Montant1/2/3...
TVA1/2/3...
Imput1/2/3...

Les trois sur une ligne donc, encore une fois : douze lignes dans Frame2 s/ l' USF

Sauf que chaque imputation peut faire appel à deux taux de TVA différents
...et desfois non. Ben voyons.

alors j'ai eu beau essayer avec des for/next, mon niveau neuronal déficient m'empêche d'entrevoir la clarté, et pour le moment ça donne ça, avec, j'en suis sûr, des combinaisons oubliées :

Code:
        If Sheets("TraitementFactures").Range("A38").Value <> "" Then
            With Me.Frame2
            .Visible = True
            End With
            
'1ere Ligne de Labels
                If Range("E38") <> 0 And Range("F38") = 0 Then
                    With Me.Imput1
                        .Caption = ""
                        .Visible = True
                        .Caption = Range("C38").Value
                    End With
                    With Me.Montant1
                        .Caption = ""
                        .Visible = True
                        .Caption = Format(Range("G38").Value, "# ##0.00")
                    End With
                    With Me.TVA1
                        .Caption = ""
                        .Visible = True
                        .Caption = (Range("I36").Value) * 100 'TVA 5.5
                    End With
                ElseIf Range("E38") = 0 And Range("F38") <> 0 Then
                    With Me.Imput1
                        .Caption = ""
                        .Visible = True
                        .Caption = Range("C38").Value
                    End With
                    With Me.Montant1
                        .Caption = ""
                        .Visible = True
                        .Caption = Format(Range("G38").Value, "# ##0.00")
                    End With
                    With Me.TVA1
                        .Caption = ""
                        .Visible = True
                        .Caption = Range("F38").Value ' TVA 19.6
                    End With

                ElseIf Range("E38") <> 0 And Range("F38") <> 0 Then
                    With Me.Imput1
                        .Caption = ""
                        .Visible = True
                        .Caption = Range("C38").Value
                    End With
                    With Me.Montant1
                        .Caption = ""
                        .Visible = True
                        .Caption = Format(Range("J38").Value, "# ##0.00")
                    End With
                    With Me.TVA1
                        .Caption = ""
                        .Visible = True
                        .Caption = (Range("I36").Value) * 100 'TVA 5.5
                    End With
                    With Me.Imput2
                        .Caption = ""
                        .Visible = True
                        .Caption = Range("C38").Value
                    End With
                    With Me.Montant2
                        .Caption = ""
                        .Visible = True
                        .Caption = Format(Range("L38").Value, "# ##0.00")
                    End With
                    With Me.TVA2
                        .Caption = ""
                        .Visible = True
                        .Caption = (Range("K36").Value) * 100 ' TVA 19.6
                    End With
                End If
                
'2e Ligne de Labels
            If Me.Imput2.Caption <> "" Then
                If Range("E39") <> 0 And Range("F39") = 0 Then
                        With Me.Imput3
                            .Caption = ""
                            .Visible = True
                            .Caption = Range("C39").Value
                        End With
                        With Me.Montant3
                            .Caption = ""
                            .Visible = True
                            .Caption = Format(Range("J39").Value, "# ##0.00")
                        End With
                        With Me.TVA3
                            .Caption = ""
                            .Visible = True
                            .Caption = (Range("I36").Value) * 100 ' TVA 5.5
                        End With
                ElseIf Range("E39") = 0 And Range("F39") <> 0 Then
                        With Me.Imput3
                            .Caption = ""
                            .Visible = True
                            .Caption = Range("C39").Value
                        End With
                        With Me.Montant3
                            .Caption = ""
                            .Visible = True
                            .Caption = Format(Range("L39").Value, "# ##0.00")
                        End With
                        With Me.TVA3
                            .Caption = ""
                            .Visible = True
                            .Caption = (Range("K36").Value) * 100 ' TVA 19.6
                        End With
                ElseIf Range("E39") <> 0 And Range("F39") <> 0 Then
                        With Me.Imput3
                            .Caption = ""
                            .Visible = True
                            .Caption = Range("C39").Value
                        End With
                        With Me.Montant3
                            .Caption = ""
                            .Visible = True
                            .Caption = Format(Range("J39").Value, "# ##0.00")
                        End With
                        With Me.TVA3
                            .Caption = ""
                            .Visible = True
                            .Caption = (Range("I36").Value) * 100 ' TVA 5.5
                        End With
                        With Me.Imput4
                            .Caption = ""
                            .Visible = True
                            .Caption = Range("C39").Value
                        End With
                        With Me.Montant4
                            .Caption = ""
                            .Visible = True
                            .Caption = Format(Range("L39").Value, "# ##0.00")
                        End With
                        With Me.TVA4
                            .Caption = ""
                            .Visible = True
                            .Caption = (Range("K36").Value) * 100 ' TVA 19.6
                        End With
                End If
            ElseIf Me.Imput2.Caption = "" Then
                If Range("E39") <> 0 And Range("F39") = 0 Then
                    With Me.Imput2
                        .Caption = ""
                        .Visible = True
                        .Caption = Range("C39").Value
                    End With
                    With Me.Montant2
                            .Caption = ""
                            .Visible = True
                            .Caption = Format(Range("J39").Value, "# ##0.00")
                        End With
                        With Me.TVA2
                            .Caption = ""
                            .Visible = True
                            .Caption = (Range("I36").Value) * 100 ' TVA 5.5
                        End With
                ElseIf Range("E39") = 0 And Range("F39") <> 0 Then
                        With Me.Imput2
                            .Caption = ""
                            .Visible = True
                            .Caption = Range("C39").Value
                        End With
                        With Me.Montant2
                            .Caption = ""
                            .Visible = True
                            .Caption = Format(Range("L39").Value, "# ##0.00")
                        End With
                        With Me.TVA2
                            .Caption = ""
                            .Visible = True
                            .Caption = (Range("K36").Value) * 100 ' TVA 19.6
                        End With
                ElseIf Range("E39") <> 0 And Range("F39") <> 0 Then
                        With Me.Imput2
                            .Caption = ""
                            .Visible = True
                            .Caption = Range("C39").Value
                        End With
                        With Me.Montant2
                            .Caption = ""
                            .Visible = True
                            .Caption = Format(Range("J39").Value, "# ##0.00")
                        End With
                        With Me.TVA2
                            .Caption = ""
                            .Visible = True
                            .Caption = (Range("I36").Value) * 100 ' TVA 5.5
                        End With
                        With Me.Imput3
                            .Caption = ""
                            .Visible = True
                            .Caption = Range("C39").Value
                        End With
                        With Me.Montant3
                            .Caption = ""
                            .Visible = True
                            .Caption = Format(Range("L39").Value, "# ##0.00")
                        End With
                        With Me.TVA3
                            .Caption = ""
                            .Visible = True
                            .Caption = (Range("K36").Value) * 100 ' TVA 19.6
                        End With
                End If
            End If
 ' 3e Ligne de Labels ...J'arrête là, j'en ai plein d'autres derrière...
Pour le moment, ça marche. La problématique est de gérer la présence de deux taux sur la même imputation, ou bien d'une seule, ce qui me permet de profiter de la place qui reste vacante...

Je n'arrive pas à simplifier cela.
parce qu'à la fin, je vais me retrouver avec grosso modo 45000 lignes (bon, j'exagère un peu...)

Pourriez-vous m'aider, s'il vous plaît ?
Merci

Yves.

rroooo, pis des légumes farçis qui bouzillent le four en plus...

:D
 

Pièces jointes

  • TestBouclesLabels.zip
    15.6 KB · Affichages: 38

kjin

XLDnaute Barbatruc
Re : Je n'ai pas le bon fer à friser pour les boucles

Bonsoir,
Le four explosé, les légumes brulés et l'indigestion de code, ça j'ai compris :eek: (j'espère qu'il n'y avait pas trop d'invités), mais le pb qui t'amènes, beaucoup moins.
Quel intérêt de travailler avec des labels plutôt qu'avec une listview ?
Et le formulaire, l'est où ?
A+
kjin
 

yremy

XLDnaute Junior
Re : Je n'ai pas le bon fer à friser pour les boucles

Bonsoir Kjin, et merci de ta réponse ! :)

Yes !
la listView, je l'ai approchée de loin, mais pas encore testée. Un scroll se met-il automatiquement sur une listView ? je suppose...

...Bonne idée en tout cas. Je l'ai mise sur ma toolbox pas plus tard qu'hier, d'ailleurs...

Le fichier allégé en PJ. La facture actuelle à tester s'appelle 789.

le userform s'affiche sur la page "_Truc" et ailleurs.
le bouton vérif facture est la base de la vérif, qui permet de corriger la dernière saisie.

Encore Merci,
@+
Yves
 

Pièces jointes

  • Gestion_Achats_Fournisseurs_Kjin.zip
    158.1 KB · Affichages: 47

soenda

XLDnaute Accro
Re : Je n'ai pas le bon fer à friser pour les boucles

Bonsoir à tous, kjin, yremi

C'est vrai qu'avec des listes déroulantes ...

Ci-dessous, une 1ère simplification mais on peut encore (beaucoup) réduire la taille du code
Code:
'1ere Ligne de Labels
    If [E38] * [F38] = 0 And [E38] + [F38] <> 0 then
        Input1.Caption = Range("C38").Value
        Montant1.Caption = Format(Range("G38").Value, "# ##0.00")
        TVA1.Caption = 100 * IIf([I36] <> 0,[I36],[F38]) 'TVA 5.5 ou 19.6
 
        Affiche(1) = True
 
    ElseIf Range("E38") <> 0 And Range("F38") <> 0 Then
        Input1.Caption = Range("C38").Value
        Montant1.Caption = Format(Range("J38").Value, "# ##0.00")
        TVA1.Caption = (Range("I36").Value) * 100 'TVA 5.5
 
        Input2.Caption = Range("C38").Value
        Montant2.Caption = Format(Range("L38").Value, "# ##0.00")
        TVA2.Caption = (Range("K36").Value) * 100 ' TVA 19.6
 
        Affiche(1) = True
        Affiche(2) = True
 
    End If
 
'2e Ligne de Labels ... Je te laisse continuer
Pour rendre visible ou non, les labels on peut utiliser un tableau de booléens
Code:
Dim Affiche(12) As Boolean
Dim i As Integer
 . . .
For i = 1 to 12
    Controls("Input" & i).Visible = Affiche(i)
    Controls("Montant" & i).Visible = Affiche(i)
    Controls("TVA" & i).Visible = Affiche(i)
next
Ca permettrait d'y voir plus clair ...

A plus
 

yremy

XLDnaute Junior
Re : Je n'ai pas le bon fer à friser pour les boucles

Bonsoir Soenda ! :)
Merci ! Tu m'as déjà fait avancer. Je n'aurais pas trouvé cela tout seul.

Cela me semble déjà une très bonne solution :
Code:
If [E38] * [F38] = 0 And [E38] + [F38] <> 0 then
Je trouve ça franchement bon. J'avoue que je vais essayer de cultiver cette façon de voir si logique...

De même,
Code:
Controls("Input" & i).Visible = Affiche(i)
je l'avais effleuré, mais de très loin : me manquait :
Code:
Dim Affiche(12) As Boolean
J'y vois déjà beaucoup plus clair (malgré la fumée des Poivrons), mais qu'en est-il de :
C'est vrai qu'avec des listes déroulantes ...
@+, encore merci !
Yves
 

soenda

XLDnaute Accro
Re : Je n'ai pas le bon fer à friser pour les boucles

RE à tous, yremi

Puisque mon préliminaire de réponse te semble acceptable, je continue.

Tout d'abord, pour les poivrons et les listes déroulantes:
Qu'importe les contrôles utilisés, si on sait ...

Et pour poursuivre:
remplace dans dans ta question (communication) les copié/collé de
Code:
... Range("machin").Value ...
par des
Code:
... [E38] ...
C'est tout de suite plus lisible, et c'est d'ailleurs pour cela, que cette forme d'écriture existe.

Nous sommes donc au niveau 2, de la simplification. Et j'attends ton code (travail) :cool:

A plus
 

yremy

XLDnaute Junior
Re : Je n'ai pas le bon fer à friser pour les boucles

Bonjour Soenda, Kjin, Bonjour Forum !

J'ai fait comme tu as dit. Cela fonctionne. En revanche je me fais des noeux au cerveau.

Je dois être bête, mais pourquoi ces lignes (que j'ai mises en commentaires) font-elles disparaitre le quatrième résultat (en L39 sur "TraitementFactures") ? il est bien possible que ce Label reste vierge jusqu'à cet instant, non ?

Code:
 'If Affiche(3) = True Then
                'Imput4.Caption = [C40]
                'Montant4.Caption = Format([J40], "# ##0.00")
                'TVA4.Caption = [I36] * 100 'TVA 5.5
 
                'Imput5.Caption = [C40]
                'Montant5.Caption = Format([L40], "# ##0.00")
                'TVA5.Caption = [K36] * 100 ' TVA 19.6
        

                'Affiche(4) = True
                'Affiche(5) = True
Je vais faire dodo, je poursuivrai vers midi...
Encore Merci.
@+
 
Dernière édition:

soenda

XLDnaute Accro
Re : Je n'ai pas le bon fer à friser pour les boucles

Bonjour à tous,
Bonjour yves
...je me fais des noeux au cerveau ...
Deux choses:
- Rappel : La boucle qui gère le tableau de booléens "Affiche" rend visible ou non, tous les contrôles.
- Conseil: Tu ne devrais pas faire de test sur le tableau de boolean, car c'est à l'intérieur des "if" que ce tableau est modifié
Code:
'If [COLOR=red]Affiche(3)[/COLOR] = True Then ' [COLOR=red]Déconseillé[/COLOR] 
   'Imput4.Caption = [C40]
   ...
   [COLOR=blue]'Affiche(4)[/COLOR] = True  '  [COLOR=blue]==>[/COLOR] [COLOR=blue]Car tu affectes le tableau ici[/COLOR]
Fais ton test sur une autre variable, mais pas sur Affiche().
Je regarderai la PJ plus tard.

A plus
 

yremy

XLDnaute Junior
Re : Je n'ai pas le bon fer à friser pour les boucles

Bonjour Soenda, Bonjour Forum !

je pense que ce genre d'erreur se produisait parce que j'ai mélangé des lignes qui disent la même chose : si 3 est occupé, utilise et affiche 4 ; si 4 est libre, utilise et affiche 4, enfin, des noeux comme ça...
:eek:

Mais dans quoi me suis-je fourré ? :p

c'est bête, mais j'aime bien...
J'ai même ressorti mon crayon à papier.
Je reviens aussi un peu plus tard avec une PJ nouvelle. Le temps de la faire...

Merci, @+
Yves
 

yremy

XLDnaute Junior
Re : Je n'ai pas le bon fer à friser pour les boucles

Bonsoir Soenda !
Forum, Bonsoir !

J'ai rajouté trois colonnes qui m'ont bien aidé : Countif pour 0, counta pour faire la différence, et avoir le nombre d'enregistrements valides sans zéro.

Code:
    If Sheets("TraitementFactures").[A38] <> "" Then
        
        With Me.Frame2
        .Visible = True
        End With

        If [P38] = 1 Then
            Imput1.Caption = [C38]
            Montant1.Caption = Format([G38], "# ##0.00")
            TVA1.Caption = 100 * IIf([I36] <> 0, [I36], [K36]) 'TVA 5.5 ou 19.6
 
            Affiche(1) = True
        
        ElseIf [P38] = 2 Then
            Imput1.Caption = [C38]
            Montant1.Caption = Format([J38], "# ##0.00")
            TVA1.Caption = [I36] * 100 'TVA 5.5
 
            Imput2.Caption = [C38]
            Montant2.Caption = Format([L38], "# ##0.00")
            TVA2.Caption = [K36] * 100 ' TVA 19.6
        

            Affiche(1) = True
            Affiche(2) = True
 
        End If
        
    End If
    
'2e Ligne de Labels

    If [E39] * [F39] = 0 And [E39] + [F39] <> 0 Then
    
            If [P38] = 1 Then
                Imput2.Caption = [C39]
                Montant2.Caption = Format([G39], "# ##0.00")
                TVA2.Caption = 100 * IIf([I36] <> 0, [I36], [K36]) 'TVA 5.5 ou 19.6
 
                Affiche(2) = True
                
            ElseIf [P38] = 2 Then
                    Imput3.Caption = [C39]
                    Montant3.Caption = Format([G39], "# ##0.00")
                    TVA3.Caption = 100 * IIf([I36] <> 0, [I36], [K36]) 'TVA 5.5 ou 19.6
                    
                    Affiche(3) = True
            End If
            
    ElseIf [E39] <> 0 And [F39] <> 0 Then
    
        If [P38] = 1 Then
            Imput2.Caption = [C39]
            Montant2.Caption = Format([J39], "# ##0.00")
            TVA2.Caption = [I36] * 100 'TVA 5.5
            Imput3.Caption = [C39]
            Montant3.Caption = Format([L39], "# ##0.00")
            TVA3.Caption = [K36] * 100 ' TVA 19.6
                                
            Affiche(2) = True
            Affiche(3) = True
            
        ElseIf [P38] = 2 Then
            Imput3.Caption = [C39]
            Montant3.Caption = Format([J39], "# ##0.00")
            TVA3.Caption = [I36] * 100 'TVA 5.5
            Imput4.Caption = [C39]
            Montant4.Caption = Format([L39], "# ##0.00")
            TVA4.Caption = [K36] * 100 ' TVA 19.6
                    
            Affiche(3) = True
            Affiche(4) = True
            
        End If
                    
    End If

    etc...
Mes labels sont tous opérationnels, restent quelques tests pour déceler un [X40] au lieu d'un [X41] ou un truc dans le genre... Je corrigerai cela demain à tête reposée entre deux tâches.

Rhââââââââ. La phase 2 est-elle finie ? Que je dorme ?

:cool:

J'espère que tu es toujours dans les parages...
En PJ (j'ai pas encore fait le ménage)
Amitiés à tous,
IV
 
Dernière édition:

soenda

XLDnaute Accro
Re : Je n'ai pas le bon fer à friser pour les boucles

Bonjour le fil,
bonjour yves

Vois l'exemple ci-dessous pour la 6ème ligne de Label (on passe de 110 lignes à ... beaucoup moins)
Code:
If [E43] <> 0 Or [F43] <> 0 Then
 
  x = [P42]
 
  If x >= 5 And x = 10 Then
 
    Controls("Imput" & x + 1).Caption = [C43]
    Controls("Montant" & x + 1).Caption = Format([J43], "# ##0.00")
    Controls("TVA" & x + 1).Caption = 100 * IIf([I36] <> 0, [I36], [K36]) '(TVA 5.5 ou 19.6) ou 5.5
 
    Controls("Imput" & x + 2).Caption = [C43]
    Controls("Montant" & x + 2).Caption= Format([L43], "# ##0.00")
    Controls("TVA" & x + 2).Caption = 100 * IIf([K36] <> 0, [K36], [I36]) '(TVA 5.5 ou 19.6) ou 19.6
 
    Affiche(x + 1) = True
    Affiche(x + 1) = ([E43] <> 0 And [F43] <> 0)
 
  End If
End if
Si tu fais de même pour les autres lignes de labels, tu auras sérieusement réduit tes lignes de code.
On pourra alors, passer à l'étape suivante.

A plus

Edition : Notes bien que les lignes ci-dessus ne sont que la stricte traduction de la partie de code fournit en PJ (...)
 
Dernière édition:

yremy

XLDnaute Junior
Re : Je n'ai pas le bon fer à friser pour les boucles

Bonsoir Soenda !
Forum, Bonsoir

Pardon de répondre si tard, et Merci de ta nouvelle réponse.

J'ai appliqué ce que tu m'as montré - ce dont je te remercie - et j'ai essayé de l'adapter aux lignes en dehors de
Code:
ElseIf [E39] <> 0 And [F39] <> 0 Then
Mais peine perdue : je n'arrive à afficher que les trois premières lignes, et je cherche depuis deux heures pourquoi.

Je dois te dire (tu le verras en annexe), que j'ai dû rajouter une condition au sein de l'affichage des Labels. En effet, certains détails d'une facture ne relèvent pas de la TVA. Or donc, j'ai "écrit" ça :
Code:
'2e Ligne de Labels

    If [E39] * [F39] = 0 And [G39] <> 0 Then
    
            If [P38] = 1 Then
                Imput2.Caption = [C39]
                Montant2.Caption = Format([G39], "# ##0.00")
                If [E39] + [F39] = 0 Then
                    TVA2.Caption = ""
                Else
                    TVA2.Caption = 100 * IIf([I36] <> 0, [I36], [K36]) 'TVA 5.5 ou 19.6
                End If
 
                Affiche(2) = True
                
            ElseIf [P38] = 2 Then
                    Imput3.Caption = [C39]
                    Montant3.Caption = Format([G39], "# ##0.00")
                        If [E39] + [F39] = 0 Then
                            TVA3.Caption = ""
                        Else
                            TVA3.Caption = 100 * IIf([I36] <> 0, [I36], [K36]) 'TVA 5.5 ou 19.6
                        End If
                    
                    Affiche(3) = True
            End If
.
Ca marche bien, mais je n'arrive donc pas à y appliquer la méthode que tu m'enseignes.
:(
Les formules de la matrice qui génère les résultats des labels sont correctes, tu verras sur ("TraitementFacture"), le fonctionnement initial ne varie pas. Je resterai également sur 6 lignes à analyser, me permettant tout de même de saisir trente articles / sur 6 comptes différents, ce qui est rare sur une seule facture, de toute façon.

Encore mille mercis de ton aide.
Nvelle PJ.
Vivement @+ !:p
 

Pièces jointes

  • Soenda.zip
    173.9 KB · Affichages: 72

soenda

XLDnaute Accro
Re : Je n'ai pas le bon fer à friser pour les boucles

Bonsoir le fil
Bonsoir yves

Ca marche bien, mais ...
Je l'écrirai comme ça ... (approximativement)
Code:
[COLOR=darkgreen]' 2e Ligne de Labels[/COLOR]
 
[B][COLOR=blue]If [E39] = 0 Xor [F39] = 0 Then[/COLOR][/B]
 
   x = [P38] 
 
   If x = 1 Or x = 2 Then
 
      controls("Imput" & x + 1).Caption = [C39]
      controls("Montant" & x + 1).Caption = Format([G39], "# ##0.00")
 
      [COLOR=darkgreen]' Pour info, car le IIf, on aime ou n'aime pas ...[/COLOR]
      controls("TVA" & x + 1).Caption =IIf([E39] + [F39] = 0, "", 100 * IIf([I36] <> 0, [I36], [K36]))
 
      Affiche(x + 1) = True
 
   End If
 
[COLOR=darkgreen]' fin 2e ligne de Labels[/COLOR]
A plus
 
Dernière édition:

yremy

XLDnaute Junior
Re : Je n'ai pas le bon fer à friser pour les boucles

Bonsoir Soenda,
Bonsoir Forum,

Le Xor existe même en VBA

?! Et moi qui en étais resté à cette sorte de batracien à ondes courtes de la planète Zuglh...

Regarde cette belle 6e ligne !

Code:
' 6e Ligne de Labels
    If [E43] * [F43] = 0 And [G43] <> 0 Then
         x = [P42]
 
        If x >= 3 And x <= 6 Then
 
            Controls("Imput" & x + 1).Caption = [C43]
            Controls("Montant" & x + 1).Caption = Format([G43], "# ##0.00")
 
      ' Pour info, car le IIf, on aime ou n'aime pas ...
            Controls("TVA" & x + 1).Caption = IIf([E43] + [F43] = 0, "", 100 * IIf([I36] <> 0, [I36], [K36]))
 
            Affiche(x + 1) = True
 
        End If
 
    ElseIf [E43] <> 0 And [F43] <> 0 Then
        x = [P42]
 
        If x >= 5 And x = 10 Then
 
            Controls("Imput" & x + 1).Caption = [C43]
            Controls("Montant" & x + 1).Caption = Format([J43], "# ##0.00")
            Controls("TVA" & x + 1).Caption = 100 * IIf([I36] <> 0, [I36], [K36]) '(TVA 5.5 ou 19.6) ou 5.5
 
            Controls("Imput" & x + 2).Caption = [C43]
            Controls("Montant" & x + 2).Caption = Format([L43], "# ##0.00")
            Controls("TVA" & x + 2).Caption = 100 * IIf([K36] <> 0, [K36], [I36]) '(TVA 5.5 ou 19.6) ou 19.6
 
            Affiche(x + 1) = True
            Affiche(x + 1) = ([E43] <> 0 And [F43] <> 0)
 
        End If
    End If

20 lignes au lieu de 110 !
C'est les cartels Colombiens qui vont être furieux !
T'es sûr qu'il n'y a pas moyen de ne taper qu'une seule lettre ?
J'ai trouvé une très bonne explication de Xor ici.

En revanche, il me semble (bien humblement) que l'hypothèse de l'article sans TVA ne serait pas prise en compte si je ne rajoutais pas
Code:
And [G43] <> 0 Then
N'est-il pas ?
Je teste tout ça à fond ce soir.

On aborde une autre phase, ou on est toujours en phase deux ?
:D
Encore Merci !
@+
Yves
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 084
Messages
2 085 194
Membres
102 811
dernier inscrit
caroline29260