XL 2010 ERREUR 1004 DEFINIE PAR OBJET OU APPLICATION

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

laplayast

XLDnaute Occasionnel
Bonsoir,
Je veux protéger la feuille et suite à cela, j'ai l'erreur 1004. J'ai rajouté les lignes en rouge au code initial mais ce n'est pas suffisant. Merci de votre aide pour palier ce problème.

Activeworksheet.Unprotect
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not IsEmpty(celluleAvant) Then
If Not Intersect(Range(celluleAvant), [E5:LV30]) Is Nothing Then Calculate
End If
celluleAvant = Target.Address
If Not Application.Intersect(Target, Range("E5:LV30")) Is Nothing And Target.Count = 1 Then 'Adapter la plage
UserForm1.Show
End If
Calculate
Activeworksheet.Protect
End Sub
 
Bonjour laplayast,

Je ne pense pas que l'erreur vienne de la protection/déprotection

la ligne:
celluleAvant = Target.Address

devrait se trouver directement à la suite de:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

à+
Philippe
 
Bonjour à tous,
Salut Philippe et Meilleurs Vœux à toi et aux tiens.

Peux-tu essayer :

VB:
Option Explicit

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim CelluleAvant
CelluleAvant = Target.Address
'MsgBox CelluleAvant
If Not IsEmpty(CelluleAvant) Then
If Not Intersect(Range(CelluleAvant), [E5:LV30]) Is Nothing Then Calculate
End If
ActiveSheet.Unprotect
If Not Application.Intersect(Target, Range("E5:LV30")) Is Nothing And Target.Count = 1 Then 'Adapter la plage
MsgBox "Hello" 'UserForm1.Show
End If
Calculate
ActiveSheet.Protect
End Sub

A+ à tous

Edition : Salut Eric et Meilleurs Vœux itou
 
Dernière édition:
Bonjour à tous,

Peux-tu essayer avec ceci :

VB:
Option Explicit

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim CelluleAvant
    CelluleAvant = Target.Address
    If ActiveCell.Interior.ColorIndex <> xlNone Then Exit Sub
    If Not IsEmpty(CelluleAvant) Then
        If Not Intersect(Range(CelluleAvant), [D5:LV30]) Is Nothing Then Calculate
    End If
    ActiveSheet.Unprotect
    If Not Application.Intersect(Target, Range("D5:LV30")) Is Nothing And Target.Count = 1 Then    'Adapter la plage
        UserForm1.Show
    End If
    Calculate
    ActiveSheet.Protect
End Sub

A+ à tous
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
9
Affichages
404
Réponses
4
Affichages
406
Réponses
14
Affichages
330
Retour