Calcul de dates [Résolu]

Messages postés
32
Date d'inscription
vendredi 31 juillet 2009
Statut
Membre
Dernière intervention
17 février 2015
- - Dernière réponse : ucfoutu
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
- 14 janv. 2015 à 01:12
Bonjour,

J'ai un petit problème (je suis sur excel 2007). j'ai une plage de cellule (b6 à b36) qui me donne les dates de chaque jour du mois au format (lun. 01/01/15).Mon souci est d'arriver a afficher le numéro de la semaine correspondante en face sur la plage de cellule (a6 à a36).
ensuite mon deuxième souci est: lorsque je change la date en b6 toutes les autres se corrigent (pas de souci), mais bien sur les numéros de semaine change.

Pouvez vous m'aidez pour construire cette macro, merci par avance


--
Afficher la suite 

8 réponses

Meilleure réponse
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
209
1
Merci
Bonjour,
Il te suffit d'utiliser dans une formule la fonction No.SEMAINE d'excel. ( ex : =NO.SEMAINE(A4) )

Et su tu tiens a le faire par code VBA ===>>> exemple :
numsemaine = Format(Range("B2"), "ww", , vbFirstFourDays)



________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviend

Dire « Merci » 1

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 133 internautes nous ont dit merci ce mois-ci

Commenter la réponse de ucfoutu
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
209
1
Merci
Je te précise que la formule ne retourne pas un N° collant parfaitement à la norme européenne.
Le code VBA (qui permet, lui, la précision "vbFirstFourDays"), colle parfaitement à cette norme.
Si tu veux utiliser ce code en formule, fais-en donc une fonction personnalisée 'à mettre dans un module)

Dire « Merci » 1

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 133 internautes nous ont dit merci ce mois-ci

Commenter la réponse de ucfoutu
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
209
1
Merci
Mon aide s'arrête là (à la réponse à ta question, telle que posée par ton message d'ouverture de cette discussion).
Je te rappelle la règle de ce forum : une question technique, spécifique et( parfaitement isolée par discussion.

PS : je ne veux toutefois pas quitter cette discussion sans appeler ton attention sur un dernier point concernant la détermination d'une semaine correspondant à une date.
Une date d'une année x peut parfaitement correspondre à une semaine d'une année y (relire la norme européenne à ce sujet).

Ainsi, par exemple : le 1er janvier 2011 correspond à la 52ème semaine de l'année 2010 et non à une semaine de 2011.


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviend

Dire « Merci » 1

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 133 internautes nous ont dit merci ce mois-ci

Commenter la réponse de ucfoutu
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
209
1
Merci
Bon ...
je vais t'aider un peu plus :
Regarde ce que fait ceci :
Dans un classeur vierge :
Dans un module : cette fonction personnalisée :
Public Function numsemaine(cellule As Range) As Integer
numsemaine = Format(cellule, "ww", , vbFirstFourDays)
End Function


Sur la feuille Feuil1 :
Formate en standard les cellules A1 et B1
Formate en standard toute la colonne A
Formate en date les cellules B2 à B33 (du format date de ton choix)
En A2 : cette formule : =SI(B2<>"";numsemaine(B2);"")
Etire cette formule jusqu'à la ligne 33 (jusqu'en A33, donc)
En B2 : cette formule : =DATE(A1;B1;1)
En B3 cette formule : =SI(B2<FIN.MOIS($B$2;0);B2+1;"")
Etire cette formule jusqu'à la ligne 33 (jusqu'en cellule B33, donc)
Frappe maintenant une année en A1 et un N° de mois en B1 ===>> regarde ce qui se passe.

Voilà pour ta question d'origine. Je te laisse ensuite régler comme tu l'entends ton affaire de fusion de cellules (autre sujet)/.

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviend

Dire « Merci » 1

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 133 internautes nous ont dit merci ce mois-ci

