Executer macro sur cellule protégée et figer cellule

Bonjour,

Je suis bloqué sur la réalisation d'un tableau de bord excel assez simple.

Comme évoqué dans le titre, j'ai fait une macro pour qu'une date se renseignee en auto dès qu'une cellule est complétée

(la Date en cellule "I" se met en auto par rapport à la cellule "J")

Par contre, j'ai souhaité verrouiller les cellules en bleu dans le fichier

Pour info:

En bleu => les cellules à compléter automatiquement et vérrouilléees

Je rencontre 3 problémes :

1=> Je n'arrive pas à effecteur une 2eme macro pour que la date de la cellule "N" se remplisse automatiquement lorsque la cellule L est complétée

2=> J'aimerais que les cellules "I" et "N" (dates) soient figées et que l'on ne puissent plus les modifier mais si les cellules "J" et "L" sont remodifiées

3 => Enfin ma mcro ne fonctionne plus dès que je verrouille les colonnes en bleue

mon mot de passe est nicolas sur le fichier

Si vous pouvez m'apporter des réponses, je suis preneur !

Merci par avance pour vos retours

9exemple.xlsm (19.64 Ko)

Bonjour,

Comme première étape, déverrouille la "Feuil1".

Dans VBE, va sur "ThisWorkbook" et colle cette macro ...

Private Sub Workbook_Open()
    Worksheets("Feuil1").Protect Password:="nicolas", UserInterFaceOnly:=True
End Sub

Ceci verrouille la feuille pour les utilisateurs, mais pas pour les macros

Enregistre, ferme le fichier, rouvre-le > teste la colonne J

ric

Merci, ca fonctionne impec !

Du coup tu aurais une idée pour les 2 autres points :

1=> Je n'arrive pas à effecteur une 2eme macro pour que la date de la cellule "N" se remplisse automatiquement lorsque la cellule L est complétée

2=> J'aimerais que les cellules "I" et "N" (dates) soient figées et que l'on ne puissent plus les modifier mais si les cellules "J" et "L" sont remodifiées

Et merci encore

Bonjour,

2=> J'aimerais que les cellules "I" et "N" (dates) soient figées et que l'on ne puisse plus les modifier, mais si les cellules "J" et "L" sont remodifiées

Dans le cas de la colonne i, les cellules sont maintenant verrouillées et les dates ne bougeront plus... sauf si l'on modifie à nouveau la cellule adjacente de la colonne J.

Pour les colonnes M et N, le verrouillage est désactivé. Tu n'as qu'à le réactiver (il faut déverrouiller la feuille avant de procéder).

Pour le no 1, je reviens.

ric

Bonjour,

No 1 ...

un essai ... Pour l'instant, il n'y a pas validation du contenu de L avant d'écrire la date en N.

J est la colonne 10 et L est la colonne 12.

Remplace ta macro par ...

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Range("J:J", "L:L")) Is Nothing Then
    If Target.Column = 10 Then Target.Offset(0, -1) = Date
    If Target.Column = 12 Then Target.Offset(0, 2) = Date
End If
End Sub

ric

C'est parfait ça fonctionne

Et si je peux abuser car je me suis mal exprimer concernant ma demande sur la cellule figée.

les colonnes "I" et "N" sont alimentées automatiquement par la macro et apparaissent en cellule figée.

Mais j'aimerai (si c'est possible ) que la date enregistrée dans chacune des cellules des colonnes "I" et "N" ne puissent plus être modifiées même si les cellules "J" et "L" sont à nouveau modifiées.

Même s'il faut rajouter une colonne pour figer ces dates(qui doit correspondre à la date de la première modification), ce n'est pas grave.

J'espère avoir été clair

Merci encore pour ton aide

Bonjour,

L'on approche ...

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Range("J:J", "L:L")) Is Nothing Then
    If Target.Column = 10 And Target.Offset(0, -1) = "" Then Target.Offset(0, -1) =  Date
    If Target.Column = 12 And Target.Offset(0, 2) = "" Then Target.Offset(0, 2) = Date
End If
End Sub

ric

Tout est ok

Et du coup c'est quoi la différence entre cette macro et que j'ai copié juste avant?

Bonjour,

Le code testait sur qu'elle colonne la cellule sélectionnée (target) est située, si c'était bon, il écrivait la date.

Le nouveau code test encore sur quelle colonne la cellule sélectionnée est située et si c'est bon, il effectue un 2e test (and) si la cible (où écrire la date) est vide.

Si les 2 critères sont bons, la date est écrite, sinon, le code passe droit.

ric

Ok

Donc c’est parfait pour moi

Du coup Il faut que je vérifie demain si sur une cellule ou une date est déjà renseignée, qu’aucune mise à jour ne s’effectue si jamais je modifie la cellule source

Merci encore pour t’aide

Et je te tiens au courant du coup

Bonjour,

Nul besoin d'attendre à demain ...

Remplace Date par "coucou" entre guillemets ...

Tu vas voir si la date est remplacée par coucou.

ric

Impeccable

Tout fonctionne

Merci

Rechercher des sujets similaires à "executer macro protegee figer"