Erreur 13 incompatibilité de type

Bonjour à tous,

Tout d'abord merci par avance pour le temps que vous allez me consacrer.

Je suis complètement débutant dans le domaine du vba, et on m'a donné un tableur à réaliser avec quelques conditions.

En gros ce tableur se décompose en série de 3 colonnes sur 10 lignes.

Dans la première colonne "prise de poste", je voudrais que lorsqu'on rentre un horaire, une boîte de dialogue s'ouvre avec choix "oui/non"

Si la réponse est oui, je voudrais que dans la colonne "Pause" apparaisse l'horaire de "prise de poste" + 4 heures.

Si le réponse est non, pas d'action.

Concernant la colonne "début contrôle", je voudrais que lorsque l'on rentre un horaire, s'affiche automatiquement en colonne "pause" l'horaire de "début de contrôle" + 2h30

Et enfin, je souhaiterais pouvoir modifier à posteriori la colonne "pause" de façon manuelle avec la condition suivante:

- Coloriser la case de la colonne "pause" en orange si l'horaire rentré est supérieur à "prise de poste" + 4h ou à "début de contrôle" + 2h30.

Bien évidemment je voudrais faire ces opérations sur les 10 lignes indépendamment des autres, ainsi que sur chaque série de 3 colonnes et ceux pour chaque feuillet.

Je vous joins le tableur que j'ai créé avec les macros, j'espère que ca pourra vous aider à comprendre.

Pour le moment, je bloque sur une erreur 13 d' incompatibilité de type.

J'espère que j'ai été le plus clair possible, et je vous remercie encore.

15classeur1prat.xlsm (45.12 Ko)

Salut,

Dans ton fichier, j'ai choisi la feuille ''Lundi'' et j'ai entré l'horaire ''qq" en B18. Ca déclenche une macro événementielle et lorsque je réponds ''Oui'' à la question "Le rôle est-il CDQ?" ça bloque sur la ligne ci-dessous :

capture

Ta variable i vaut alors 18 (car qq a été inscrit à la ligne 18) et ta ligne de code tente de place dans la cellule C18 de la feuille active [.cells(i,3)] le résultat du calcul [.cells(i,1) + 1 /6], soit AAAAAA + 1 / 6. Comme il est impossible d'additionner 1 à AAAAAA puis d'en diviser le résultat par 6, ça coince.

Amicalement.

Merci yvouille pour ta réponse.

Comme je l'ai dit, je suis débutant en vba. Quelles seraient selon toi les lignes de codes qui me permettraient d'obtenir ce que je veux?

Bonjour toutes et tous

coucou Yvouilles

.Cells(i, 3) = Cells(i, 2) + 1 / 6
Sub PrisePoste(i&)

With ActiveSheet
    If .Cells(i, 1) <> "" And .Cells(i, 3) = "" Then
        If MsgBox("Le rôle est-il CDQ ?", vbYesNo) = vbYes Then
                    .Cells(i, 3) = Cells(i, 2) + 1 / 6
                    .Cells(i, 3).Font.Bold = True
                    .Cells(i, 3).Font.ColorIndex = 3

        End If
    End If

End With
End Sub

.Cells(i, 3) = Cells(i, 2) + 1 / 6 ' cela fonctionne


Bonjour andré13 et merci pour ta réponse,

Effectivement, cela fonctionne... Mais uniquement sur la première "série" de 3 colonnes. Je voudrais que ces macros soient applicables sur tout le tableau.

Merci encore pour votre aide.

@ Lamouche

A ma manière, j’ai voulu te faire comprendre que ta demande était peu claire. Lorsque je dis que j’ai placé l’horaire ‘’qq’’ en B18, j’essaie de te faire saisir que tu aurais pu donner un exemple de la donnée que tu entres effectivement dans cette cellule.

Puis André est venu reprendre ce fil, mais apparemment il n’a pas tout compris non plus à ton problème, puisque tu dis que ce n’est pas vraiment ce que tu veux et ce n’est pas certain qu’il va suivre ton sujet.