Commenter la réponse de ucfoutu
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
209
1
Merci
Pas de quoi.
Il convient de libérer maintenant cette discussion (un clic sur le tag RESOLU au niveau de ton premier message).

Pour ton affaire de fusion : va au plus simple ===>> ajoute une colonne d' "affichage" (et fais-y tes fusions et défusions). Affiche dans cette colonne ce que tu veux et comme tu le veux en te servant des données calculées qui, elles, se trouvent dans leur colonne réelle, que tu masques ou dont tu mets la largeur à 0 (à ton choix).

Dire « Merci » 1

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 133 internautes nous ont dit merci ce mois-ci

Commenter la réponse de ucfoutu
Messages postés
32
Date d'inscription
vendredi 31 juillet 2009
Statut
Membre
Dernière intervention
17 février 2015
0
Merci
Merci pour ton aide, cela m'a permis d'avancer et d'avoir des indications pour orienter mes recherches, mais j'ai un peu de mal a la mettre en application, en fait je veux que les cellules b6 à b36 me donnent toutes les dates du mois (pour cela pas de problème). en face la plage de cellule a6 à a36 me donne le numéro de la semaine en fusionnant les cellules de la semaine concernées du lundi au dimanche. Ensuite je voudrais qu'en modifiant une cellule a1 dans une autre feuille cela modifie la valeur des cellules b6 a b36, et donc modifierait les cellules a6 à a36 en les défusionnants et en les refusionnant avec le bon numéro de semaine correspondant (du lundi au dimanche).
Je sais mon projet est un peu farfelu.
Merci par avance pour votre aide qui m'aident beaucoups dans mes recherches.


--
Commenter la réponse de cs_Franck93150
Messages postés
32
Date d'inscription
vendredi 31 juillet 2009
Statut
Membre
Dernière intervention
17 février 2015
0
Merci
Merci pour ton aide, cela m'a permis de savoir ou chercher, et comment orienter mes recherches pour finaliser mon projet. Merci encore.

--
Commenter la réponse de cs_Franck93150
Messages postés
32
Date d'inscription
vendredi 31 juillet 2009
Statut
Membre
Dernière intervention
17 février 2015
0
Merci
Je te remercie vraiment, je ne m'y attendais pas, en continuant mes recherches sur internet et différents supports (livres, .....) et différents conseils, je suis retourné sur le forum essayer de trouver des pistes pour pouvoir avancer dans mon projet.

j'ai vu qu'il y avait un message, et suis allé voir. Je ne m'y attendais pas du tout et vraiment je te remercie beaucoups.

Je l'ai essayer et cela fonctionne à merveille, il me reste a l'adapter à mon projet. c'est vraiment super. encore merci.

En fait ce projet et un fichier que je veux créer pour mon travail, afin de pouvoir faire un suivie des encaissements et des décaissements, un suivie sur les arretés comptables, les chargements/déchargements, l'encaisse DAB, ... de distributeurs automatiques à billets, .....

J'ai réussis à régler le problème des jours fériés par rapport au fonctionnements d'un DAB, il me restait ce problème de gestion des numéros de semaine, que je voulais automatiser en changeant la date (01/01/15) sur une feuille, toutes les dates et numéros de semaine s'actualiseraient sur une autre feuille, feuille dans laquelle je pourraient rentrer mes données. Ainsi il y aurais un fichier pour chaque mois, et en début de mois je rentrerait la date et tous s'actualiserait ensuite.

Voila sur quoi porte mon projet.

Pour le problème de fusion des cellules j'ai trouver la fonction merge qui fonctionne très bien, et le fonction unmerge qui fonctionne très bien, le seul souci c'est que quand je défusionne les cellules (par exemple a1 à a33) seule la cellule a1 récupère la valeur, les autres cellules a2 à a33 perdent leurs valeurs.

Petit à petit j'avance, et je te remercie vraiment pour ton aide.



--
Commenter la réponse de cs_Franck93150