Macro planning qui fonctionne à moitié Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
Z
Zebulonzzz
Jeune membre
Jeune membre
Messages : 37
Inscrit le : 20 janvier 2016
Version d'Excel : 97FR

Message par Zebulonzzz » 1 février 2016, 23:16

Bonsoir

j'ai trouvé un fichier super avec une macro qui fonctionne à moitié et que je voudrai faire fonctionner sur 2 points


1er probleme
Sur l'ongler "BD" quand on clique sur "Créer BD avec plan" la macro lit la page "sem1" affiche les périodes de congés pour chaque personne puis passe à l'onglet "sem2"

Et quand on clique sur la macro "Créer Plan avec BD" (cette macro qui fonctionne à moitié", elle ne recopie pas les périodes sur l'onglet "sem2" sauf si on triche que l'on fait partir la période de "sem1" et "sem2"

ex Dupond 24/01/2013 25/07/2013 Evf (ca va marcher avec "Créer Plan avec BD")

mais avec "Créer BD avec plan" on obtiendra 2 lignes
Dupond 24/01/2013 30/06/2013 Evf
Dupond 01/07/2013 25/07/2013 Evf

sauf que la macro "Créer Plan avec BD" n'arrivera pas à recopier la 2ème ligne qui disparaitra si on utilise ensuite l'autre macro vu que cette période ne figurera plus sur le plan....

J'espère avoir réussi à expliquer le probleme et que quelqu'un pourra m'aider.

2eme probléme
Je voudrai aussi recopier uniquement lintérieur des cellules + la couleur de la police d'écriture (et pas la cellule complete afin de ne pas casser la mise en forme conditionnelle de la page du plan de la feuille ou je compte utiliser ce code)

merci d'avance aux spécialistes d'excel
PlanninPanoramiqueBD_Jeff.xls
(231 Kio) Téléchargé 20 fois
Avatar du membre
Banzai64
Fanatique d'Excel
Fanatique d'Excel
Messages : 16'690
Appréciations reçues : 5
Inscrit le : 21 novembre 2010
Version d'Excel : 2003 FR (learning 2010 - 2013)

Message par Banzai64 » 1 février 2016, 23:59

Bonsoir

Modifies ta macro Sub CreePlan()
    If Month(début) < 7 Then Set p = Sheets("sem1") Else Set p = Sheets("sem2")
    Set temp = p.[A:A].Find(what:=Nom[surligner], LookIn:=xlValues[/surligner])
    If Not temp Is Nothing Then
Pour le 2ème problème, je ne voie pas la gêne, tu as une MEFC et celle ci n'est pas perturbée
Z
Zebulonzzz
Jeune membre
Jeune membre
Messages : 37
Inscrit le : 20 janvier 2016
Version d'Excel : 97FR

Message par Zebulonzzz » 2 février 2016, 08:21

Merci Banzai, J'ai modifié selon tes instructions cela marche parfaitement, cependant 2 questions :

Question 1
la macro "creer plan selon bd" ne va pas recopier les dates du mois de janvier 2017 par exemple (que j'ai rajouté à mon planning 2016 (car les congés de noel comportent des dates a janvier 2017), y'a t'il moyen de modifier cela afin de visualiser les périodes de congés de noel prise par salarié ? ou dois je utiliser un autre classeur 2017 ?

Question 2
pour la MEFC de Sub CreePlanIndividue par exemple, il avait dejà fallut la modifier pour qu'elle ne recopie pas seulement (et "n'abime" pas la mise en forme conditionnelle du tableau) en copiant aussi la couleur de police :
           planning.Range("b3").Offset(md, jd + d).Interior.ColorIndex = _
             Sheets("fériés").[Couleurs].Find(typeConges, LookAt:=xlWhole).Interior.ColorIndex
           planning.Range("b3").Offset(md, jd + d) = typeConges
          Else
            planning.Range("b3").Offset(md + 1, jd + d - nbj).Interior.ColorIndex = _
             Sheets("fériés").[Couleurs].Find(typeConges, LookAt:=xlWhole).Interior.ColorIndex
            planning.Range("b3").Offset(md + 1, jd + d - nbj) = typeConges
à ça
planning.Range("b3").Offset(md, jd + d).Interior.ColorIndex = _
             Sheets("fériés").[Couleurs].Find(typeConges, LookAt:=xlWhole).Interior.ColorIndex
           planning.Range("b3").Offset(md, jd + d) = typeConges
          Else
            planning.Range("b3").Offset(md + 1, jd + d - nbj).Interior.ColorIndex = _
             Sheets("fériés").[Couleurs].Find(typeConges, LookAt:=xlWhole).Font.Color
            planning.Range("b3").Offset(md + 1, jd + d - nbj) = typeConges

comment arriver à modifier celle sur la macro Sub CreePlan() ?

merci
Avatar du membre
Banzai64
Fanatique d'Excel
Fanatique d'Excel
Messages : 16'690
Appréciations reçues : 5
Inscrit le : 21 novembre 2010
Version d'Excel : 2003 FR (learning 2010 - 2013)

Message par Banzai64 » 2 février 2016, 13:23

Bonjour

:noyade:
Tu parles de 2016 et 2017, dans le fichier que j'ai c'est au maximum 2015

Fournis le dernier fichier en cours, en y expliquant clairement ce que tu as et ce que tu veux
Z
Zebulonzzz
Jeune membre
Jeune membre
Messages : 37
Inscrit le : 20 janvier 2016
Version d'Excel : 97FR

Message par Zebulonzzz » 2 février 2016, 22:54

Bonsoir Banzai, merci de m'aider c'est vraiment sympa de ta part ::D

voici un fichier où les 2 problème apparaissent

- prob avec la MEFC
- prob de non recopie des valeurs 2017 avec la macro Congés_CreePlan()

http://www.cours83infirmier.fr/EXCEL/Ne ... %C3%A9.xls (785ko)

quelles sont tes suggestions ?
Avatar du membre
Banzai64
Fanatique d'Excel
Fanatique d'Excel
Messages : 16'690
Appréciations reçues : 5
Inscrit le : 21 novembre 2010
Version d'Excel : 2003 FR (learning 2010 - 2013)

Message par Banzai64 » 3 février 2016, 00:23

Bonjour

J'ai mis un pansement pour cette blessure (modifications repérées)
La personne qui à fait ce programme ne pensait jouer que sur 1 année et toi sur 2 ans, cela complique un peu

A vérifier
Zebulonzzz Planning V001.zip
(295.92 Kio) Téléchargé 18 fois
Z
Zebulonzzz
Jeune membre
Jeune membre
Messages : 37
Inscrit le : 20 janvier 2016
Version d'Excel : 97FR

Message par Zebulonzzz » 3 février 2016, 05:55

Bonjour Banzai :D

un grand merci car tu as résolu le probleme de MEFC (ouf car ça cassait mes cellules !)

et j'arrive à mettre des dates en 2017 qui sont gérés.

Cependant un bug persiste, je te le soumets si tu y faire quelque chose aussi ce serait super,

quand une période de congés débute en 2016 et se poursuit en 2017, la recopie ne se fait pas...

exemple : le week-end de la semaine 52 comporte un samedi 31 décembre 2016 et un dimanche 1 janvier 2017, et comme les week-end, de facon systématique, l'activité sera le même sur les 2 jours (RH, CA, ou etc...)
Soignant 33 31/12/2016 01/01/2017 RH 2
cette ligne ne sera pas géré ensuite par la macro "Créer Plan avec BD" qui va bugger.....
Avatar du membre
Banzai64
Fanatique d'Excel
Fanatique d'Excel
Messages : 16'690
Appréciations reçues : 5
Inscrit le : 21 novembre 2010
Version d'Excel : 2003 FR (learning 2010 - 2013)

Message par Banzai64 » 3 février 2016, 13:51

Bonjour

Modifie la modification
        ' Début modif le 03/02/2016
        If Year(début[surligner]+ i[/surligner]) > Range("An") Then
          Set p = Sheets("Congés2")
        End If
        ' Fin modif le 03/02/2016
Z
Zebulonzzz
Jeune membre
Jeune membre
Messages : 37
Inscrit le : 20 janvier 2016
Version d'Excel : 97FR

Message par Zebulonzzz » 3 février 2016, 15:50

Bonjour Banzai, ca marche super bien,

un grand merci pour ton support incontournable pour un novice comme moi, et du temps passé à m'aider c'est cool de ta part !

En même temps j'essaye de comprendre les modifs que tu fais, elles sont simple (pour toi) et efficace (pour moi) ;;)

respect ::B-
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message