Je te propose alors que tu indiques clairement ce qui fonctionne déjà, ce tu souhaites en plus, par rapport à ton fichier de base ou à ton fichier contenant les nouvelles propositions (à nous fournir alors).

@ André : si tu préfères continuer à suivre ce sujet, je laisse volontiers la main et irai m’occuper d’autres demandes restées sans réponse.

Amicalement.

Bonjour toutes et tous et bon weekend

Coucou Yvouille

désolé, je n'ai pas trop bien compris la demande de Lamouche

@ Yvouille tu peux continuer le fil pas de soucis -;) , je ne vois pas comment résoudre ce problème

crdlt,

André

Bonjour à tous,

Déjà merci à vous de continuer à vouloir m'aider. Je suis désolé de n'avoir pas été assez clair et je vais essayer de préciser mes demandes.

En colonne A j'aurai le nom des personnels concernés par ce tableau. Ensuite, viens des "blocs" de 3 colonnes (BCD puis EFG pui HIJ etc...)dans lesquels devront être entrés des horaires, et qui devront fonctionner de la même façon.

Voici comment je voudrais qu'ils fonctionnent:

En colonne B "prise de poste" :

- Lors de la saisie d'un horaire, une fenêtre de dialogue apparait posant une question avec oui/non en réponse.

- Si la réponse est oui, la colonne D "Pause" devra automatiquement affiché l'horaire entré en B + 4h en gras.

- Si la réponse est non, pas d'action

En colonne C "Début de contrôle":

- Lors de la saisie d'un horaire, la colonne D "Pause" devra affiché l'horaire entré en C + 2h30 en gras.

- Si l'horaire entré en C est strictement inférieur à l'horaire entré en B +15 min, il faut que la cellule concernée en C se remplisse en orange avec apparition d'une boite de dialogue avec bouton OK uniquement. ( Je remplirai le texte de la boite de dialogue plus tard)

En colonne D "Pause":

J'aimerai pouvoir changer à posteriori les horaires générés automatiquement par la macro et y apporter de nouvelles conditions:

- Si l'horaire de D est strictement supérieur à l'horaire de B + 4h, il faut que la cellule concernée en D se remplisse en rouge avec apparition d'une boite de dialogue avec bouton OK uniquement.

- Si l'horaire de D est strictement supérieur à l'horaire de C + 2h 30, il faut que la cellule concernée en D se remplisse en rouge avec apparition d'une boite de dialogue avec bouton OK uniquement.

- Si aucune de ces conditions n'est remplie, il faut juste que l'horaire n'apparaisse plus en gras.

La difficulté que j'ai rencontré est de faire fonctionner cette macro de façon indépendante sans qu'elle n'intervienne en boucle dans une autre ligne ( donc un autre personnel).

N'hésitez pas à me dire si je n'ai pas été assez clair ou quel point vous ne comprenez pas.

Encore merci Yvouilles et andré

Salut Lamouche,

Je ne suis pas allé au bout de tes explications car il y a déjà assez de problèmes à discuter avec la première partie seulement.

Dans le fichier ci-joint, j’ai placé une macro sous ThisWorkbook qui vaut pour toutes les feuilles. Si dans ton fichier réel tu as plus de feuilles, il faudra éventuellement corriger ce code en conséquence.

Si tu inscrits autre chose qu’un horaire (de 0:00 à 23:59 ou de 0 à 0.9999) dans les colonnes ‘’Prise de poste’’ ou ‘’Début de contrôle’’, un message refuse ta saisie.

Si tu corriges des données déjà saisies dans les colonnes ‘’Prise de poste’’ ou ‘’Début de contrôle’’, ça ne tient pas compte de ta logique. S’il fallait en tenir compte, il faudra me l’indiquer. Par exemple si je saisis 12:00 en B18, ça inscrit 16:00 en D18. Si je saisi en plus 8:00 en C18, D18 est corrigé à 10:30. Faudrait-il alors effacer automatiquement ce qui est inscrit en B18 ? Si B18 n’est pas effacé mais est corrigé en 18:00, D18 prend la valeur 22:00 et C18 reste à 8:00. Faudrait-il alors effacer C18 ?

