Bonjour à tous,
je me permet de faire appel à votre aide pour trouver une solution à mon (dans la mesure du possible ^^).
Dans le fichier joint, j'ai deux feuilles excel, la première est une base de données de salariés et la seconde un tableau de bord d'un salarié choisi via une liste déroulante (B4).
Mon probleme est le suivant :
- dans ma base de données j'ai une colonne avec la date de naissance de chaque enfant du salarié
- les salariés ayant des enfants à charge agés de moins de 12 ans ou 16 ans bénéficient d'avantage
je cherche donc à calculer l'âge actuel de chaque enfant et s'il a - 12 ans il est compté dans la cellule F8 et si c'est moins de 16 ans, dans la cellule D8.
Le probleme est que les salariés n'ont pas tous le meme nombre d'enfant, j'avais donc pensé à faire une boucle sur les lignes du salarié choisi (B4) jusqu'à ce que la cellule suivante soit vide. Mais je n'arrive pas à trouver la référence de la ligne pour pouvoir faire ma boucle sur les colonnes.
Sub enfant()
Dim nb_enfant_16ans, nb_enfant_12ans, i As Integer
i = 0
While Cells(2, 6 + i) <> ""
If (Year(Now) - Worksheets("donnes").Cells(2, 6 + i)) >= 12 Then
nb_enfant_12ans = nb_enfant_12ans + 1
Else
If (Year(Now) - Worksheets("donnees").Cells(2, 6 + i)) < 16 Then
nb_enfant_16ans = nb_enfant_16ans + 1
End If
End If
i = i + 1
Wend
Worksheets("salarie").Range("F8") = nb_enfant_12ans
Worksheets("salarie").Range("D8") = nb_enfant_16ans
End Sub
Voilà ce que j'ai commencé à écrire mais sans succès, sachant que là j'ai précisé la ligne directement pour essayer d’écrire la suite mais rien ne semble vouloir fonctionner.
Si vous avez des solutions possibles je suis preneur, ça me permettra d'un peu mieux comprendre le VBA !
J'espère avoir été suffisamment clair, auquel cas n'hésitez pas à me poser des questions !
Merci d'avance.
Cordialement Grejk.