Jour ferie

Y compris Power BI, Power Query et toute autre question en lien avec Excel
R
Roniamine
Jeune membre
Jeune membre
Messages : 26
Inscrit le : 11 février 2016
Version d'Excel : 2010

Message par Roniamine » 27 avril 2016, 10:35

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.
Avatar du membre
M12
Passionné d'Excel
Passionné d'Excel
Messages : 3'120
Appréciations reçues : 120
Inscrit le : 3 juillet 2015
Version d'Excel : 2013

Message par M12 » 27 avril 2016, 10:45

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
Merci de clôturer le fil en cliquant sur le bouton V vert du post à coté du bouton EDITER si problème résolu

Je ne répond pas au message privé
M
MFerrand
Fanatique d'Excel
Fanatique d'Excel
Messages : 17'171
Appréciations reçues : 446
Inscrit le : 20 juillet 2015
Version d'Excel : 2010 FR

Message par MFerrand » 27 avril 2016, 10:56

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.
Fériés.xlsm
(20 Kio) Téléchargé 30 fois
R
Roniamine
Jeune membre
Jeune membre
Messages : 26
Inscrit le : 11 février 2016
Version d'Excel : 2010

Message par Roniamine » 27 avril 2016, 11:03

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.
Avatar du membre
M12
Passionné d'Excel
Passionné d'Excel
Messages : 3'120
Appréciations reçues : 120
Inscrit le : 3 juillet 2015
Version d'Excel : 2013

Message par M12 » 27 avril 2016, 11:20

Re,

Sans fichier modèle, je ne pourrai t'aider :(
Merci de clôturer le fil en cliquant sur le bouton V vert du post à coté du bouton EDITER si problème résolu

Je ne répond pas au message privé
R
Roniamine
Jeune membre
Jeune membre
Messages : 26
Inscrit le : 11 février 2016
Version d'Excel : 2010

Message par Roniamine » 27 avril 2016, 12:04

Re,

Voilà le fichier M12,
La feuille des jours féries se trouve à la fin.
Ferie.xlsm
(274.89 Kio) Téléchargé 21 fois
M
MFerrand
Fanatique d'Excel
Fanatique d'Excel
Messages : 17'171
Appréciations reçues : 446
Inscrit le : 20 juillet 2015
Version d'Excel : 2010 FR

Message par MFerrand » 27 avril 2016, 12:14

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.
R
Roniamine
Jeune membre
Jeune membre
Messages : 26
Inscrit le : 11 février 2016
Version d'Excel : 2010

Message par Roniamine » 27 avril 2016, 12:34

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.
M
MFerrand
Fanatique d'Excel
Fanatique d'Excel
Messages : 17'171
Appréciations reçues : 446
Inscrit le : 20 juillet 2015
Version d'Excel : 2010 FR

Message par MFerrand » 27 avril 2016, 12:46

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.
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message