XL 2010 Résolu par Roland : Je n'arrive pas à activer mes macros

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonjour à toutes et à tous,

J'ai un nouveau souci dans mon classeur (Grrrr ça marchait avant LOL)
Je n'arrive plus à faire en sortes que les macros soient actives ?????
J'ai fait un fichier test qui contient dans le code de la feuille1 les codes suivants :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Address <> "$I$3" Then Exit Sub
Application.EnableEvents = True
ActiveSheet.Unprotect Password:=""
If Len(Target) = 9 And IsNumeric(Target) Then
ActiveSheet.Unprotect Password:=""
[H1] = [E1] & [I3]
End If

If Not Intersect(Target, Range("i7:i20000")) Is Nothing Then 'heure appel
    Application.EnableEvents = True
    ActiveSheet.Unprotect Password:=""
    Target.Offset(0, 2) = Now()
    End If
If Not Intersect(Target, Range("l7:l20000")) Is Nothing Then
    Application.EnableEvents = True
    ActiveSheet.Unprotect Password:=""
    Target.Offset(0, -7) = Now()
    Target.Offset(0, 8) = ""
    Target.Offset(0, 9) = ""
    End If
If Not Intersect(Target, Range("u7:u20000")) Is Nothing Then
    Application.EnableEvents = True
    ActiveSheet.Unprotect Password:=""
    Target.Offset(0, -16) = Now()
    End If

ActiveSheet.Protect Password:="", DrawingObjects:=True, Contents:=True, Scenarios:=True
ActiveSheet.EnableSelection = xlNoRestrictions
End Sub

Pourtant, dans les codes j'ai mis des "Application.EnableEvents = True" partout
et je n'ai pas mis de "False".

Pourriez-vous me dire ce que j'ai zappé ?
Je joins le fichier test,
Grands Merci à vous toutes et tous,
Amicalement,
Lionel,,
 

Pièces jointes

  • TestCodeBloquant.xlsm
    25.8 KB · Affichages: 39

Roland_M

XLDnaute Barbatruc
re

perso quand je tape une valeur dans I3 car c'est bien de ça qu'il s'agit ?
je vois l'affichage des trois msgbox !
quand à ton code je sais pas trop ce qu'il en retourne, mais la macro se déclanche bien !

conclusion c'est du côté de ton code qu'il faut voir car il est incohérent !
on va revoir ça !
 
Dernière édition:

Roland_M

XLDnaute Barbatruc
re

d'abord explications

au début tu as ceci: If Target.Address <> "$I$3" Then Exit Sub
ce qui signifie que ça passe seulement si la cellule en cours est bien I3 !

donc If Not Intersect(Target, Range("l7:l20000")) Is Nothing Then
et If Not Intersect(Target, Range("u7:u20000")) Is Nothing Then Target.Offset(0, -16) = Now()

impossible que les conditions s'exécutent puique la cellule active(Target) c'est I3 !

conclusion c'est contradictoire !

EDIT: que veux tu faire exactement !?
pour que ça fonctionne, il faudrait qu'il y ai saisie depuis une colonne et qui soit sur une même ligne que celles de tes données !

Exemple ta colonne saisie !
 
Dernière édition:

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Effectivement, j'ai modifié le code en neutralisant le code "gênant" :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
'If Target.Address <> "$I$3" Then Exit Sub
'Application.EnableEvents = False
'ActiveSheet.Unprotect Password:=""
'If Len(Target) = 9 And IsNumeric(Target) Then [H1] = [E1] & [I3]

'Application.EnableEvents = False
ActiveSheet.Unprotect Password:=""
If Not Intersect(Target, Range("i7:i20000")) Is Nothing Then Target.Offset(0, 2) = Now()

If Not Intersect(Target, Range("l7:l20000")) Is Nothing Then
   Target.Offset(0, -7) = Now()
   Target.Offset(0, 8) = ""
   Target.Offset(0, 9) = ""
End If

If Not Intersect(Target, Range("u7:u20000")) Is Nothing Then Target.Offset(0, -16) = Now()

ActiveSheet.Protect Password:="", DrawingObjects:=True, Contents:=True, Scenarios:=True
ActiveSheet.EnableSelection = xlNoRestrictions
Application.EnableEvents = True

End Sub

Mais j'ai besoin de ce code :
Code:
If Target.Address <> "$I$3" Then Exit Sub
Application.EnableEvents = False
ActiveSheet.Unprotect Password:=""
If Len(Target) = 9 And IsNumeric(Target) Then [H1] = [E1] & [I3]

Comment je peux le mettre sans bloquer le reste ?
 

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
LOL, forcément que ç am'intéresse ..... j'y cours ;):po_O

Je reviens sur mon problème.
j'ai modifié comme suit :

Dans le code de la feuille, j'ai supprimé le code gênant (mais j'en ai besoin).
A la place, j'ai mis ce code :
Code:
If Not Intersect(Target, Range("I3:I3")) Is Nothing Then
Call Telephone
End If

Dans un module standard j'ai mis ce code :
Code:
Sub Telephone()
If (h1) <> "$I$3" Then Exit Sub
Application.EnableEvents = True
ActiveSheet.Unprotect Password:=""
If (h1) = 9 And IsNumeric() Then
ActiveSheet.Unprotect Password:=""
[h1] = [E1] & [I3]
End If
End Sub

Mes autres codes fonctionnent bien maintenant.
Mais, Mais, Mais lorsque je clique sur la cellule I3 et que j'y entre une information (un n°),
Le code dans la feuille n'agit pas et ça beugue.

Voir pièces jointes

Tu peux me corriger si je ne me suis pas trop mal expliqué ?
Je joins le classeur.
 

Pièces jointes

  • TestCodeBloquant.xlsm
    22.2 KB · Affichages: 32
  • Sans titre.jpg
    Sans titre.jpg
    105.3 KB · Affichages: 29

Discussions similaires

Statistiques des forums

Discussions
311 720
Messages
2 081 896
Membres
101 833
dernier inscrit
sandra25