création planning Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
A
Arno51
Jeune membre
Jeune membre
Messages : 37
Inscrit le : 20 janvier 2018
Version d'Excel : 2016

Message par Arno51 » 20 septembre 2018, 12:53

Bonjour à vous,

un petit soucis au niveau de la création d'un planning :

Voici mon problème :
je commence par rentrer une date de début de stage et une date de fin de stage grâce a un inputbox.
je souhaite que toutes les dates entre ces deux jours soit mise dans mon tableau et que l'on cache les week-end et le vendredi aprem.

jusque là pas de problème. mon soucis est que la date de fin n'est pas reconnu et le code continu à l'infini. (et pourtant lors de sa création cela marchait).

Voici le code :
Sub Date_CC()

Dim cel As Range
Dim débutCC As Variant, finCC As Variant, jour As Date
Dim m As Long, k As Integer, dercol As Integer, derlig As Integer
Dim sh As Worksheet, mdp As Variant

Set sh = ActiveSheet

Application.ScreenUpdating = False

Range("E6").Select

débutCC = Format(InputBox("A quelle Date commence les Cas Concrets ?", "Date de début des cas concrets"), "dd/mm/yy") 'demande à l'utilisateur la date des 1er CC, le format date est automatiquement appliqué
If débutCC = "" Or Not IsDate(débutCC) Then
    Application.ScreenUpdating = True
    sh.Protect Password:=mdp
    Exit Sub                'si ce n'est pas une date ou vide on quitte la macro
End If

finCC = Format(InputBox("A quelle Date fini les Cas Concrets ?", "Date de fin des cas concrets"), "dd/mm/yy")  'demande à l'utilisateur la date des derniers CC, le format date est automatiquement appliqué

If finCC = "" Then
Application.ScreenUpdating = True
sh.Protect Password:=mdp
Exit Sub                                         ''si ce n'est pas une date ou vide on quitte la macro
End If

If Not IsDate(débutCC) Or Not IsDate(finCC) Then            'les données saisi doivent être des dates
Application.ScreenUpdating = True
sh.Protect Password:=mdp
Exit Sub
Else


Range("E6").Value = Format(débutCC, "dd - mmm")             'on impose le même format de date aux valeurs concernées
        derlig = Cells(Rows.Count, 3).End(xlUp).Row
            For m = 1 To derlig
                If Cells(m, 3) = "0" Then
                    Cells(m, 3).Rows.EntireRow.Hidden = True
                End If
            Next

débutCC = Format(débutCC, "dd - mmm")
finCC = Format(finCC, "dd - mmm")

Do Until ActiveCell.Value = finCC                           'on boucle tant que la date finCC n'est pas saisi
        ActiveCell.Offset(0, 1).Activate
        débutCC = DateAdd("d", 1, débutCC)                  'on ajoute un jour à chaque boucle
        ActiveCell.Value = Format(débutCC, "dd - mmm")      'on impose le même format de date aux valeurs concernées
'si c'est un week end  on cache les colonnes------------------------------------------------------------------
If ActiveCell.Offset(30, 0).Value = 6 Or ActiveCell.Offset(30, 0).Value = 7 Then
            ActiveCell.Offset(1, 0).Select
            Range(ActiveCell.Columns, ActiveCell.Offset(0, 1).Columns).EntireColumn.Hidden = True
            ActiveCell.Offset(-1, 0).Select
'si c'est un vendredi  on cache la colonne de l'après-midi-----------------------------------------------------
            ElseIf ActiveCell.Offset(30, 0).Value = 5 Then
            ActiveCell.Offset(1, 0).Select
            ActiveCell.Offset(0, 1).Columns.EntireColumn.Hidden = True
            ActiveCell.Offset(-1, 0).Select
            End If
Loop
End If

'les colonnes n'ayant pas de date seront cachées---------------------------------------------------------------
Range(ActiveCell.Offset(0, 1), Cells(6, 42)).Columns.EntireColumn.Hidden = True
Range("C:D").Columns.AutoFit
Application.ScreenUpdating = True

end sub
Merci d'avance pour votre aie
Avatar du membre
IronBoule
Membre fidèle
Membre fidèle
Messages : 295
Appréciations reçues : 36
Inscrit le : 5 octobre 2016
Version d'Excel : 2010 FR