Selon ce que j’ai compris de tes souhaits, tu peux bien entendu corriger manuellement les données inscrites dans les colonnes ‘’Pause’’.

Ton fichier est un peu bizarre car il a par exemple des mises en forme spéciales. J’ai mis un moment à me rendre compte que lorsque je saisis une donnée en B21 ou C21 que ma macro fonctionne bien – c’est-à-dire qu’une saisie est effectuée en D21, mais que comme le texte est écrit en blanc, il est invisible !!!!

Je ne me suis pas trop occupé de tes autres mises en forme (conditionnelles ou non) déjà en place. A toi de voir s’il faut corriger quelque chose ou non.

Pour la suite, réexplique tes attentes plus clairement, notamment en donnant des exemples précis comme ci-dessus (du genre : si j’inscris 10:00 en X33, je voudrais que la cellule Z222 prenne la valeur 23:59 car ceci-cela).

A te relire.

5classeur-v2.xlsm (49.12 Ko)

Bonjour Yvouille,

Tout d'abord pardonne moi pour mon absence due aux fêtes.

Merci pour le travail que tu as fait sur le classeur et je vais essayer de répondre point par point à tes questions.

On se rapproche de ce que j'ai besoin et je vois enfin le bout du tunnel.

Tout d'abord :

"Dans le fichier ci-joint, j’ai placé une macro sous ThisWorkbook qui vaut pour toutes les feuilles. Si dans ton fichier réel tu as plus de feuilles, il faudra éventuellement corriger ce code en conséquence."

Effectivement j'aurai plusieurs feuilles sur mon fichier. J'imagine donc que je devrais copier/coller la macro pour toutes les feuilles.

"Si tu inscrits autre chose qu’un horaire (de 0:00 à 23:59 ou de 0 à 0.9999) dans les colonnes ‘’Prise de poste’’ ou ‘’Début de contrôle’’, un message refuse ta saisie."

Je n'ai pas forcément besoin de ce type d'avertissement tu peux le retirer.

"Si tu corriges des données déjà saisies dans les colonnes ‘’Prise de poste’’ ou ‘’Début de contrôle’’, ça ne tient pas compte de ta logique. S’il fallait en tenir compte, il faudra me l’indiquer. Par exemple si je saisis 12:00 en B18, ça inscrit 16:00 en D18. Si je saisi en plus 8:00 en C18, D18 est corrigé à 10:30. Faudrait-il alors effacer automatiquement ce qui est inscrit en B18 ? Si B18 n’est pas effacé mais est corrigé en 18:00, D18 prend la valeur 22:00 et C18 reste à 8:00. Faudrait-il alors effacer C18 ?"

Alors, lorsque tu entres une heure dans la colonne "Prise de poste", tu as un message qui te demande ton rôle. Si la réponse est oui, la colonne "Début de contrôle" doit et devra rester vide. Si la réponse est non, c'est l'heure inscrite a posteriori dans la colonne début de contrôle qui conditionnera l'heure inscrite automatiquement dans la colonne Pause. De ce que j'ai vu dans le classeur V2, la logique que je veux est respectée.

"Selon ce que j’ai compris de tes souhaits, tu peux bien entendu corriger manuellement les données inscrites dans les colonnes ‘’Pause’’."

Oui effectivement, il faudra que je puisse corriger les données inscrites dans la colonne "pause" avec quelques conditions supplémentaires :

-Si l'heure de le colonne "pause" est supérieure à heure de "prise de poste" +4 h et colonne "début de contrôle" vide alors, un message apparait en disant "vacation maximale dépassée". En plus de ca, la cellule de la colonne pause se rempliera en rouge.

-Si l'heure de le colonne "pause" est supérieure à heure de "début de contrôle" + 2h30, un message apparait en disant "vacation maximale dépassée." En plus de ca, la cellule de la colonne pause se rempliera en rouge.

