Planning - MFC - Problématique avec les copier/coller

Bonsoir au Forum !

Avec votre aide, vos tutos, j'ai réussi à réaliser un planning qui correspond aux attentes d'un service.

Néanmoins les utilisateurs de ce planning sont des adeptes des copier-coller d'horaires.

Cette manipulation crée des problématiques de MFC (vous constaterez qu'il y a quelques règles pour le visuel des différentes absences)

Y a-t-il une solution à ce problème sachant que mes connaissances sont limitées ?

Vous remerciant de vos contributions.

LiLi

142020-service-1.xlsx (68.04 Ko)

Bonjour Lili8889,

Malheureusement pas le choix, utiliser VBA pour refaire les MFC

@+

Ouchhh

Je vais essayer de regarder des tutos pour VBA ! Je n'y connais rien

Merci de votre réponse.

Bonjour,

Eh oui, les MFC et les copier-coller ne font pas bon ménage.

Cependant, on peut copier (clic droit ou ctrl+C) puis soit :
- clic droit et coller valeurs uniquement
- ctrl + alt + v puis v pour coller les valeurs uniquement.

Ces 2 solutions permettent d'éviter les problèmes normalement.

Salut JoyeuxNoel

Va expliquer ça aux utilisateurs

Hello!

Ben oui, c'est mon boulot justement 😊

Quand on explique bien toutes les conséquences que les mauvaises actions des utilisateurs peuvent avoir... Soit l'utilisateur le comprend et ça se passe plutôt bien... Soit l'utilisateur ne le comprend pas et... j'ai l'avantage d'avoir une voix bien grave... Ça se passe plutôt bien 😁

J'ai essayé de leur expliquer également mais leur entêtement est plus fort apparemment.

Donc je vais tenter de leur apporter une solution #bienêtreautravail #simplification

Merci.

Bonjour Lili8889,

Pour revenir sur ce sujet qui n'est pas résolu

Est-il possible d'avoir un fichier original, avec les bonnes MFC et non des doublons ?

@+

Bonsoir,

Merci de vous intéresser à mon problème.

Je vous joins un nouveau fichier. Mon fichier est sûrement loin d'être parfait...je suis une débutante. Je ne sais pas si j'ai répondu à votre demande.

Le problème de copier coller se situe exclusivement avec les plages des MFC associés aux motifs d'absence (CP, HS, CV,...)

32021-planning1.xlsx (125.55 Ko)

Bonjour Lili8889,

Pour info trop de MFC tue les MFC dans votre cas, le mieux je pense, est d'utiliser un peu de VBA

Je n'ai pas touché à la feuille BASE, mais il faudra supprimer la quasi totalité des MFC

Ce que j'ai fait :

J'ai donc renommé votre feuille "JF" en "Params", feuille que vous pouvez masquer
Dans cette feuille j'ai créé un tableau des différents type d'absence, en essayant de reproduire les couleur et la police souhaitée (que vous pouvez modifier)

J'ai supprimé la quasi totalité des MFC de la feuille "MAI 21"

Ensuite dans ThisWorkbook, j'ai mis ce code, qui permet de vérifier si une modification est faite sur une feuille planning et si elle est au niveau de la colonne entre "Prise de service" et "Fin de service"

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
  ' Vérifier que la feuille modifier est bien un planning
  ' sinon on sort
  If Sh.Range("C1").Value <> Year(Date) Then Exit Sub
  ' Vérifier si modification d'unbe absence : Ligne 7 colonne de gauche = Prise de service
  ' Sinon on sort
  If InStr(1, Sh.Cells(7, Target.Column - 1), "service") = 0 Then Exit Sub
  ' Ok, appeler la sub de Mise en forme de la/des cellule(s)
  Call MeF_Cellule(Target)
End Sub

J'ai aussi créé un module, qui reproduit la mise en forme des cellules absence
Comment cela fonctionne :
1) Je vérifie si la saisie contient une valeur, sinon je réinitialise le format des 3 cellules de la ligne

2) Je recherche dans la plage nommée le type d'absence saisi, si il est trouvé, je reproduit le format de la cellule (couleur et police)

