VBA/Excel

Fermé
PleaseCallMe - 4 août 2008 à 10:01
 PleaseCallMe - 6 août 2008 à 09:03
Bonjour,

J'aimerais avoir votre avis sur un petit programme qui m'embête un peu.
Voilà, j'ai un classeur nommé Suivi_prod dans lequel figure un tableau.
Je dois remplir ce tableau en me servant d'autres classeurs.
Notamment un nommé "Suivi des stocks".
Celui-ci présente une colonne date en B du Lundi au vendredi.
Je dois recuperer des données contenant dans une autre colonne en D.
Cela dit je dois recupérer les données compris entre Lundi et Vendredi uniquement.
Et si la date actuelle est un Mardi par exemple, il doit me generer la somme des valeurs du Lundi au vendredi précédant.
Si quelqu'un peut m'éclairer pour savoir comment m'y prendre ca serait sympa.
A voir également:

30 réponses

lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 191
5 août 2008 à 18:16
cque tu veux, cque tu veux... cque tu voudrais je suppose.
Tu pourrais pas expliquer DIRECTEMENT cque tu VOUDRAIS ???????
parce que comme ça ont peu encore tourner en rond jusqu'à la Saint GlinGlin.

Y a pas de fonction VBA qui fait cela, faut calculer à partir d'une date
comment tu a trouver le N° de semaine ?
0
Bonjour

J'avais cela sous le coude si ça peut vous servir dans votre *programme* :
Opérations simples sur les timestamp et les dates :
http://www.konqi.fr/ts.php (Par 'Yoan' ; Modo & Contrib CCM)

Merci
0
J'ai crée une fonction qui me permet d'avoir le numéro de la semaine!
En gros je pars de la Date d'aujourd'hui ! C'est-a-dire la Semaine 32
Il me faut des résultats de la semaine passée! Donc je me retrouve à la semaine 31!
Ensuite faut que je recupere le Lundi de cette fameuse Semaine 31 !
D'où pourquoi je dois transformer les 1/2/3/4/5/6/7 par une vraie date sous la forme jj/mm/aaaa
Donc j'ai le "Jour" Le numéro semaine et l'année
Il me semble que c'est possible de trouver la date sous la bonne forme!
0
Bonjour ; si cela peut vous servir,


J'aimerais savoir comment on peut faire pour récupérer le Lundi d'une semaine à partir du Numéro de Semaine et de l'Année !

function SemaineStamp($n_semaine, $annee)
{
        // 1er jour de l'année :
        $jour1 = mktime(0,0,0,1,1,$annee);
        $jour_retenu = $jour1;
        
        if(date("W", $jour1) == 1)
        {
                while(date("W", $jour1) == 1)
                {
                        $jour_retenu = $jour1;
                        $jour1 -= 86400;
                }
        }
        else
        {
                while(date("W", $jour1) != 1)
                {                        
                        $jour1 += 86400;
                }
                $jour_retenu = $jour1;
        }        
        return $jour_retenu + (604800 * ($n_semaine - 1));
}

Source : https://www.developpez.net/forums/d258171/php/langage/dates-numero-semaine-vers-timestamp/

(Par 'gloubi' : Modérateur : Titre sujet '[Dates] Numéro de semaine vers timestamp')


Merci à tous
0
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 191
5 août 2008 à 19:53
Bonjour, Voir le libellé du titre Stp, tu donne un exemple en C
0
Bonjour ; l'important c'est l'algorithme = c'est adaptable, ça servira à d'autres,

Obenir le premier jour d'une semaine (en chiffre) en passant le numéro de la semaine ainsi que l'année
Function GetLundi(Byval wn as long, byval Y as long) as Date
    GetLundi = DateAdd("ww", wn, CDate("01/01/" & y)) _
    - Weekday(CDate("01/01/" & y)) + 2
End Function
Source : https://codes-sources.commentcamarche.net/

(Sujet : Premier jour de la semaine [ Archives Visual Basic / Exécution ] (alexnrok))

En plus si ça peut servir : Calculer le numero de semaine d'une date :
http://www.codyx.org/snippet_calculer-numero-semaine-date_152.aspx

Merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 191
5 août 2008 à 19:42
Montre ta macro qui calcule la semaine
0
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 250
5 août 2008 à 20:01
Bonjour,

pourquoi s'embeter à passer par le n° de semaine pour avoir le lundi de la semaine précédente ????
Pars de la date d'aujourd'hui et :
lundi = Date - Weekday(Date, vbUseSystemDayOfWeek) - 6

eric
0
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 191
5 août 2008 à 20:18
Salut Eric,
M**D alors j'ai pourtant chercher partout dans l'aide pour WeekDay et j'ai pas trouver vbUseSystemDayOfWeek

Enfin, j'ai appris quequchose, merci à toi.
Edit: non, c'est pas ça, c'est l'astuce de soustraire le N° du jour !!
0
J'ai peut-être compliqué le truc, je testerai demain si ça fonctionne
Merci de vos réponses!
0
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 250
5 août 2008 à 20:14
et si tu ne veux pas être tributaire des parametres regionaux du micro met :
lundi = Date - Weekday(Date, vbMonday) - 6

pour un début de semaine systematiquement le lundi
eric
0
Bonjour ; astuce / remarque / prévoyance,

Pourquoi s'embêter à passer par le n° de semaine ? Pour le lundi qui précède ?

Le calcul peut ainsi être fait sur n'importe quelle semaine ;))
Et pas que sur la semaine qui précède.

Quoi faire si l'ordinateur était éteint pendant 1 mois ou plus ?
Souplesse dans l'algorithme.

Merci à vous ; (votre aide est utile car je ne sais pas tout et pas tout bien)
0
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 250
5 août 2008 à 22:47
Et si la date actuelle est un Mardi par exemple, il doit me generer la somme des valeurs du Lundi au vendredi précédant
La question de départ est bien : on a une date, quel est le lundi de la semaine qui précède.

A mon avis il a eu besoin du n° de semaine pour une raison qcqconque et est reparti de là pour calculer le lundi (en compliquant du coup le problème).
eric
0
Bonjour PleaseCallMe,

Est-ce que vous devez conserver les données pour chaque semaine ?
Quid des données saisies dans 1 mois ou plus couvrant 4 semaines (pour 1 mois) + ou - ?

((pour 1 mois) + ou - car 1 mois n'est pas égale exactement à 4 semaines)

Est-ce que vous devez faire un document final que vous conservez chaque semaine ou est-il remplacé ?

(Le truc du lundi au vendredi de la semaine précédente si on est le mardi)

Merci (J'ai bien lu le message précédant d'eriiic #34)
0
Je dois recuperer des valeurs d'une feuille, appelons là "X" qui s'étale sur un mois avec toutes les dates du 1er au 31 sauf les Samedis et Dimanche (Colonne B).
Je dois ensuite sous un autre classeur recupérer semaine par semaine les valeurs d'une autre colonne (D) de "X".
Ce calcul se fait par rapport à la date du jour que l'on est.
Ensuite par rapport à ce jour je dois generer les résultats de la semaine précédante.

Donc mon idée était de retrouver grâce à une formule le Lundi de la semaine précédante.
A partir de ce "Lundi précédant" parcourir jusqu'au Vendredi de cette même semaine précédante et prendre les valeurs de la colonne D!
Je pense que c'est une bonne méthode.
Cela dit, les résultats d'une semaine peuvent être à cheval sur deux feuilles vu qu'une feuille équivaut à un mois!

C'est assez tordu à faire, et c'est tout aussi difficile à expliquer!
0