"Ton fichier est un peu bizarre car il a par exemple des mises en forme spéciales. J’ai mis un moment à me rendre compte que lorsque je saisis une donnée en B21 ou C21 que ma macro fonctionne bien – c’est-à-dire qu’une saisie est effectuée en D21, mais que comme le texte est écrit en blanc, il est invisible !!!!"

Désolé pour ça j'ai tout simplement oublié de virer ces mises en forme spéciales et ces données.

La seule chose qui resterai à paramétrer ensuite serait la suivante:

Si l'heure de C18 est strictement inférieur à B18 + 15 minutes alors, un message apparait disant "SAS non respecté" et la cellule C18 se remplit en orange.

Cette logique sera la même pour toute les colonnes "prise de poste" et "début de contrôle" et devra fonctionner de façon indépendante.

J'espère que mes explications seront suffisantes cette fois. Merci encore pour le temps que tu me consacres.

Une dernière chose. Lorsque je supprime toutes les heures sur le classeur V2, j'ai une erreur d'incompatibilité de type sur la ligne suivante :

If Not (IsNumeric(Target)) Or Target = "" Or Target < 0 Or Target > 0.99999 Then

Merci encore.

Salut,

Pour le texte ci-dessous, j'utilise les balises ''Citations'' (au-dessus le l'espace dans lequel j'écris mon texte) afin de faire ressortir tes textes.

Tu m'indiques :

Effectivement j'aurai plusieurs feuilles sur mon fichier. J'imagine donc que je devrais copier/coller la macro pour toutes les feuilles.

La réponse est non. On laisse le code qui vaut pour toutes les feuilles de la semaine dans ThisWorkbook (de manière à ne pas devoir le copier-coller 7 fois et de devoir corriger 7 codes par la suite si nécessaire) et on corrigera ce code en conséquence des autres feuilles à ne pas traiter, comme je te l'ai indiqué dans mon message précédent. Il faut toutefois que j'ai ton fichier réel sous la main afin de savoir s'il faut mieux écrire un bout de code du genre : ''Traiter toutes les feuilles du fichier sauf les feuilles X et Y'' ou - si le nombre de feuilles à ne pas traiter est important, écrire un bout de code du genre ''Traiter les feuilles Lundi, Mardi, etc.''. Une autre solution serait de trouver dans les feuilles à traiter un texte bien précis que ne se trouve pas dans les feuilles à ne pas traiter. A nouveau, il faudrait ton fichier réel à dispositon afin de trouver la meilleure solution.

Je n'ai pas forcément besoin de ce type d'avertissement tu peux le retirer.

Cet avertissement ne mange pas de foin et est invisible si la saisie est correcte. Pourquoi ne pas le laisser au cas où tu te tordrais une fois le doigt lors de la saisie ?

-Si l'heure de le colonne "pause" est supérieure à heure de "début de contrôle" + 2h30, un message apparait en disant "vacation maximale dépassée." En plus de ca, la cellule de la colonne pause se rempliera en rouge.

Je n'ai pas compris si tu m'indiques une fonction qui existe déjà ou si c'est quelque chose que tu souhaites voir mettre en place. Si ça existe déjà, peux-tu me donner un exemple précis ? Par exemple : ''Si tu indiques 25:64 en C1000 de la feuille ''X'', tu as un message qui apparait''.

En règle générale, ne donne pas plus d'explications que nécessaire sur ce qui fonctionne déjà. Ca fait des tas de lignes à étudier afin de savoir si tu indiques que quelque chose va bien ou si tu indiques un problème à résoudre encore. Par exemple si je t'indique que tu peux corriger manuellement tout ce que tu veux, inutile de me dire qu'effectivement tu veux pouvoir corriger manuellement ceci ou cela XXXXXX

La seule chose qui resterai à paramétrer ensuite serait la suivante:

Si l'heure de C18 est strictement inférieur à B18 + 15 minutes alors, un message apparait disant "SAS non respecté" et la cellule C18 se remplit en orange.

