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

yremy

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

Bonsoir Soenda !
Bonsoir Forum !

Ok, on va les ratatiner, ces lignes !
:D
Je te prie de m'excuser pour cette réponse tardive. Veux-tu que je bosse quelque chose en attendant ? Pour ma part, mes compétences sont d'ores et déjà dépassées pour progresser dans cette simplification : adapter, bidouiller, pas de soucis, mais je n'ose pas me lancer dans une écriture quelconque, malheureusement...
...Pas vraiment prêt.
En tout cas, merci pour ton aide !
A+, bien amicalement,
Yves
 

Discussions similaires