XL 2016 Modifications cellules sous conditions

Lorenzini

XLDnaute Occasionnel
Bonjour,

Dans un tableau, sur une feuille censée être protégée, je souhaitais pouvoir laisser aux futurs utilisateurs, la possibilité de modifier certaines cellules (le détail est livré avec l'image en pièce jointe et le fichier).
C'est là toute la difficulté (pour moi)... de ne modifier QUE certaines cellules ; et pas d'autres ! ... et encore à la condition que la date en regard de la cellule à modifier soit strictement celle du jour et donc pas antérieure (sinon, pas de modifs possible).
Je ne sais pas si je suis clair ?
Mais enfin, voilà, je viens de gratter, par-çi, par-là, des infos depuis ce début d'après-midi pour parvenir à mes fins et j'avoue avoir puisé de l'inspiration (entre-autres) auprès de notre cher Patrick Toulon (Merci !) sur d'anciens posts mais rien à faire, je ne parviens pas à finaliser le résultat auquel je souhaiterais arriver, sans obtenir de messages d'erreurs...

Pouvez-vous m'aider ?
 

Pièces jointes

  • Fichier TEST.xlsm
    967.6 KB · Affichages: 4
  • QuestionsModifs.jpg
    QuestionsModifs.jpg
    391.7 KB · Affichages: 14
Solution
Bonjour,

Trop de bemol
C'est le texte que ne comprenez pas ou pourquoi je l'ai mis?

. j'ai pensé à un truc du genre
Oui, c'est peut-etre jouable mais il n'y a que Private Sub Worksheet_Change(ByVal Target As Range) de dispo
J'ai fais un essai, Excel se plante meme avec on error
Y a surement un solution que je ne vois pas pour le moment

Suite:
J'ai trouve une facon de faire pour toutes les entetes et les colonnes C/G non verrouillees
Le reste etant verrouille
j'ai fais les modif sur "mon" fichier, feuille CONSULTATION Worksheet_Change

Oneida

XLDnaute Impliqué
Bonjour,
tout se joue avec les protection cellules est feuille
Le code pour selection seulement date du jour est peut-etre pas le top, mais ca marche.
Seule bemol, si la cellule Date est vide, excel dit que non!!!!!
 

Pièces jointes

  • Fichier TEST.xlsm
    790.8 KB · Affichages: 3

Lorenzini

XLDnaute Occasionnel
Bonjour,
tout se joue avec les protection cellules est feuille
Le code pour selection seulement date du jour est peut-etre pas le top, mais ca marche.
Seule bemol, si la cellule Date est vide, excel dit que non!!!!!
Bonjour,

Je te remercie vivement pour ton aide ! 👍 😃
Ton code me va très bien et je t'avoue que je ne comprends pas trop le bémol... quelle est cette bizarrerie !?
J'ai pris ton code et y ai ajouté 2-3 lignes intéressantes que j'ai trouvé à gauche et à droite 😁 ; ce qui me donne pour le moment :

VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    
    On Error Resume Next
    
    Application.DisplayHeadings = False
    Application.CutCopyMode = False
    Application.CellDragAndDrop = False
    Application.CommandBars("Ply").Enabled = False
    
    If Selection.Rows.Count > 1 Then   'pour éviter sélection multiple/effacements/modifs
        Range("A4").Select
    Else
            
    End If
    
    Dim ddate As Date
    '*********************************************************************************************************************************
    'If Not Intersect(Range("B:B,H:H,I:I"), Target) Is Nothing And Target.Count = 1 Then  --> pas besoin car cellules verrouillées  :)
        
    '    Range("A4").Select                                                               --> pas besoin car cellules verrouillées  :)
            
    'End If                                                                               --> pas besoin car cellules verrouillées  :)
    '*********************************************************************************************************************************
    If Target.Columns.Count = Columns.Count Or Target.Rows.Count = Rows.Count Then
        Application.EnableEvents = False
        Application.Undo   ' --> mettre un "On Error Resume Next" pour éviter débogage...
        Application.EnableEvents = True
    End If
    '---------------------------------------------------------------------------------------------------------------------------------
    If Target.Row > 4 And Target.Row - 3 <= [t_BDD].ListObject.ListRows.Count And Cells(Target.Row, 8) <> "" And Target.Count = 1 Then
        ddate = Format(Cells(Target.Row, 8), "dd/mm/yyyy")
        If ddate < Date Then
            Range("A4").ClearContents
            Range("A4").Select
        End If
    End If
fin:
End Sub

Ne fais pas attention aux notes qui y sont pour que je m'en rappelle.
Ton code est nickel ; merci Oneida 😊 !

Pour terminer, aurais-tu une subtilité à me faire partager sur les en-têtes de colonnes ?
J'en cherche une... mmh... comment faire pour que l'on puisse avoir accès aux filtres y étant associés mais que les intitulés soient "ineffaçables" ou non modifiables si l'on clique dessus ?
Je ne sais pas... j'ai pensé à un truc du genre : dès qu'on clique sur la cellule, celle-ci se remplit automatiquement par son intitulé...? je ne sais pas ? Ou quand on quitte la cellule ?

Je cherche une astuce...

En tout les cas, Merci Oneida ! ;)
 

Pièces jointes

  • Fichier TEST_ONEIDA.xlsm
    773.4 KB · Affichages: 1

Oneida

XLDnaute Impliqué
Bonjour,

Trop de bemol
C'est le texte que ne comprenez pas ou pourquoi je l'ai mis?

. j'ai pensé à un truc du genre
Oui, c'est peut-etre jouable mais il n'y a que Private Sub Worksheet_Change(ByVal Target As Range) de dispo
J'ai fais un essai, Excel se plante meme avec on error
Y a surement un solution que je ne vois pas pour le moment

Suite:
J'ai trouve une facon de faire pour toutes les entetes et les colonnes C/G non verrouillees
Le reste etant verrouille
j'ai fais les modif sur "mon" fichier, feuille CONSULTATION Worksheet_Change
 

Pièces jointes

  • Fichier TEST.xlsm
    792.6 KB · Affichages: 2
Dernière édition:

Lorenzini

XLDnaute Occasionnel
Bonjour,

Trop de bemol
C'est le texte que ne comprenez pas ou pourquoi je l'ai mis?

. j'ai pensé à un truc du genre
Oui, c'est peut-etre jouable mais il n'y a que Private Sub Worksheet_Change(ByVal Target As Range) de dispo
J'ai fais un essai, Excel se plante meme avec on error
Y a surement un solution que je ne vois pas pour le moment

Suite:
J'ai trouve une facon de faire pour toutes les entetes et les colonnes C/G non verrouillees
Le reste etant verrouille
j'ai fais les modif sur "mon" fichier, feuille CONSULTATION Worksheet_Change
Bonjour,

Ce que je ne comprenais pas était le : "si la cellule Date est vide, excel dit que non!!!!!"
...
Pour ce qui est de ta solution pour les en-têtes, c'est parfait ! Voilà ce qu'il me fallait !
çà fonctionne et me convient parfaitement !
MERCI ! MERCI !! 👍 😁
 

Discussions similaires

Statistiques des forums

Discussions
312 215
Messages
2 086 324
Membres
103 179
dernier inscrit
BERSEB50