Cette logique sera la même pour toute les colonnes "prise de poste" et "début de contrôle" et devra fonctionner de façon indépendante.

Je m'occupe de tout pleins de fichiers différents et lorsque je ne travaille plus sur un fichier tel que le tien pour un bout de temps, je dois m'y replonger à fond. Donc moins tu attends entre deux réponses, mieux c'est, mais plus tu es précis dans tes explications mieux c'est également. Pour des deux demandes ci-dessus, peux-tu me donner des exemples de saisie (indique les cellules et les valeurs entrées) qui provoquerait ou non des situations où le message souhaité doit apparaître ou non
?

Une dernière chose. Lorsque je supprime toutes les heures sur le classeur V2, j'ai une erreur d'incompatibilité de type sur la ligne suivante :

C'est la seule chose que j'ai corrigée pour l'instant dans le fichier ci-joint.

Cordialement.

6classeur-v3.xlsm (60.23 Ko)

Bonjour Yvouille,

Merci encore de t'occuper de moi. Je pense que nous touchons au but, il reste selon moi des choses mineures à coder.

La réponse est non. On laisse le code qui vaut pour toutes les feuilles de la semaine dans ThisWorkbook (de manière à ne pas devoir le copier-coller 7 fois et de devoir corriger 7 codes par la suite si nécessaire) et on corrigera ce code en conséquence des autres feuilles à ne pas traiter, comme je te l'ai indiqué dans mon message précédent. Il faut toutefois que j'ai ton fichier réel sous la main afin de savoir s'il faut mieux écrire un bout de code du genre : ''Traiter toutes les feuilles du fichier sauf les feuilles X et Y'' ou - si le nombre de feuilles à ne pas traiter est important, écrire un bout de code du genre ''Traiter les feuilles Lundi, Mardi, etc.''. Une autre solution serait de trouver dans les feuilles à traiter un texte bien précis que ne se trouve pas dans les feuilles à ne pas traiter. A nouveau, il faudrait ton fichier réel à dispositon afin de trouver la meilleure solution.

Je te joins le fichier complet en fin de post. Il y a 7 feuillets correspondant aux jours de la semaine où la macro devra pouvoir s'appliquer et un feuillet "paramètres" où aucune macro n'est nécessaire.

Cet avertissement ne mange pas de foin et est invisible si la saisie est correcte. Pourquoi ne pas le laisser au cas où tu te tordrais une fois le doigt lors de la saisie ?

Ok ca marche !

Je n'ai pas compris si tu m'indiques une fonction qui existe déjà ou si c'est quelque chose que tu souhaites voir mettre en place. Si ça existe déjà, peux-tu me donner un exemple précis ? Par exemple : ''Si tu indiques 25:64 en C1000 de la feuille ''X'', tu as un message qui apparait''.

La fonction n'existe pas encore. Je t'ai expliqué la logique que je voudrais dans mon précédent post, si elle n'est pas clair pour toi, n'hésite pas à me le dire.

Je m'occupe de tout pleins de fichiers différents et lorsque je ne travaille plus sur un fichier tel que le tien pour un bout de temps, je dois m'y replonger à fond. Donc moins tu attends entre deux réponses, mieux c'est, mais plus tu es précis dans tes explications mieux c'est également. Pour des deux demandes ci-dessus, peux-tu me donner des exemples de saisie (indique les cellules et les valeurs entrées) qui provoquerait ou non des situations où le message souhaité doit apparaître ou non?

Je vais te donner un exemple en prenant colonne B = "Prise de poste", colonne C = "Début de contrôle", et colonne D = Pause

Première condition

On entre en B18 08:00. Le message demande le rôle. Réponse "Non". Rien ne se passe et c'est normal. On entre ensuite en C18 un nouvel horaire. Si cet horaire est strictement inférieur à B18 + 00:15, un message devra apparaitre disant " SAS non respecté" avec ok uniquement, et C18 devra se remplir en orange. Pour l'exemple le message et le remplissage devront se déclencher entre 08:00 et 08:14. Si l'horaire rentré est supérieur ou égal à 08:15, pas de mise en forme ou de message particulier.

