Jour ferie

Bonjour le forum,

J'ai besoin de votre aide pour faire un petit programme qui remplit les jours feries dans un planning annuel.

Voilà, mon idée est la suivante :

J'ai un fichier excel de 53 feuilles (53 semaines de l'année), j'ai crée une feuille appelé "Ferie" ou y'aura les jours fériés de l'année.

j'ai essayé ce programme mais marche pas encore :

Sub Ferie()

Dim JF As String, k As Integer, i As Integer

Sheets("Ferie").Select

DernLigne = Sheets("Ferie").Range("A65536").End(xlUp).Row

For i = 1 To DernLigne

JF = Cells(i, 1)

For k = 1 To 53

Sheets("SEM" & i).Select

Set Col = Sheets("SEM" & i).Range("D4:X4").Find(JF, LookIn:=xlValues, lookat:=xlWhole)

If Col Is Nothing Then

Next

Else: MsgBox Col

'Une fois j'ai le numero de colonne je pourrais faire les modif que je veux

End If

Next

End Sub

Amicalement.

Bonjour

Un NEXT n'est pas à la bonne place, le mettre à la fin

Un if....Then sans condition

Dim JF As String, k As Integer, i As Integer
Sheets("Ferie").Select
DernLigne = Sheets("Ferie").Range("A65536").End(xlUp).Row
For i = 1 To DernLigne
JF = Cells(i, 1)

For k = 1 To 53
Sheets("SEM" & i).Select
Set Col = Sheets("SEM" & i).Range("D4:X4").Find(JF, LookIn:=xlValues, lookat:=xlWhole)
If Col Is Nothing Then
Next
Else: MsgBox Col
'Une fois j'ai le numero de colonne je pourrais faire les modif que je veux
End If

Next
End Sub

Bonjour,

Si cela peut t'être utile, un établissement de la liste des fériés, que j'ai extrait d'un travail en chantier. A l'origine le déclenchement du calcul était prévu automatiquement.

Autonomisant cette feuille, tu mets l'année en B1 et tu appuies sur le bouton initialiser. La liste des fériés de l'année est établie et mise dans l'ordre de dates (certains fériés mobiles pouvant se situer avant ou après les 1er et 8 mai).

Le 1er janvier de l'année suivante est inclus car si l'on travaille sur des périodes hebdomadaires il peut se trouver dans la dernière semaine de l'année.

Cordialement.

46feries.xlsm (20.00 Ko)

Merci M12 pour ta réponse.

Oui c'est bien ça le soucis.

En mettant Next à la fin, le programme n'aura pas la même fonctionnalité.

Le but c'est chercher le jour ferie (appelé JF) dans les 53 feuilles par une boucle for, s'il retrouve la date dans la feuille X appliquer les modifs sinon passer la feuille suivante.


Salut MFerrand,

Merci pour le fichier, il me sera très utile dans une deuxième étape.

Re,

Sans fichier modèle, je ne pourrai t'aider

Re,

Voilà le fichier M12,

La feuille des jours féries se trouve à la fin.

30ferie.xlsm (274.89 Ko)

Il me semble que tu te compliques...

La feuille étant SEM suivi du numéro de semaine. On la retrouve à partir du jour férié cherché.

La colonne étant, si la feuille est logiquement consituée indiqué par le jour en commençant du lundi auquel s'ajoute le nombre de colonnes précédant le lundi !

Soit une petite macro de test pour afficher feuille et indication colonne:

Sub PlacerFériés(jf, a As Integer)
    Dim dref, s%, j%
    dref = DateSerial(a, 1, 3)
    dref = dref - Weekday(dref) + 2
    If jf >= dref Then
        s = Int((jf - dref) / 7) + 1
    Else
        Exit Sub
    End If
    j = IIf(Weekday(jf) = 1, 7, Weekday(jf) - 1)
    MsgBox "feuille: SEM" & s & Chr(10) & "colonne: nb de colonnes précédant le lundi" _
     & " + " & j
End Sub

Sub test()
    Dim a%, jf
    a = 2016
    jf = DateSerial(a, 7, 14) 'à remplacer...
    PlacerFériés jf, a
End Sub

Macro lancée à partir d'une autre pour lui fournir les arguments (on peut mettre n'importe quelle date, elle la trouvera dans les mêmes conditions...), elle affiche la localisation dans un message.

Cordialement.

Merci pour ta réponse MFerrand,

Mais sur mon fichier la semaine commence le dimanche, du dimanche au samedi et les semaines ne sont pas pareilles que les semaines normales. En semaine réelle, le 1Er janvier est dans le semaine 53 de 2015 alors que dans mon fichier le 1er est dans la semaine 1 de 2016. C'est des contraintes, je peux pas faire autrement et le fichier se met à jour chaque année.

OK !

Bonne continuation.

Pour ma part je refuse de travailler (en Europe) sur une définition de la semaine dérogeant à la norme européenne...

Cordialement.

Rechercher des sujets similaires à "jour ferie"