Alimenter en fonction numéro semaine ou mois
Résolu
Co_nexion
Messages postés
328
Date d'inscription
Statut
Membre
Dernière intervention
-
skyzino Messages postés 28 Date d'inscription Statut Membre Dernière intervention -
skyzino Messages postés 28 Date d'inscription Statut Membre Dernière intervention -
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
- Numero prive - Guide
- Numéro père noël whatsapp - Accueil - Messagerie instantanée
- Numero imei - Guide
- Numero de serie idm ✓ - Forum Logiciels
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