Sub MeF_Cellule(Target As Range)
  Dim Cel As Range
  Dim TypeFind As Range
  ' Pour chaque cellule modifiée
  For Each Cel In Target
    ' Si le contenu est vide
    If Target = "" Then
      ' Réinitialiser le format sur les 3 cellules
      With Target.Offset(0, -1).Resize(1, 3)
        .Font.Bold = False
        .Font.ColorIndex = xlAutomatic
        .Font.FontStyle = "Normal"
        .Font.Size = 11
        .Interior.Color = xlNone
      End With
    Else
      ' Chercher le tpye d'absence dans la plage nommée "TypeAbs" de la feuille Params
      Set TypeFind = [TypeAbs].Find(What:=Target.Value, LookIn:=xlValues, LookAt:=xlWhole, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False)
      ' Si cellule trouvée
      If Not TypeFind Is Nothing Then
        ' Appliquer le format sur les 3 cellules
        With Target.Offset(0, -1).Resize(1, 3)
          .Interior.Color = TypeFind.Interior.Color
          .Font.Bold = TypeFind.Font.Bold
          .Font.Color = TypeFind.Font.Color
          .Font.Size = TypeFind.Font.Size
          .Font.FontStyle = TypeFind.Font.FontStyle
        End With
      End If
    End If
  Next Cel
End Sub

Voilà, comme cela, plus de problème de MFC qui bougent avec les copier/coller

On peut peaufiner en ajoutant du code pour les valeurs des totaux ou autre (à voir)

Voici le fichier

@+

Bonsoir BrunoM45,

Jamais je n'aurai pu réaliser cela toute seule sans une formation poussée.

Merci beaucoup, je teste cela demain et créé mes nouvelles feuilles pour les mois suivants.

Quand vous parlez de code pour les totaux, vous parlez des MFC que j'avais créées pour le total d'heures journaliers < à 10h30 et le temps de repos de 11h ?

Encore merci pour votre aide. Je vous fais un retour demain ou vendredi.

Bonsoir,

Pour la formation poussée, on peut en parler, je suis organisme de formation, datadocké, tout ça tout ça ;)

Bonjour à vous,

Lorsque j'apporte des modifications à mon fichier, j'ai les messages suivants (selon les colonnes ou manipulations) :

"Erreur d’exécution 13 - Incompatibilité de type" ou " Erreur d'exécution 1004 - Erreur définie par l'application ou par l'objet"

Savez vous pourquoi ? Vous remerciant.

Bonjour Lili8889,

Savez vous pourquoi ?

Sans fichier... NON le code donné et testé fonctionne chez moi

Sinon, quelles genre de modifications ?

@+

Bonsoir Lili8889,

Hello @JoyeuxNoel et @BrunoM45,

Il y a quelques jours, j'ai reçu ce petit post qui pourrait vous intéresser. A adapter suivant les situations.

https://www.xlerateur.com/?s=R%C3%A9initialiser+les+mises+en+formes+conditionnelles+

Bonne soirée,

Cordialement.

Sans fichier... NON le code donné et testé fonctionne chez moi

Sinon, quelles genre de modifications ?

J'ai téléchargé votre fichier. J'autorise les macros à l'ouverture du fichier.

Lorsque j'essaie d'effacer plusieurs lignes de la colonne E dans laquelle j'avais renseigné des absences. J'ai le message "Erreur d’exécution 13.

Lorsque je veux modifier en A2 l'horaire s'affiche le message " Erreur d'exécution 1004"

Bonjour Lili8889,

Et bien voilà cela se précise, effectivement je n'ai pas fait tout ces tests, désolé

Il faut remplacer les codes par ceux présents dans la v2

Pour l'erreur 13, je traitais uniquement le "Target" (la cellule cible) au lieu de "Cel" toutes les cellules sélectionnées

Pour l'erreur 1004, je fait un test sur la colonne - 1 de la cellule cible, donc quand on modifie la colonne A et bien avant cette colonne c'est impossible

Voilà @+

Rechercher des sujets similaires à "planning mfc problematique copier coller"