Amélioration d'un code VBA

Résolu/Fermé
vieuxray - Modifié par vieuxray le 10/12/2013 à 08:17
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 10 déc. 2013 à 13:55
Bonjour a toutes et tous, Forum Bonjour

Serait'il possible svp d'optimiser le code ci-dessous afin d'éviter le répètitif

Je vous souhaite une bonne journée

Cordialement Ray

   
For i = 2012 To 2030
ComboBox1.AddItem i
Next i
ComboBox1.Text = Year(Now)

Dim An As Long, Sp As Long: Sp = 19
An = ComboBox1.Text

For i = 1 To 12
If i = 2 Then Sp = 22
If i = 3 Then Sp = 26
If i = 4 Then Sp = 21
If i = 5 Then Sp = 24
If i = 6 Then Sp = 23
If i = 7 Then Sp = 22
If i = 8 Then Sp = 28
If i = 9 Then Sp = 22
If i = 10 Then Sp = 22
If i = 11 Then Sp = 25
If i = 12 Then Sp = 22

Label483.Caption = Label483.Caption & Space(Sp) & An
Next i
A voir également:

4 réponses

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
Modifié par michel_m le 10/12/2013 à 08:30
Bonjour

Dim i as integer

Dim An As integer, Sp As byte
An = ComboBox1

For i =1 to 12
Sp=choose(i,22,26,21 etc)
etc...

mais je n'ai pas compris pourquoi sp=19 dans les déclarations
et pourquoi tu mets l'année (an) en texte
Michel
2
Salut Michel_m

j'ai adapter a mon programme et j'ai regarder l'aide pour (choose) je ne connaissais pas
bon en tout cas ca fonctionne

Merci pour ton aide et ton savoir partagé

Cordialement Ray
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 743
10 déc. 2013 à 08:49
Bonjour,

Une variante à la proposition de Michel (Salut!), en passant par un Array :

Dim An As Integer, i As Byte, Espaces()

Espaces = Array(19, 22, 26, 21, 24, 23, 22, 28, 22, 22, 25, 22)
An = Year(Now)
For i = 0 To 11
   Label1.Caption = Label1.Caption & Space(Espaces(i)) & An
Next i


Sp = 19 dans les déclarations doit être du à la première valeur que tu souhaites donner à Sp. Je l'ai donc mis en premier dans l'Array.

1
Salut Pijaku

Bon j'ai essayer également ton code mais ca ne fonctionne pas

rien ne s'affiche dans mon label, j'ai chercher mais pas trouvé encore

a plus tard et merci également pour ton aide

Cordialement Ray
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 743
10 déc. 2013 à 11:48
As tu changé Label1 par Label483?
0
Oui oui bien sur

j'ai bien vérifier
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 743
10 déc. 2013 à 12:00
0
je la refait après dejeuner
te tient au courant
merci bon app

Ray
0
Salut Michel et pikaju

Merci pour vos réponses c'est sympa a vous deux

ci-joint le bandeau que je souhaite réaliser

http://www.cjoint.com/?0LkiW6lJFTi

Donc Sp=19 est pour placer Janv pou ne pas qu'il colle au gauche de l'USF

le petit Label rose sera transparent, je l'ai rendu visible pour l'instant

et ci dessous le code qui m'a permis de faire le bandeau

c'est pôurquoi je souhaiterai optimiser tout ça car c'est pas terrible

Merci a vous pour les codes je vais essayer ça dès mon retour RDV toubib

encore merci a plus tard et une bonne journée a vous

Cdlt Raymond


For i = 2012 To 2030
ComboBox1.AddItem i
Next i
ComboBox1.Text = Year(Now)

Dim An As Long, Sp As Long: Sp = 19
An = ComboBox1.Text

For i = 1 To 12
If i = 2 Then Sp = 22
If i = 3 Then Sp = 26
If i = 4 Then Sp = 21
If i = 5 Then Sp = 24
If i = 6 Then Sp = 23
If i = 7 Then Sp = 22
If i = 8 Then Sp = 28
If i = 9 Then Sp = 22
If i = 10 Then Sp = 22
If i = 11 Then Sp = 25
If i = 12 Then Sp = 22

Label483.Caption = Label483.Caption & Space(Sp) & An
Next i

'*** AFFICHAGE DES N°s ET DES MOIS DE L'ANNEE
Dim Numéro As String, Mois As String

Numéro = " 1" & Space(11) & "2" & Space(11) & "3" & Space(11) & "4" & Space(11) & "5" & Space(11) & "6" & Space(11) & "7" & Space(11) & "8" & Space(11) & "9" _
& Space(11) & "10" & Space(9) & "11" & Space(9) & "12"

Mois = " Janv" & Space(6) & "Févr" & Space(7) & "Mars" & Space(6) & "Avr" & Space(8) & "Mai" & Space(7) & "Juin" & Space(7) & "Juil" & Space(8) & "Aoùt" & Space(6) _
& "Sept" & Space(7) & "Oct" & Space(8) & "Nov" & Space(7) & "Déc"

Label455.Caption = Numéro
Label467.Caption = Mois
0
http://cjoint.com/?0Lkjd6XMeDY

le lien est cette fois
0