1 semaine sur 2

E

Evelyne

Guest
Bonjour a tous et a toutes.

J'ai un petit souci que je vais vous expliquez, je ne cherche pas a ce que l'on me résolve forcement mais qu'on m'oriente vers des solutions en VBA si possible.

J'ai dans ma 1ere colonne une serie de dates representant un trimestre ou un semestre.
je voudrais quand choissisant par un combobox me proposant les jours de la semaine et 1 bouton option me précisant le roulement 1 semaine ou 2 semaines, inscrire a coté par exemple de chaque lundi ou 1 lundi sur 2, un message style 'réunion x'

Si vous avez des solutions , je suis preneuse.... :)
Merci beaucoup
 
M

michel_m

Guest
bonjour Evelyne

Pour te mettre sur la voie: tu as la fonction joursem qui t'indique le numero du jour

par exemple si la date est en A1 joursem(A1;2) dans cette série avec 2 lundi=1

Installe dans les macro complémentaires (outils-macro complémentaire) l'utilitaire d'analyse et tu disposeras de la fonction 'Nosemaine'

réunion x le lundi de semaine paire sera le résultat d'un ET

si(et(joursem;2)=1;mod((NOsemaine;2);2)=0);'reunion x';'')

mod (xxx;2) est égale à rzéro si xxxx est pair

a toi d'ajuster la syntaxe car j'écris de mémoire

Bon courage

Michel
 
E

Evelyne

Guest
Bonjour Michel,

Je vais regarder cela et essayer de comprendre le principe .

J'espere quand même avoir une réponse en vba ;)

c'est clair que c'est plus long mais je comprends mieux

en attendant je vais me débrouiller avec ta solution....

Merci encore
bonne aprés midi
 
M

michel_m

Guest
Re,

en VBA la fonction Weekday donne le numéro du jour

la fonction mod existe en vba

la fonction 'datepart' peut donner le num de la semaine

DatePart('ww', Range('A1'))

tu peux utiliser datepart pour le numero du jour ('w')


tu boucles sur ta colonne contenant les dates

si les conditions sont réalisées( voir solution en excel formule), la cellule à coté(colonne zzz) est égale à 'réunion'

pour i=xxx à yyy

si la condition est vraie
cells(xxx,zzzz)='réunionx'
fin si

suivant i

Michel
 

michel_m

XLDnaute Accro
Re, Evelyne

Okay mais dans ton message tu écrivais:

...'J'ai un petit souci que je vais vous expliquez, je ne cherche pas a ce que l'on me résolve forcement mais qu'on m'oriente vers des solutions en VBA si possible. '...

Je t'ai donc donné une petite méthode avec des fonctions excel puis vba, j'ose pas dire algo, pour te mettre sur le chemin; j'étais m^me plutôt content en me disant:
'enfin qqn qui ne demande pas un macdo mais qui veut une recette' mais...

Il s'agit simplement de parcourir ta colonne de date cellule par cellule(séquence répétitive) pour identifier ta cellule tu peux utiliser la syntaxe cells(ligne,colonne)
SI (séquence alternative) le jour est un lundi ET le numero de la semaine est pair ALORS inscrire dans la cellule à gauche 'réunionx'
FIN SI


pour savoir si la semaine est paire on utilise la fonction modulo qui donne le reste de la division d'un nombre par un autre, ici 2; si le nombre est pair le reste est égal à zéro sinon il est égal à 1 (neméro de semaine impaire)


Pour découvrir VBA, tu as un excellent site à mon avis:
www.info-3000.com

Tu peux aussi consulter sur ce site le Wiki de MichelXLD

A+
Michel
 
E

evelyne

Guest
Bonjour michel,

Je me suis trahie , mais d'un autre coté j'ai simplifié le probléme exposé .
En fait c'est beaucoup plus compliqué que cela en a l'air et cela me prendrai beaucoup temps ou de place à expliquer...donc j'ai résumé a une chose simple, ce que je voulais.

Je demandais donc un peu plus de détail ( voir un bout de vba qui ressemble a ce que je demande ) en sachant que de mon côté l'adaptation me donnerai certainnement plus de fil a retordre ,
car la plupart des valeurs que j'ai fixé sont des variables .

D'un autre côté j'ai commencé a travailler avec tes infos depuis hier.....donc ce que tu m'as dit me sert plus que tu ne le crois....

La plupart du temps :eek: j'arrive a faire ce que je veux...( plutot je me debrouille ) mais je me suis aperçu que mon VBA était 3 fois plus long que ce que je trouvais sur se site pour le même résultat....

Merci a toi

Salut
 

Discussions similaires