[RESOLU] - VBA - TextBox ne récupèrent pas les données

FlorianN

XLDnaute Junior
Bonsoir le fofo,

J'ai créé un fichier pour me permettre de calculer ce que je dois aux impôts après avoir payer mes salariés.

Ce fichier contient un userform.
Dans les paramètres de ce fichier "simulateur", des informations ne sont pas reprises dans les textbox alors que j'ai bien affecté le code aux textbox correspondantes.
Les textbox qui posent problèmes sont les dernières :
- Décote maximum (ligne 15)
- Abattement (ligne 16)

Pourtant, lorsque je regarde dans la feuille, les données ont bien été importées.
Comment puis-je résoudre ce problème ?

Si je peux abuser un peu, comment faire pour saisir des taux en pourcentage et non en centième dans le module "4 - % IMPOSITION (ligne12)" ?

Voir la copie écran jointe ainsi que le fichier.


Vous remerciant tous d'avance de votre aide.
 

Pièces jointes

  • 2015-01-31 23_54_42Simulateur impôts.png
    2015-01-31 23_54_42Simulateur impôts.png
    24.9 KB · Affichages: 21
  • Simulateur Impôts - VED.xlsm
    101.3 KB · Affichages: 34
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : VBA - TextBox ne récupèrent pas les données

Re

L24 au lieu de M24, non ?
Et cela va tout de suite mieux ;)

UserForm1.FRANCHISE.Value = Sheets("Liquidation Taxe Salaire").Range("L22").Value
UserForm1.DECOTE_MIN.Value = Sheets("Liquidation Taxe Salaire").Range("L23").Value
UserForm1.DECOTE_MAX.Value = Sheets("Liquidation Taxe Salaire").Range("M24").Value
UserForm1.ABATTEMENT.Value = Sheets("Liquidation Taxe Salaire").Range("L25").Value
 

FlorianN

XLDnaute Junior
Re : VBA - TextBox ne récupèrent pas les données

Rhô la honte :eek:
En même temps, plus on a le nez dans dedans moins on voit les choses...

Merci de ce retour rapide et toujours efficace.


Puis-je maintenant abuser un peu ?
Concernant les taux d'imposition, comment puis-je faire pour saisir en pourcentage et non en centième ?
Car si je dois mettre 75%, je dois saisir 0.75. Logique me dira-tu.
Mais pour simplifier la saisie, j’aimerai que cela soit en pourcentage.
As-tu une idée ? Parce que là je donne ma langue au chat.

PS : si tu me dit que c'est encore un truc tout bête, je rend mon tablier ! Nâ !
 

Staple1600

XLDnaute Barbatruc
Re : VBA - TextBox ne récupèrent pas les données

Re

Une dernière pour la route, avant le dodo
Ci-dessous suggestion d'écriture pour alléger ton code
Si cela te dit, je te laisse tester ces allégements sur le reste de ton code ;)
NB:Au passage,j'ai ajouté ce qui concerne le format %
Et oui, tu te retrouves donc sans tablier ;) (si j'ai bien compris de quoi il s'agissait ;))
Une astuce pour saisir en %, saisir dans une cellule formatée en % : .75
(au lieu de 0.75, cela te fait gagner 1 caractère ;))

