Probleme code VBA

Bonsoir, je reviens vers vous.

Après avoir déjà eu de l’aide dans la construction du code de mon fichier

Et copier du code par-ci ,par-là sur le forum , je me trouve à nouveau dans le dur avec un souci d’erreur débogage. Comme je n’arrive pas a trouver la solution je passe par 2 colonnes (VetW) pour un résultat et une recopie dans la cellule S .peut être que la méthode employée n’est pas conventionnelle.

Ce que je souhaiterais c’est que :

Si Recto-simple = “oui“ alors

Prendre la valeur dans :soit tbdocument ou tbimprimé

Et le multiplier par TBPages ( Nbr de page )

Le résultat dans la colonne “S“ (calcul pulsions)

Par contre

Si Recto-verso = “oui“ alors

fait le même travail sauf que tu multiplie le tout par 2

J’espère être clair si ce n’est pas le cas je reste à votre disposition

D’avance merci a vous

Bonjour Eric-M59

Si je ne me trompe pas

Private Sub CBValider_Click()
' ...
            Range("v" & num) = TBDocument.Value * TBPages.Value * (R_RV / IIf(CBRecto, 2, 1))
            Range("w" & num) = TBImprimé.Value * TBPages.Value * (R_RV / IIf(CBRecto, 2, 1))
' ...
End Sub

Car recto-verso prend moins de pages il me semble alors que tu disais

Eric-M59 a écrit :

Si Recto-verso = “oui“ alors fait le même travail sauf que tu multiplie le tout par 2

Merci pour ta réponse NCC 1701,

Apres mise en place de te solution j'ai une erreur (incompatibilité de type)

que je mette une valeur dans document ou imprimé j'ai l'erreur.

N'aurait il pas possibilité d'un code qui rassemblerait

Range("v" & num) = TBDocument.Value * TBPages.Value * (R_RV / IIf(CBRecto, 2, 1))

Range("w" & num) = TBImprimé.Value * TBPages.Value * (R_RV / IIf(CBRecto, 2, 1))

et au lieu d'avoir les résultat en colonne (V & W) avoir le résultat en cellule ( S )

Merci

(..)

Excuse-moi je n'ai pas trop l'habitude des formulaires et des conversions multiples qu'ils engendrent !

théoriquement cette correction là devrait fonctionner :

            Range("v" & num) = TBDocument.Value * TBPages.Value * (Val(R_RV) / IIf(CBRecto, 2, 1))
            Range("w" & num) = TBImprimé.Value * TBPages.Value * (Val(R_RV) / IIf(CBRecto, 2, 1))

Que veux tu dire par cellule 5 ?

Salut, je suis désolé mais malgré la correction cela donne toujours la même erreur.

Range("v" & num) = TBDocument.Value * TBPages.Value * (Val(R_RV) / IIf(CBRecto, 2, 1))

Range("w" & num) = TBImprimé.Value * TBPages.Value * (Val(R_RV) / IIf(CBRecto, 2, 1))

Et ce n’est pas la cellule 5 mais la colonne “S“ comme Sylvie.

Ma question est que plutôt que de passer par 2 colonnes “V & W“ pourquoi ne pas faire une ligne de code qui prendrait en compte les calculs et irait les placer dans la colonne “S“ calcul pulsions.

Une idée peut etre pour éviter l’erreur serait peut etre de mettre une condition :

Si TBDocument comporte une valeur alors désactive TBImprimé du genre

If TBDocument .Value <> » » then

TBImprimé.desabled=true

End if

Je l’ai essayé il me met

Erreur de compilation : Membre de méthode ou de données introuvable

Mon niveau est trop bas actuellement , je ne maitrise pas assez , juste ce qu’il faut pour comprendre , pour le moment bien sur, je ne demande qu’a apprendre .

bonjour je reviens vers vous car j'ai un erreur incompatibilité type.

pouvez vous y jeter un œil merci .

Dim num As Integer ' on dimensionne la variable (num)
 Dim R_RV As Byte
 R_RV = 1
 Dim Var1 As Integer
 Var1 = TBPages

                                              '**************************
        num = Range("a250").End(xlUp).Row + 1 ' Variable pour connaitre *
                                              ' la derniere ligne vide  *
                                              '**************************

            Range("a" & num) = TBDate.Value '***************************************
            Range("b" & num) = CBServices.Value '                                  *
            Range("c" & num) = TBDocument.Value                         '***************************
            Range("d" & num) = TBImprimé.Value                          ' Les données se projetent *
            Range("E" & num) = IIf(CBNoirA4.Value = True, "Oui", "")    '           dans           *
            Range("F" & num) = IIf(CBNoirA3.Value = True, "Oui", "")    '            le            *
            Range("G" & num) = IIf(CBCouleurA4.Value = True, "Oui", "") '          tableau         *
            Range("H" & num) = IIf(CBCouleurA3.Value = True, "Oui", "") '***************************
            Range("i" & num) = IIf(CBSimple.Value = True, "Oui", "")

            Range("j" & num) = IIf(CBRecto.Value = True, "Oui", "")
                If CBRecto.Value = True Then R_RV = 2

            Range("k" & num) = TBAgraphe.Value
            Range("l" & num) = TBSpirale.Value
            Range("m" & num) = TBThermo.Value
            Range("n" & num) = TBLivret.Value
            Range("o" & num) = IIf(CBPlasA4Nor.Value = True, "Oui", "")
            Range("p" & num) = IIf(CBPlasA3Nor.Value = True, "Oui", "")
            Range("q" & num) = IIf(CBPlasA4Plas.Value = True, "Oui", "")
            Range("r" & num) = TBPages.Value

                Range("v" & num) = TBDocument.Value * Var1 * (Val(R_RV) / IIf(CBRecto, 2, 1))
                    If TBDocument.Value <> " " Then
                        TBImprimé.Enabled = False
                    Else
                        TBImprimé.Enabled = True
                    End If

                Range("w" & num) = TBImprimé.Value * Var1 * (Val(R_RV) / IIf(CBRecto, 2, 1))

               If TBImprimé.Value <> " " Then
                    TBDocument.Enabled = False
                Else
                    TBDocument.Enabled = True

                End If

    Unload Me

End Sub

ci-joint fichier

Bonsoir problème résolu il est clair que quand on te laisse dans ta mer..., tu finis par trouver encore quelques réglages et ça va le faire.

Merci à théze, archer, Andre13 et NCC1701 pour leurs participations.

Cordialement

Rechercher des sujets similaires à "probleme code vba"