Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

reduire cette macro plus simplement

18 réponses
Avatar
magic-dd
bonsoir =E0 tous

dans le but d'alleger et d'ameliorer mon programme de compte, j'ai un
userform avec 12 label correspondant aux mois de l'ann=E9e.

comment peut on simplifier cela car dans chaque label nous retrouvons
ce code commun qui est

FormSaisie.Caption =3D "Mois de " & ActiveSheet.Name
TextBox1 =3D ActiveSheet.Name
titre =3D ActiveSheet.Name
FormSaisie.SoldeEpargne.Value =3D CStr(ActiveSheet.Range("T301")) +
" =80"
FormSaisie.SoldeEnzo.Value =3D CStr(ActiveSheet.Range("T307")) + "
=80"
FormSaisie.SoldeManon.Value =3D CStr(ActiveSheet.Range("T313")) + "
=80"
valide_soldes
COLORIE
Call plus

voici donc un bout de code pour 2 labels

Private Sub Label2_Click()
Sheets("FEVRIER").Select
FormSaisie.Caption =3D "Mois de " & ActiveSheet.Name
TextBox1 =3D ActiveSheet.Name
titre =3D ActiveSheet.Name
FormSaisie.SoldeEpargne.Value =3D CStr(ActiveSheet.Range("T301")) +
" =80"
FormSaisie.SoldeEnzo.Value =3D CStr(ActiveSheet.Range("T307")) + "
=80"
FormSaisie.SoldeManon.Value =3D CStr(ActiveSheet.Range("T313")) + "
=80"
valide_soldes
COLORIE
Call plus
End Sub

Private Sub Label3_Click()
Sheets("AVRIL").Select
FormSaisie.Caption =3D "Mois de " & ActiveSheet.Name
TextBox1 =3D ActiveSheet.Name
titre =3D ActiveSheet.Name
FormSaisie.SoldeEpargne.Value =3D CStr(ActiveSheet.Range("T301")) +
" =80"
FormSaisie.SoldeEnzo.Value =3D CStr(ActiveSheet.Range("T307")) + "
=80"
FormSaisie.SoldeManon.Value =3D CStr(ActiveSheet.Range("T313")) + "
=80"
valide_soldes
COLORIE
Call plus
End Sub

merci pour l'aide

8 réponses

1 2
Avatar
magic-dd
Oui, j'ai bien changé le nom de mes feuilles en les accentuant

mais rien y fait

je suis toujours en recherche

ca galère mais bon

merci encore

On 9 fév, 22:12, "michdenis" wrote:
Dans ton classeur original, le nom de tes feuilles n'avait pas d'accent.
Est-ce que tu as adapté le nom des feuilles dans tes formules le cas échéant ?



Avatar
magic-dd
Ca avance ca avance

je viens de voir que c'était mes ctrl.checkbox dans UseOpeFix qui
n'avaient pas les mois accentués.

donc ca c'est bon

il ne reste plus que le probleme sur la couleur du mois selectionné.

voila, un moment que j'y suis mais je bloque

merci de ton aide pour ce petit souci

au plaisir
Avatar
magic-dd
c'est donc ici que cela se joue

au niveau des

If InStr(1, N, Mid(.Name, 4), 1) Then .BackColor = RGB(209,
223, 229)
If InStr(1, ActiveSheet.Name, Mid(.Name, 4), 1)
Then .BackColor = RGB(255, 255, 1)

mais la je suis sec comme .... un gateau :)



Sub COLORIE()

Const N$ = "JANFEVMARAVRMAIJUINJUILAOUTSEPTOCTNOVDEC"
Dim Ctl As Control
For Each Ctl In FormSaisie.Controls
With Ctl
If InStr(1, N, Mid(.Name, 4), 1) Then .BackColor = RGB
(209, 223, 229)
If InStr(1, ActiveSheet.Name, Mid(.Name, 4), 1)
Then .BackColor = RGB(255, 255, 1)
End With
Next Ctl
End Sub
Avatar
michdenis
Qu'est-ce qui t'empêche de mettre des accents sur la constante ?


"magic-dd" a écrit dans le message de groupe de discussion :

c'est donc ici que cela se joue

au niveau des

If InStr(1, N, Mid(.Name, 4), 1) Then .BackColor = RGB(209,
223, 229)
If InStr(1, ActiveSheet.Name, Mid(.Name, 4), 1)
Then .BackColor = RGB(255, 255, 1)

