Bonjour à tous,
Je créé régulièrement des fonctions pour les taches répétitives dans mes programmes.
Je m'en suis sorti jusqu'à vouloir créer cette fonction.
ci dessous le code inséré dans le programme que je veux mettre dans une fonction car je l'utilise 15 à 20 fois à la suite.
pour cet exemple les variables sont :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 'SAISIE 6CU PR6 If Sheets("tab_calc_coll").Range("D34").Value = 0 Then With calculcoll.result_6cu_pr6 .Caption = "PR6 : 0 mètre" .ForeColor = &HFFFFFF .BackColor = &HFF& End With Else With calculcoll.result_6cu_pr6 .Caption = "PR6 : " & Sheets("tab_calc_coll").Range("D34").Value & " mètres" .ForeColor = &H0& .BackColor = &HC0FFC0 End With End If
2ieme ligne "d34" et 10ième ligne "d34" appelé lign
3ieme ligne ".result_6cu_pr6" et 9iéme ligne "result_6cu_pr6" appelé cellule
4iéme ligne "pr6" et 10ième ligne "pr6" variable appelé pr
et cela donnerai ceci pour moi :
Cette fonction ne renvoie pas de résultat mais elle se chargera de la mise en forme de plusieurs LABEL dans un userform.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 function saisicab (lign,cellule,pr) If Sheets("tab_calc_coll").Range(lign).Value = 0 Then With calculcoll.(cellule) .Caption = pr & " : 0 mètre" .ForeColor = &HFFFFFF .BackColor = &HFF& End With Else With calculcoll.(cellule) .Caption = pr & " : " & Sheets("tab_calc_coll").Range(lign).Value & " mètres" .ForeColor = &H0& .BackColor = &HC0FFC0 End With End If end function
Le problème que vous trouverez de suite est la variable cellule qui enregistre le nom du label. Effectivement vba ne reconnaît pas ceci !!! J'ai essayé plusieurs solutions sans y arriver.
j'ai essayé même de mettre en variable l'appel de l'userform jusqu'à la propriété sans plus de succés.
Je reconnais que je maîtrise très mal les variable de type objet appelant des fonctions spéciales!!!!:
Je pense que s'il y a solution, elle doit être dans ce type de variable !!!!
Pouvez vous m'aider ?
JE VOUS EN REMERCIE PAR AVANCE
Partager