Alimenter en fonction numéro semaine ou mois
Résolu
Co_nexion
Messages postés
333
Statut
Membre
-
skyzino Messages postés 32 Statut Membre -
skyzino Messages postés 32 Statut Membre -
Bonjour,
J'ai un peu l'impression d'avoir régressé après les vacances... Merci pour votre aide.
Au travers du fichier ci-dessous, je souhaite alimenter l'onglet synthèse avec les données de l'onglet Calcul.
En prenant la colonne E comme source d'alimentation et en fonction de la colonne P pour les semaines et O pour les mois.
Si vous avez des idées même avec VBA, je suis preneur :)
https://www.cjoint.com/?BHBoC6ocV4i
Merci d'avance
J'ai un peu l'impression d'avoir régressé après les vacances... Merci pour votre aide.
Au travers du fichier ci-dessous, je souhaite alimenter l'onglet synthèse avec les données de l'onglet Calcul.
En prenant la colonne E comme source d'alimentation et en fonction de la colonne P pour les semaines et O pour les mois.
Si vous avez des idées même avec VBA, je suis preneur :)
https://www.cjoint.com/?BHBoC6ocV4i
Merci d'avance
A voir également:
- Alimenter en fonction numéro semaine ou mois
- Fonction si ou - Guide
- Numéro père noël whatsapp - Accueil - Messagerie instantanée
- Numero prive - Guide
- Numero imei - Guide
- 600h en mois ✓ - Forum Excel
5 réponses
Personne pour ce problème ?
Vu le soleil je comprends... Mais un peu d'aide serait vraiment la bienvenue.
Vu le soleil je comprends... Mais un peu d'aide serait vraiment la bienvenue.
Re,
Un exemple VBA
Bonne suite
Un exemple VBA
Sub synthese()
Dim Plage As Range, cel As Range
Dim Compte_Semaine(53) As Single, Compte_Mois(12) As Single
Dim Num_Mois As Integer, Num_Sem As Integer, Mois
Dim Nb_Sem As Integer
Erase Compte_Semaine, Compte_Mois
'pour la dernière ligne de la colonne A
derlig = Worksheets("Calcul").Range("A" & Rows.Count).End(xlUp).Row
Set Plage = Worksheets("Calcul").Range("O2:O" & derlig)
For Each cel In Plage
If Worksheets("Calcul").Cells(cel.Row, "P") <> "" Then
'Mois
ValO = Worksheets("Calcul").Cells(cel.Row, "O")
Mois = Left(ValO, Len(ValO) - 5)
'Semaine
ValP = Worksheets("Calcul").Cells(cel.Row, "P")
Num_Sem = CInt(Left(ValP, Len(ValP) - 5))
Else
Exit Sub
End If
Select Case Mois
Case Is = "janvier"
Num_Mois = 1
Case Is = "févier"
Num_Mois = 2
Case Is = "mars"
Num_Mois = 3
Case Is = "avril"
Num_Mois = 4
Case Is = "mai"
Num_Mois = 5
Case Is = "juin"
Num_Mois = 6
Case Is = "juillet"
Num_Mois = 7
Case Is = "août"
Num_Mois = 8
Case Is = "septembre"
Num_Mois = 9
Case Is = "octobre"
Num_Mois = 10
Case Is = "novembre"
Num_Mois = 11
Case Is = "décembre"
Num_Mois = 12
Case Else
'cellule vide ou autre
End Select
Compte_Semaine(Num_Sem) = Compte_Semaine(Num_Sem) + Worksheets("Calcul").Cells(cel.Row, "E")
Compte_Mois(Num_Mois) = Compte_Mois(Num_Mois) + Worksheets("Calcul").Cells(cel.Row, "E")
Next cel
'Ecriture des Cumuls
'Cumul Mois
For i = 1 To 12
If Compte_Mois(i) > 0 Then
Worksheets("Synthèse").Cells(21, 2 + i) = Format(Compte_Mois(i), "###.##")
Else
Worksheets("Synthèse").Cells(21, 2 + i) = ""
End If
Next i
'Cumul Semaine
If Worksheets("Synthèse").Range("G16") = "" Then
Nb_Sem = 52
Else
Nb_Sem = 53
End If
'Coordonnees des cellules Semaine
For i = 1 To 52
Lig = Choose(i, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, _
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, _
11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, _
14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, _
17, 17, 17, 17)
Col = Choose(i, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, _
3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, _
3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, _
3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, _
3, 4, 5, 6, 7)
If Compte_Semaine(i) > 0 Then
Worksheets("Synthèse").Cells(Lig, Col) = Format(Compte_Semaine(i), "###.##")
Else
Worksheets("Synthèse").Cells(Lig, Col) = ""
End If
Next i
End Sub
Bonne suite
Re f89,
Pourquoi avoir mis cette partie de code ?
Pourquoi avoir mis cette partie de code ?
'Cumul Semaine
If Worksheets("Synthèse").Range("G16") = "" Then
Nb_Sem = 52
Else
Nb_Sem = 53
End If
Bonjour,
Cumul semaine: suivant les annees, il y a 52 ou 53 semaines. Meme si l'exemple que vous avez fourni n'est pas le projet final, il faut y penser.
Pour les donnees: Egalement les données sont stockés sous forme de texte.
si je code pour relire une cellule semaine ou mois, j'ai un nombre pas une chaine
Mais si vous voulez:
enlever le formatage du code et formater les cellules sauf si vous aimez les nombres avec 17 chiffres apres la virgule
Bonne suite
Cumul semaine: suivant les annees, il y a 52 ou 53 semaines. Meme si l'exemple que vous avez fourni n'est pas le projet final, il faut y penser.
Pour les donnees: Egalement les données sont stockés sous forme de texte.
si je code pour relire une cellule semaine ou mois, j'ai un nombre pas une chaine
Mais si vous voulez:
enlever le formatage du code et formater les cellules sauf si vous aimez les nombres avec 17 chiffres apres la virgule
Bonne suite
Re,
Je vous renvoie votre fichier. Je ne comprend pas pourquoi vous avez du texte,car dans votre fichier ce sont des nombres:a droite dans les cellules, si c'etait du texte: a gauche dans les cellules.
2007
https://www.cjoint.com/?BHCtUwPEowP
2003
https://www.cjoint.com/?BHCt0xojluk
Bonne suite
Je vous renvoie votre fichier. Je ne comprend pas pourquoi vous avez du texte,car dans votre fichier ce sont des nombres:a droite dans les cellules, si c'etait du texte: a gauche dans les cellules.
2007
https://www.cjoint.com/?BHCtUwPEowP
2003
https://www.cjoint.com/?BHCt0xojluk
Bonne suite
Bonjour F89,
Je viens de prendre le fichier 2007 pour vérifier et il s'agit bien d'un format texte sous lequel sont stockés les chiffres dans l'onglet synthèse.
J'ai ajouté 3 lignes supplémentaires (sur l'onglet calcul) puis j'ai lancé la macro et alors les chiffres stockés en onglet synthèse sont sous le format texte.
Dans l'attente d'un avis de votre part, je vous remercie par avance
Je viens de prendre le fichier 2007 pour vérifier et il s'agit bien d'un format texte sous lequel sont stockés les chiffres dans l'onglet synthèse.
J'ai ajouté 3 lignes supplémentaires (sur l'onglet calcul) puis j'ai lancé la macro et alors les chiffres stockés en onglet synthèse sont sous le format texte.
Dans l'attente d'un avis de votre part, je vous remercie par avance
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Re f89,
J'espère que vous aurez le temps de faire un détour par cet ancien topic résolu.
En effet j'ai souhaité rajouter un bout de code et cependant cela ne fait pas exactement ce que j'en ai voulu, surement ai-je oublié quelques points à modifier.
Voici ce que j'ai ajouté à la fin du précédent code
Par avance Merci
J'espère que vous aurez le temps de faire un détour par cet ancien topic résolu.
En effet j'ai souhaité rajouter un bout de code et cependant cela ne fait pas exactement ce que j'en ai voulu, surement ai-je oublié quelques points à modifier.
Voici ce que j'ai ajouté à la fin du précédent code
'Duplication 25/09
'Ecriture des Cumuls Heures
'Cumul Semaine Heures
If Worksheets("Synthèse").Range("F20") = "" Then
Nb_Sem = 52
Else
Nb_Sem = 53
End If
'Coordonnees des cellules Semaine Heures
For j = 1 To 52
lig = Choose(j, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, _
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, _
13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, _
17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, _
21, 21, 21, 21)
col = Choose(j, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, _
2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, _
2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, _
2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, _
2, 3, 4, 5, 6)
If Compte_Semaine(j) > 0 Then
Worksheets("Synthèse").Cells(lig, col) = CSng(Format(Compte_Semaine(j), "###.##"))
Else
Worksheets("Synthèse").Cells(lig, col) = ""
End If
Next j
Par avance Merci