Deuxième condition

On entre en B18 08:00. Le message demande le rôle. Réponse "Oui". D18 affiche automatiquement 12:00. Lors de la modification de D18 à posteriori, si l'horaire rentré est strictement supérieur à B18 + 04:00, un message devra apparaitre disant " Vacation dépassée" avec ok uniquement, et D18 devra se remplir en rouge. Pour l'exemple le message et le remplissage devront se déclencher pour un horaire au delà de 12:00. Si l'horaire rentré est inférieur ou égal à 12:00, pas de mise en forme ou de message particulier.

Troisième et dernière condition

On entre en B18 08:00. Le message demande le rôle. Réponse "Non". Rien ne se passe et c'est normal. On entre ensuite en C18 08:20. D18 affiche automatiquement 10:50. Lors de la modification de D18 à posteriori, si l'horaire rentré est strictement supérieur à B18 + 02:30, un message devra apparaitre disant " Vacation dépassée" avec ok uniquement, et D18 devra se remplir en rouge. Pour l'exemple le message et le remplissage devront se déclencher pour un horaire au delà de 10:50. Si l'horaire rentré est inférieur ou égal à 10:50, pas de mise en forme ou de message particulier.

Voilà, merci pour la correction que tu as apporté pour l'erreur de compatibilité.

J'ai nommé le nouveau classeur joint "classeur réel" j'y ai intégré ta macro dans "this workbook"

Merci énormément.

Lamouche

9classeur-reel.xlsm (93.95 Ko)

Excuse moi j'ai fait une coquille dans l'énoncé de cette condition :

Troisième et dernière condition

On entre en B18 08:00. Le message demande le rôle. Réponse "Non". Rien ne se passe et c'est normal. On entre ensuite en C18 08:20. D18 affiche automatiquement 10:50. Lors de la modification de D18 à posteriori, si l'horaire rentré est strictement supérieur à B18 + 02:30, un message devra apparaitre disant " Vacation dépassée" avec ok uniquement, et D18 devra se remplir en rouge. Pour l'exemple le message et le remplissage devront se déclencher pour un horaire au delà de 10:50. Si l'horaire rentré est inférieur ou égal à 10:50, pas de mise en forme ou de message particulier.

Le bon énoncé est celui la:

Troisième et dernière condition

On entre en B18 08:00. Le message demande le rôle. Réponse "Non". Rien ne se passe et c'est normal. On entre ensuite en C18 08:20. D18 affiche automatiquement 10:50. Lors de la modification de D18 à posteriori, si l'horaire rentré est strictement supérieur à C18 + 02:30, un message devra apparaitre disant " Vacation dépassée" avec ok uniquement, et D18 devra se remplir en rouge. Pour l'exemple le message et le remplissage devront se déclencher pour un horaire au delà de 10:50. Si l'horaire rentré est inférieur ou égal à 10:50, pas de mise en forme ou de message particulier.

Salut,

Je pense avoir compris certains de tes besoins, j'en ai laissé d'autres de côté.

Dans le fichier ci-joint, si tu modifies la feuille ''Paramètres'', rien ne se passe. De même, j'ai placé un bout de code afin que les modifications des lignes 1 à 17 et 29 à 1'048'576 soient ignorées.

J'ai compris que si les colonnes ''Début de contrôle'' étaient renseignées, je devais me baser sur leur chiffres pour les modifications des colonnes ''Pause'' alors que si ces colonnes ''Début de contrôle'' sont vides, je devais me baser sur les chiffres des colonnes ''Prise de poste''.

Du point de vue des calculs et des messages d'erreur lors du contrôle au moment des modifications manuelles, ça devrait pas mal jouer. Il y a juste une chose que je pourrais te proposer, c'est que lorsqu'un message d'erreur indique un problème, on efface en plus la donnée incorrecte. A toi de voir.

