avec formule et macro pour répéter un événement su

niki42

XLDnaute Occasionnel
Bonjour la compagnie

Bon une petite question, je voudrais écrire ce qui suit en formule et en macro:

'si date jour = pair alors mettre A dans la cellule sinon mettre M'


La macro serait peut être mieux car j'ai plusieurs cellules à traiter
Voilà pour la première question

J'ai une autre question:
je travaille 1 samedi sur 2, quelle formule ou macro utiliser pour qu'il y est un 'L' (par exemple) automatiquement pour les samedis où je ne travaille pas

Merci pour vos réponses
 

WILFRIED

XLDnaute Impliqué
Salut Niki,

Voici une petite suggestion qui pourra peutêtre t'aider :

Sub test_niki()
Dim m_cell As Range
Dim jr_semaine As String

Range('A2', Range('A65536').End(xlUp)).Select
For Each m_cell In Selection
Select Case Weekday(m_cell)
Case 1
jr_semaine = 'Dimanche'
Case 2
jr_semaine = 'Lundi'
Case 3
jr_semaine = 'Mardi'
Case 4
jr_semaine = 'Mercredi'
Case 5
jr_semaine = 'Jeudi'
Case 6
jr_semaine = 'Vendredi'
Case 7
jr_semaine = 'Samedi'
End Select
m_cell.Offset(0, 1).Formula = jr_semaine
If Day(m_cell) Mod 2 = 0 Then
If Weekday(m_cell) = 7 Then
m_cell.Offset(0, 2).Formula = 'L'
End If
End If
Next
End Sub

La fonction weekday te renvoie le jour de la semaine de 1 à 7 en commencant par un dimanche ( je sais c'est débile mais bon Billy n'a pas fait que des choses bien cf : Windows Millénium).

Espérant avoir aider,

A+
 

Sylvie

XLDnaute Accro
Bonjour Niki, Bonjour Wilfried,

pour ta première question avec ta date en A1, tu peux utiliser la fonction EST.PAIR comme ceci :
=SI(EST.PAIR(JOUR(A1));'A';'M')

Comme je ne sais pas ce qu'est une 'date pair' j'ai présumé que tu voulais parler du jour du mois, d'où l'utilisation de la fonction JOUR dans la formule ci-dessus.

Bonne journée
 

Hervé

XLDnaute Barbatruc
Bonjour niki, wilfried, le forum

niki la premiere macro place A ou M suivant le jour (pair ou impair), et la deuxieme macro place un L u samedi sur 2 :

en espérant avoir répondu correctement.

Sub Bouton6_QuandClic()
Dim c As Range

For Each c In Range('a1:a20')
   
If Day(c) / 2 = Int(Day(c) / 2) Then
        c.Offset(0, 1) = 'A'
   
Else
        c.Offset(0, 1) = 'M'
   
End If
Next c
   
End Sub
'*****************************
Sub Bouton7_QuandClic()
Dim c As Range
Dim bon As Boolean

bon =
True
For Each c In Range('a1:a20')
   
If Weekday(c) = 7 Then
       
If bon Then
            c.Offset(0, 1) = 'L': bon =
False
       
Else
            bon =
True
       
End If
   
End If
Next c

Wilfried :) , tu peux faire commencer ta semaine le lundi en rajoutant un argument à weekday : weekday(m_cell,2)

salut

EDITION : salut sylvie :)

Message édité par: Hervé, à: 12/09/2005 14:28
 

WILFRIED

XLDnaute Impliqué
Salut Hervé, Sylvie

Hervè :
Merci pour l'info..

Par contre je constate que comme à ton habitude tu fait au plus court... ;) je crois que c'est pour moi une utopie de réussir à faire aussi bref du premier coup, il faut toujours que j'en rajoute et après si le prog est un peu long je m'embrouille...

Syvie :

Merci pour l'info du estpair, je vais voir si ont peu l'utilisé dans VBA..



A+
 

niki42

XLDnaute Occasionnel
Re:avec formule et macro pour répéter un événement

Bonsoir le forum

Je vous remercie pour vos réponses ainsi que pour votre rapidité!!

Sylvie c'est bien le genre de formule auquelle j'avais pensé mais seulement je ne savais pas si le PAIR existait.

Hervé j'ai un bug avec ta macro: une erreur d'exécution 13 incompatibilité de type?
J'ai essayé de faire des modifs mais sans succès

As tu une idée du pourquoi du comment de la chose?

J'ai utilisé cette macro avec le fichier NIKIRTT. J'ai créé le calendrier puis j'ai mis un bouton sur une feuille et j'y ai affecté cette macro.

J'attends ta réponse

Mais en fait je pense à un truc il ne faut pas que la macro remplace la date du jour par A ou M mais que dans mon tableau ce soit les cellules sous la date qui prennent le A ou le M


Merci

Message édité par: niki42, à: 12/09/2005 19:13
 

Hervé

XLDnaute Barbatruc
Re:avec formule et macro pour répéter un événement

rebonsoir tout le monde

Niki, Tu trouveras le fichier de création de planning ci-joint, dans lequel j'ai rajouté en ligne 3 les A ,M et L.

En espérant que ceci te convienne.

salut
[file name=nikirttV2.zip size=20424]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/nikirttV2.zip[/file]
 

Pièces jointes

  • nikirttV2.zip
    19.9 KB · Affichages: 38

Hervé

XLDnaute Barbatruc
Re:avec formule et macro pour répéter un événement

bonsoir tout le monde

Niki, une version 3, qui mérite encore beaucoup de boulot, comme tu t'en apercevra.

Je voulais juste savoir si j'étais dans le vrai avant d'aller plus loin.

salut
[file name=nikirttV3.zip size=27249]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/nikirttV3.zip[/file]
 

Pièces jointes

  • nikirttV3.zip
    26.6 KB · Affichages: 38

niki42

XLDnaute Occasionnel
Re:avec formule et macro pour répéter un événement

Bonjour le forum

Hervé je te remercie pour le travail que tu as fait.

Pour l'instant tu es dans la bonne voie.
Il y a juste pour les 'agents distributeurs' où les 2 travaillent en semaine décalée. Je m'explique: sur une semaine un agent fait mamam et l'autre fait amamam. et vice versa la semaine d'après.
en fait ça fait un cycle sur 2 semaines que l'on peut traduire comme ça:

MAMAML AMAMAM (L comme libre)

Voilà sinon je pensais que si vraiment c'est compliqué à gérer tous les cas de figure, il y a peut être une possibilité via userform de rentrer certaines choses dans le planning.

Car en fait après il faudra pouvoir faire des modifs sue le planning quand il y aura des congés maaldies, des congés annuels, des congés exceptionnels,etc...

J'attends ton avis et la suite si tu peux

Encore merci pour ton aide
 

Discussions similaires

Statistiques des forums

Discussions
312 198
Messages
2 086 119
Membres
103 124
dernier inscrit
Antoine Vdm