mais la je suis sec comme .... un gateau :)



Sub COLORIE()

Const N$ = "JANFEVMARAVRMAIJUINJUILAOUTSEPTOCTNOVDEC"
Dim Ctl As Control
For Each Ctl In FormSaisie.Controls
With Ctl
If InStr(1, N, Mid(.Name, 4), 1) Then .BackColor = RGB
(209, 223, 229)
If InStr(1, ActiveSheet.Name, Mid(.Name, 4), 1)
Then .BackColor = RGB(255, 255, 1)
End With
Next Ctl
End Sub
Avatar
michdenis
Qu'est-ce qui t'empêche de mettre des accents sur la chaîne de la constante ?

Const N$ = "JANFÉVMARAVRMAIJUINJUILAOûTSEPTOCTNOVDÉC"

"magic-dd" a écrit dans le message de groupe de discussion :

c'est donc ici que cela se joue

au niveau des

If InStr(1, N, Mid(.Name, 4), 1) Then .BackColor = RGB(209,
223, 229)
If InStr(1, ActiveSheet.Name, Mid(.Name, 4), 1)
Then .BackColor = RGB(255, 255, 1)

mais la je suis sec comme .... un gateau :)



Sub COLORIE()

Const N$ = "JANFEVMARAVRMAIJUINJUILAOUTSEPTOCTNOVDEC"
Dim Ctl As Control
For Each Ctl In FormSaisie.Controls
With Ctl
If InStr(1, N, Mid(.Name, 4), 1) Then .BackColor = RGB
(209, 223, 229)
If InStr(1, ActiveSheet.Name, Mid(.Name, 4), 1)
Then .BackColor = RGB(255, 255, 1)
End With
Next Ctl
End Sub
Avatar
magic-dd
pour la chaine , j'ai bien essaye mais c ane prends en compte

donc la je seche

je suis convaincu que ca doit se situer à ce niveau

If InStr(1, N, Mid(.Name, 4), 1) Then .BackColor = RGB
(209, 223, 229)
If InStr(1, ActiveSheet.Name, Mid(.Name, 4), 1)
Then .BackColor = RGB(255, 255, 1)


On 9 fév, 23:15, "michdenis" wrote:
Qu'est-ce qui t'empêche de mettre des accents sur la chaîne de la con stante ?

Const N$ = "JANFÉVMARAVRMAIJUINJUILAOûTSEPTOCTNOVDÉC"

"magic-dd" a écrit dans le message de groupe de d iscussion :

c'est donc ici que cela se joue

au niveau des

          If InStr(1, N, Mid(.Name, 4), 1) Then .BackColor = RGB(209,
223, 229)
            If InStr(1, ActiveSheet.Name, Mid(.Name, 4), 1)
Then .BackColor = RGB(255, 255, 1)

mais la je suis sec comme .... un gateau :)



Avatar
Merguez07
le problème est dans le manque d'accent. Renomme par exemple BoxDec par
BoxDéc et tu verras que tout ira mieux (il y aussi un accent à rajouter
dans le code mais ça tu le verras dès que tu lanceras le programme)

Xavier




magic-dd a écrit :
pour la chaine , j'ai bien essaye mais c ane prends en compte

donc la je seche

je suis convaincu que ca doit se situer à ce niveau

If InStr(1, N, Mid(.Name, 4), 1) Then .BackColor = RGB
(209, 223, 229)
If InStr(1, ActiveSheet.Name, Mid(.Name, 4), 1)
Then .BackColor = RGB(255, 255, 1)


On 9 fév, 23:15, "michdenis" wrote:
Qu'est-ce qui t'empêche de mettre des accents sur la chaîne de la constante ?

Const N$ = "JANFÉVMARAVRMAIJUINJUILAOûTSEPTOCTNOVDÉC"

"magic-dd" a écrit dans le message de groupe de discussion :

c'est donc ici que cela se joue

au niveau des

If InStr(1, N, Mid(.Name, 4), 1) Then .BackColor = RGB(209,
223, 229)
If InStr(1, ActiveSheet.Name, Mid(.Name, 4), 1)
Then .BackColor = RGB(255, 255, 1)

mais la je suis sec comme .... un gateau :)







Avatar
magic-dd
UN GRAND MERCI à tous les 2

pour michdenis et son aide pedagogique

et pour merguez07 qui m'a ouvert les yeux sur l'accent des textbox.

merci encore et probleme résolu

bonne journée
1 2