Bonne nuit à tous
VB:
'--------------------------------------------------
' pour récupérer les valeurs des taux et tranches |
'--------------------------------------------------
With Sheets("Liquidation Taxe Salaire") 'ici suggestion 1 : utiliser With \ End With
    UserForm1.TAUX_A = .Range("N12"): UserForm1.TAUX_A1 = .Range("N13") 'ici suggestion 2
    UserForm1.TAUX_A2 = .Range("N14"): UserForm1.TAUX_A3 = .Range("N15")

    UserForm1.A.Value = .Range("L13").Value
    UserForm1.A1_INF.Value = .Range("L13").Value
    UserForm1.A1_SUP.Value = .Range("M13").Value
    UserForm1.A2_INF.Value = .Range("L14").Value
    UserForm1.A2_SUP.Value = .Range("M14").Value
    UserForm1.A3_SUP.Value = .Range("L15").Value

    UserForm1.TAUX_B.Value = .Range("L16").Value
    UserForm1.TAUX_C.Value = .Range("L17").Value

    UserForm1.SECTEUR1.Value = Format(.Range("L19").Value, "0%")
    UserForm1.SECTEUR2.Value = Format(.Range("M19").Value, "0%")
    UserForm1.SECTEUR3.Value = Format(.Range("N19").Value, "0%")
    UserForm1.SECTEUR4.Value = Format(.Range("O19").Value, "0%")

    UserForm1.FRANCHISE.Value = .Range("L22").Value
    UserForm1.DECOTE_MIN.Value = .Range("L23").Value
    UserForm1.DECOTE_MAX.Value = .Range("L24").Value
    UserForm1.ABATTEMENT.Value = .Range("L25").Value
   
'--------------------------------------------------------------
' pour récupérer les sommes dues ou à devoir dans les TextBox |
'--------------------------------------------------------------
    UserForm1.EX1.Value = .Range("M29").Value
    UserForm1.EX2.Value = .Range("M29").Value
    UserForm1.EX3.Value = .Range("M29").Value
    UserForm1.EX4.Value = .Range("M29").Value
    UserForm1.DEVOIR1.Value = .Range("M28").Value
    UserForm1.DEVOIR2.Value = .Range("M28").Value
    UserForm1.DEVOIR3.Value = .Range("M28").Value
    UserForm1.DEVOIR4.Value = .Range("M28").Value
    UserForm1.TOTALV.Value = .Range("M44").Value
 End With
 
Dernière édition:

FlorianN

XLDnaute Junior
Re : VBA - TextBox ne récupèrent pas les données

Merci de ta suggestion d’allégement qui est adoptée et validée !
Toute fois, je préfère la syntaxe suivante qui est plus claire pour m'y retrouvé rapidement.
Les deux sont équivalentes et font la même chose.

Code:
'--------------------------------------------------
' pour récupérer les valeurs des taux et tranches |
'--------------------------------------------------
With Sheets("Liquidation Taxe Salaire")

    UserForm1.TAUX_A = .Range("N12")
    UserForm1.TAUX_A1 = .Range("N13")
    UserForm1.TAUX_A2 = .Range("N14")
    UserForm1.TAUX_A3 = .Range("N15")

    UserForm1.A = .Range("L13")
    UserForm1.A1_INF = .Range("L13")
    UserForm1.A1_SUP = .Range("M13")
    UserForm1.A2_INF = .Range("L14")
    UserForm1.A2_SUP = .Range("M14")
    UserForm1.A3_SUP = .Range("L15")

    UserForm1.TAUX_B = .Range("L16")
    UserForm1.TAUX_C = .Range("L17")

    UserForm1.SECTEUR1 = .Range("L19")
    UserForm1.SECTEUR2 = .Range("M19")
    UserForm1.SECTEUR3 = .Range("N19")
    UserForm1.SECTEUR4 = .Range("O19")

    UserForm1.FRANCHISE = .Range("L22")
    UserForm1.DECOTE_MIN = .Range("L23")
    UserForm1.DECOTE_MAX = .Range("M23")
    UserForm1.ABATTEMENT = .Range("L24")
   
'--------------------------------------------------------------
' pour récupérer les sommes dues ou à devoir dans les TextBox |
'--------------------------------------------------------------
    UserForm1.EX1 = .Range("M29")
    UserForm1.EX2 = .Range("M29")
    UserForm1.EX3 = .Range("M29")
    UserForm1.EX4 = .Range("M29")
    UserForm1.DEVOIR1 = .Range("M28")
    UserForm1.DEVOIR2 = .Range("M28")
    UserForm1.DEVOIR3 = .Range("M28")
    UserForm1.DEVOIR4 = .Range("M28")
    UserForm1.TOTALV = .Range("M44")

End With