Amélioration d'un code VBA

Résolu
vieuxray -  
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   -
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 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
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
vieuxray
 
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   Statut Modérateur Dernière intervention   2 761
 
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
vieuxray
 
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   Statut Modérateur Dernière intervention   2 761
 
As tu changé Label1 par Label483?
0
vieuxray
 
Oui oui bien sur

j'ai bien vérifier
0
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761
 
0
vieuxray
 
je la refait après dejeuner
te tient au courant
merci bon app

Ray
0
vieuxray
 
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
vieuxray
 
http://cjoint.com/?0Lkjd6XMeDY

le lien est cette fois
0