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