Message par IronBoule » 20 septembre 2018, 15:25

Bonjour Arno51,

Pouvez-vous joindre un fichier pour simplifier la recherche ?

En prenant votre code, et en le testant, cela à fonctionné sans problème, donc l'erreur doit venir d'autre chose...

Cordialement,
IB

:btres:
A
Arno51
Jeune membre
Jeune membre
Messages : 37
Inscrit le : 20 janvier 2018
Version d'Excel : 2016

Message par Arno51 » 20 septembre 2018, 16:57

Voici le code dans un fichier excel.

bien entendu le fichier est plus grand normalement mais logiquement avec ce que j'ai laissé dessus il n'y a pas d'erreur de code.
Si jamais ce n'est pas suffisant je le mettrai au complet.

merci d'avance
Admin.xlsm
(181.82 Kio) Téléchargé 14 fois
Avatar du membre
IronBoule
Membre fidèle
Membre fidèle
Messages : 295
Appréciations reçues : 36
Inscrit le : 5 octobre 2016
Version d'Excel : 2010 FR

Message par IronBoule » 24 septembre 2018, 13:28

Bonjour,

Désolé, je ne vais pas être d'une grande aide, le programme s’exécute correctement à mon niveau.

Je ne rencontre aucun problème...

Cordialement,
IB

:btres:
A
Arno51
Jeune membre
Jeune membre
Messages : 37
Inscrit le : 20 janvier 2018
Version d'Excel : 2016

Message par Arno51 » 24 septembre 2018, 13:57

ok merci quand même, je cherche à modifier le code mais c'est un problème de date.
j'ai l'impression que le code suivant ne marche pas:
        ActiveCell.Value = Format(débutCC, "dd - mmm")     
car lorsque je passe la souris dessus après qu'elle se soit effectué la date est sous format : dd/mm/yyyy

j'ai essayé de changer pour que ça corresponde mais ça déconne aussi.
par exemple la date donnée par débutCC est sous la forme 14/09/2018
et finCC sous la forme "21/09/2018"

donc les guillemets m’embêtent fortement..
code date.png
A
Arno51
Jeune membre
Jeune membre
Messages : 37
Inscrit le : 20 janvier 2018
Version d'Excel : 2016

Message par Arno51 » 24 septembre 2018, 14:14

Bon j'ai trouvé une solution palliative :
Do Until débutCC = finCC                           'on boucle tant que la date finCC n'est pas saisi
        ActiveCell.Offset(0, 1).Activate
        débutCC = DateAdd("d", 1, débutCC)                  'on ajoute un jour à chaque boucle
        débutCC = Format(débutCC, "dd - mmm")
        ActiveCell.Value = débutCC     'on impose le même format de date aux valeurs concernées
la cellule active sera toujours égale à débutCC donc c'est bon et afin que la date soit bien indiquée dans le tableur Excel j'ai décomposé son écriture. Ce n'est surement pas la solution la plus jolie mais elle a le mérite de fonctionner..

merci quand même de s'être penché sur mon problème.
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message
  • Création de planning
    par Alex059 » 8 janvier 2016, 11:25 » dans Excel - VBA
    1 Réponses
    154 Vues
    Dernier message par oyobrans
    9 janvier 2016, 01:10
  • Création d'un planning
    par karynette75 » 2 mars 2017, 17:11 » dans Excel - VBA
    8 Réponses
    215 Vues
    Dernier message par karynette75
    18 mars 2017, 20:50
  • Création de planning
    par john0805 » 30 décembre 2015, 10:55 » dans Excel - VBA
    13 Réponses
    379 Vues
    Dernier message par john0805
    7 janvier 2016, 16:35
  • création planning
    par Maclad » 17 octobre 2017, 13:35 » dans Excel - VBA
    4 Réponses
    186 Vues
    Dernier message par MFerrand
    17 octobre 2017, 17:20
  • Création planning
    par chocochery » 13 octobre 2016, 09:47 » dans Excel - VBA
    5 Réponses
    287 Vues
    Dernier message par LouReeD
    18 octobre 2016, 21:29
  • Création d'un planning
    par mic35 » 4 mars 2019, 20:08 » dans Excel - VBA
    3 Réponses
    97 Vues
    Dernier message par mic35
    5 mars 2019, 17:46