Cependant, je ne me suis pas trop intéressé aux mises en forme. Tu as effectivement des mises en forme déjà en place et je n'ai pas compris si tu souhaitais un complément de mise en forme ou un remplacement de celles-ci. Mais il ne faut pas non plus confondre "Mise en forme" selon Excel et coloriage de certaines cellules pas macros. Donc si tu pouvais traiter toi-même ces ''Mises en forme'' tant mieux, sinon il faudra voir comment je peux colorier (et dé-colorier) les cellules que tu souhaites. Ca risque de compliquer un peu.

A te relire.

Bonsoir Yvouille,

Tu fais vraiment de l'excellent travail et je t'en remercie.

Quelques petites corrections cependant :

Dans le fichier ci-joint, si tu modifies la feuille ''Paramètres'', rien ne se passe.

C'est vrai, je l'ai créé au cas ou, et elle me sert également pour une macro qui fonctionne avec le bouton "valider" mais qui n'est pas dans le fichier que je t'ai envoyé. (Et oui j' ai quand même réussi à en faire une)

De même, j'ai placé un bout de code afin que les modifications des lignes 1 à 17 et 29 à 1'048'576 soient ignorées.

Super! De même as tu rentré un code pour que les modifications ne concernent que les colonnes de B à O?

J'ai compris que si les colonnes ''Début de contrôle'' étaient renseignées, je devais me baser sur leur chiffres pour les modifications des colonnes ''Pause'' alors que si ces colonnes ''Début de contrôle'' sont vides, je devais me baser sur les chiffres des colonnes ''Prise de poste''.

C'est exactement ça! Je pense que le plus dur pour toi n'a pas forcément été le codage mais bien de me comprendre... Encore désolé.

Il y a juste une chose que je pourrais te proposer, c'est que lorsqu'un message d'erreur indique un problème, on efface en plus la donnée incorrecte. A toi de voir.

Non, il ne faut pas effacer la donnée. Il faut qu'il y ait le message et le remplissage, mais que la donnée reste.

Cependant, je ne me suis pas trop intéressé aux mises en forme. Tu as effectivement des mises en forme déjà en place et je n'ai pas compris si tu souhaitais un complément de mise en forme ou un remplacement de celles-ci. Mais il ne faut pas non plus confondre "Mise en forme" selon Excel et coloriage de certaines cellules pas macros. Donc si tu pouvais traiter toi-même ces ''Mises en forme'' tant mieux, sinon il faudra voir comment je peux colorier (et dé-colorier) les cellules que tu souhaites. Ca risque de compliquer un peu.

Les mises en forme existantes étaient des tests que j'avais fait sur le classeur mais n'étaient pas concluantes. Le top serait de pouvoir les intégrer dans la macro avec les 3 conditions que j'ai énoncées dans mes posts précédents.

J'ai également relevé un petit dysfonctionnement :

Lorsque l'on rempli un horaire en B18, que l'on répond "non" et que l'on rempli un horaire inférieur à B18 + 00:15, le message se déclenche bien, mais il n'affiche plus l'horaire automatiquement en D18 qui devrait être C18 + 02:30.

Encore merci.

Lamouche

J’ai effacé les MFC de la plage B18:028, mais uniquement de la feuille ‘’Lundi’’. Si les résultats sur cette feuille te conviennent, efface également les MFC de cette plage des autres feuilles de la semaine.

Une macro événementielle ‘’SheetChange’’ a été placée dans ThisWorkbook et est supposée agir de manière identique sur plusieurs feuilles lors de la modification (Change) de n’importe laquelle. Afin que cette macro n’ait pas d’influence sur certaines feuilles, tu peux placer une instruction telle que celle-ci :

If ActiveSheet.Name = "Paramètres" ……………………………………………………..Then Exit Sub

Dans ton fichier, cette limitation au niveau de la feuille "Paramètres" a été combinée avec d’autres limitations.

Quand j’ai dit : ‘’Dans le fichier ci-joint, si tu modifies la feuille ''Paramètres'', rien ne se passe’’, je sous-entendais : ‘’Rien ne se passe au niveau de cette macro’’.

Des instructions telles que celle-ci-dessous font que l’on choisi les colonnes concernées par tels ou tels passages de la macro. Ces instructions étaient déjà en place dans les versions précédentes.

If Target.Column = 2 Or Target.Column = 5 Or Target.Column = 8 Or …. etc……….

Dans cet exemple, les colonnes 2, 5, 8, etc. concerne les colonnes ‘’Prise de poste’’.

Cependant, une modification au niveau d’une ligne au-dessus ou au-dessous de ton tableau aurait été prise en compte et on aurait probablement eu de mauvaises surprises. Il semble que ni toi, ni moi n’avons constaté de problème jusqu’à maintenant, mais la limitation des lignes concernées évite des problèmes futurs.

J’ai commencé le coloriage des cellules selon ce que j’ai compris de tes explications. J’ai choisi des couleurs un peu plus tendres que le rouge et l’orange. Il est bien entendu que si tu souhaites des couleurs plus agressives, je répondrai à ta demande

Pour l’instant, ces couleurs ne sont effacées que si tu sélectionnes plusieurs cellules et que tu les effaces par ‘’Delete’’.

J’ai également tenté de corriger ce que tu as indiqué comme un disfonctionnement (mais c’est plutôt un manque d’explications ).

Bien à toi.

Je ne sais pas si c'est ton problème qui m'empêche de dormir, mais là je suis réveillé depuis un moment et réfléchis à tes colorations depuis lors

Dans le fichier ci-joint, les colorations se mettent en place comme dans la version 2, mais elles s'enlèvent si tu corriges la saisie ou si tu vides les cellules.

A toi de tester.

Je ne te l'ai pas encore dit, mais je trouve bizarre que ton dernier groupe de colonnes N et O n'ait pas de colonne ''Pause'' en colonne P. Si tu devais corriger cela - soit en enlevant les colonnes N et O, soit en ajoutant la colonne P, il faudrait me le dire afin que je corrige le code.

Bonjour Yvouille!

J'en pleurerai presque tellement c'est beau! Merci énormément!

En regardant ton code, je le comprends dans sa globalité même si quelques détails m'échappent encore. Grace à toi j'ai progressé et merci encore.

J’ai effacé les MFC de la plage B18:028, mais uniquement de la feuille ‘’Lundi’’. Si les résultats sur cette feuille te conviennent, efface également les MFC de cette plage des autres feuilles de la semaine.

Super, avec ton code je n'en ai plus besoin, je les ai effacé sur la totalité des feuilles.

Une macro événementielle ‘’SheetChange’’ a été placée dans ThisWorkbook et est supposée agir de manière identique sur plusieurs feuilles lors de la modification (Change) de n’importe laquelle. Afin que cette macro n’ait pas d’influence sur certaines feuilles, tu peux placer une instruction telle que celle-ci :

If ActiveSheet.Name = "Paramètres" ……………………………………………………..Then Exit Sub

Dans ton fichier, cette limitation au niveau de la feuille "Paramètres" a été combinée avec d’autres limitations.

Super merci.

Dans le fichier ci-joint, les colorations se mettent en place comme dans la version 2, mais elles s'enlèvent si tu corriges la saisie ou si tu vides les cellules.

C'est excellent!

Je ne te l'ai pas encore dit, mais je trouve bizarre que ton dernier groupe de colonnes N et O n'ait pas de colonne ''Pause'' en colonne P. Si tu devais corriger cela - soit en enlevant les colonnes N et O, soit en ajoutant la colonne P, il faudrait me le dire afin que je corrige le code.

C'est normal! On ne peut pas finir ou commencer la journée par une pause. CQFD.

J'ai clôturé ce post, j'ai adoré collaboré avec toi, je te remercie encore pour tout le travail que tu as fait pour moi.

Je te souhaite une bonne continuation et peut être que nos chemins se recroiseront un jour.

Bonne journée à toi!

Rechercher des sujets similaires à "erreur incompatibilite type"