Comment avoir les valeurs d'une table sur feuille dans des labels ?
Bonjour à tout le monde,
j'ai un tableau divisé en 4 parties qui comporte 1 colonne pour les dates et 14 colonnes divisées en 2 parties.
(la 1ère partie pour la 1ère quinzaine sur la matinée, la 2ème partie pour la 1ère quinzaine sur l'après-midi,
la 3ème partie pour la 2ème quinzaine sur la matinée, la 4ème et dernière partie pour la 2ème quinzaine sur l'après-midi)
soit (2 x 7 ) 14 colonnes pour les tranches horaires et 31 lignes(1 ligne par date).
La 1ère quinzaine dure sur 16 lignes et 2x7 colonnes et la 2ème quinzaine dure sur 15lignes et 2x7 colonnes. Ensuite, sur le formulaire j'ai une Combobox , 4 boutons (1 bouton pour chaque partie du tableau qui va changer la valeur de la liste déroulante dans l'onglet où se trouve le tableau et pour les labels, il y en a 112(de Label1 à Label112) et pour la 2ème quinzaine : (de Label1 à Label105)
J'aimerais savoir comment récupérer les valeurs contenues dans ce tableau, que ce soit pour les dates(qui vont du jour en cours jusqu'au16ème jour) et aussi pour les 112 cellules (quand elles sont vides et quand elle ne le sont pas).
Quelle boucle doit-je utiliser pour les dates (en écrivant les samedi et dimanches en RGB (0, 255, 0)et les autres en RGB(255, 192, 0))
quelle boucle pour les 112 labels ?
Private Sub CdBtn_Quinzaine_Matin_1_Click()
For I = 5 To 19
Controls("Label_date_" & I).Value = ""
Next
End Sub
J'ai trouvé cette petite macro qui marche bien mais je ne sais pas quel code écrire à la place du : = "" pour que les labels aient pour caption la valeur qu'ils doivent recevoir.
Je n'arrive pas à progresser sur les boucles. Y en a qu'une seule que j'arrive à faire c'est : "While ... Wend".
J'ai bcp de difficulté pour For Next ainsi que pour For Each ... Next. J'ai visionné plusieurs tutos mais je n'arrive pas à trouver le bon code pour ma macro.
Y aurait-il quelqu'un qui puisse m'expliquer (avec bcp de pédagogie s'il vous plaît) comment travailler avec une boucle ? ou avec une imbrication de boucles
Par ailleurs, pour ce qui concerne le "i", quand je le tape et que je fais "Entrée", il se met d'office en majuscules, j'ai remis le "i" en minuscule, il se remet en majuscules.
alors que dans les tutos, on voit le "i" en minuscule !
D'avance, je vous en remercie.
Stef de Nîmes
Bonsoir Steph, bonsoir le forum,
À Nîmes on ne sait pas qu'avec un fichier exemple c'est beaucoup plus facile ?...
Bonjour à tous,
En attendant le fichier, 2 remarques concernant la programmation :
1/ il faut être précis dans les termes utilisés. Quand on veut modifier le caption d'un contrôle, le mot clé à utiliser est ... caption soit Controls("Label_date_" & i).caption = ...
Et en passant un label n'a pas et n'aura jamais de value. Pour lister les propriétés valides d'un contrôle il suffit de lire la liste dans la fenêtre "Propriétés
2/ une bonne pratique en VBA est d'écrire au haut de tous les modules utilisés la mention Option Explicit. Ce qui oblige à déclarer proprement toutes les variables utilisées.
Pour ce faire :
- on utilise à bon escient les mots clés
PublicPrivateStaticouDim - on type proprement toutes ces variables (pour s'aider on peut se référer à => https://www.excel-pratique.com/fr/vba/variables
- ainsi si on a déclaré proprement une variable
Dim i as integer(i en minuscule), ce i restera en minuscule dans la procédure ou fonction de la portée de la déclaration (dans le cas contraire c'est qu'il y a qqchose de mal écrit qqpart dans le code)
Voilà qq pistes en attendant ...
Pierre