Imposer case vide

Bonsoir.

c'est encore le vieux crouton qui vous demande de l'aide, avant d'aller se coucher.

Je voudrais imposer une case vide (sans affichage ni valeur)

Sur le fichier joint pour les lundis. (j'ai pas fait pour le reste vu que ça merde)

si 1 en D2 on découvre les cellules en dessous.

Si 0 en D2 on grise les cellules.

si ni 1 ni 0 D2 en rouge + MSgbox

sauf que si on grise les cellules, les valeurs écrites restent et sont comptées dans la somme finale.

j'ai bien tenté

range("c3:d4").clearcontents

ce qui efface bien les données inscrites, mais génère une erruer sur une autre ligne.

qui est du style

range("q6").value=""

or je veux imposer une case vide sur cette case q6.

Tain je suis pas clair dsl j'arrive pas à bien expliquer.

je vous mets le fichier en PJ au cas ou vous seriez curieux de la chose.

Merci d'avance au courageux

Troph

Bonjour

Trophinou a écrit :

Sur le fichier joint

Trophinou a écrit :

je vous mets le fichier en PJ

2 fois que tu le dis et pas 1 seul fichier

Grrr quand je vous dis que j'ai besoin de sommeil...

en plus j'avais cliqué sur joindre le fichier....

edit

n'empêche là c'est pas de ma faute, mais j'y arrive pas... a uploader le bazar

fichier trop gros la limite est de 300 Ko le mien fait (sans plus de prétention) 440 Ko


voila la partie du code qui permet de jouer avec les case

'pour Lundi
If Range("D" & 2 + (i * n)).Value <> 1 And Range("D" & 2 + (i * n)).Value <> 0 Then
MsgBox "Choisir entre 1 et 0."
Range("D" & 2 + (i * n)).Interior.ColorIndex = 3
Exit Sub
Else
If Range("D" & 2 + (i * n)).Value = 1 Then
Range("D" & 2 + (i * n)).Interior.ColorIndex = 2
Range("C" & 3 + i * n, "D" & 4 + i * n).Interior.ColorIndex = 2
Range("D" & 5 + i * n).Interior.ColorIndex = 2
Range("C" & 5 + i * n).Interior.Color = RGB(235, 190, 237)
Range("C" & 6 + i * n).Interior.Color = RGB(195, 235, 198)
Range("D" & 6 + i * n).Interior.Color = RGB(233, 235, 179)
Range("C" & 7 + i * n, "D" & 8 + i * n).Interior.Color = RGB(250, 198, 195)
Range("C" & 3 + i * n, "D" & 8 + i * n).Font.ColorIndex = 1
Else
'gris
'Range("C" & 3 + i * n, "D" & 4 + i * n).ClearContents ' <= si je l'active il compte jusqu'à l'infini puis plante
Range("D" & 2 + (i * n)).Interior.ColorIndex = 2
Range("C" & 3 + i * n, "D" & 8 + i * n).Interior.Color = RGB(204, 200, 200)
Range("C" & 3 + i * n, "D" & 8 + i * n).Font.Color = RGB(204, 200, 200)
End If
End If

plantage sur cette ligne

Range("S" & 5 + i * n).Value = WorksheetFunction.CountIf(plage, "")

V = Range("S" & 5 + i * n).Value 'cases non remplies
T = Range("Q" & 2 + i * n).Value 'j travaillés
r = T - (7 - V)

'Dispatching
If r = 0 Or Range("Q" & 3 + i * n).Value = "H Faites" Then
       Range("Q" & 6 + i * n).Value = ""  ' PLANTAGE ICI
    Else
     Range("Q" & 6 + i * n).Value = (Range("Q" & 3 + i * n).Value / r)
End If

avec ce message

erreur -2147417848(800 10 108)'

la méthode value de l'objet range a échoué

Voila un nouveau fichier que tu reconnaitras surement banzai.

le code est sur les feuilles semaine1 2 3 4 5

++

Troph qui va faire reposer son cerveau...

Bonjour

Je crois que c'est l'histoire du serpent qui se mord la queue

Ton code dans Worksheet_Calculate est exécuté sans arrêt, chez moi c'est cette ligne qui plante

fin = Range("u5").Value
Range("A1").Value = Sheets("Preparation").Range("A1").Value
Range("B1") = Sheets("Preparation").Range("B1").Value

Mon avis : Il faut sortir ce code de cette procédure événementielle

Private Sub Worksheet_Calculate()

Cet évènement est déclenché lors du recalcul (validation ou mise à jour des formules) dans la feuille, uniquement

si l'option de calcul automatique n'est pas activée.

Bonjour

Ton code dans Worksheet_Calculate est exécuté sans arrêt, chez moi c'est cette ligne qui plante

    fin = Range("u5").Value
    Range("A1").Value = Sheets("Preparation").Range("A1").Value
    Range("B1") = Sheets("Preparation").Range("B1").Value

sur le fichier que je voulais vous envoyer, je les avait annulées...

Mais ce que je comprends pas du tout c'est que si j'efface mes données dans les cases c3 et d3 manuellement je n'ai aucun souci alors que si je le fais pas le code je plante....

voici un lien pour Dl le fichier test

++

Troph

Bonjour

Pas de plantage avec ce fichier

Je persiste (C'est ce que je ferai) Je placerai tout ce code dans un module standard

Banzai64 a écrit :

Mon avis : Il faut sortir ce code de cette procédure événementielle

ok mais ça perd tout son charme du calcul en direct qui était l'objectif de départ.

Bonjour

C'est toi qui décide

Mais ton code est relancé dès qu'un calcul est effectué dans la page : Est ce voulu ? et dans ce cas quel est l'intérêt ?

Dans la page tu y places des formules et la mise en forme de la page (couleurs,bordure etc ...) , pourquoi ne pas le faire une seule fois , tu ne changes pas la mise en forme en cours , tu ne changes plus les formules

Moi je ne peux continuer comme ça, je passe la main

je crée toute la page via le code, car le nombre d'employé n'est pas stable.

Bonjour

Quand tu crées le classeur le nombre d'employé ne va pas changer , exact ?

Et dans l'affirmative tu n'as pas besoin de ce code (même dans la négative on pourrait s'en passer - mais je n'ai pas trop étudier le code )

Il ne changera pas une fois créé, mais d'un mois sur l'autre il peut varier.

Dans ce cas tu préconises quoi?

un modèle de cases déjà complétées et mises en forme à copier n fois ?

Bonjour

Trophinou a écrit :

il ne changera pas une fois créé, mais d'un mois sur l'autre il peut varier.

Chaque mois tu crées un fichier ?

Il doit y avoir moyen de créer la/les pages sans passer par cette procédure

oui chaque mois un fichier est crée à partir d'un fichier de base... sur lequel est défini les employés travaillant ce mois là

Rechercher des sujets similaires à "imposer case vide"