vdh_xavier
XLDnaute Junior
Bonjour à tous,
J'ai deux problèmes avec une macro qui s'active après un double-clique:
Merci à ceux qui voudront bien y jeter un coup d'oeil.
Voici le code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, Range("C3:C200")) Is Nothing Then
ActiveSheet.Unprotect ("xavier")
If MsgBox("Done?", vbYesNo, "Demande de confirmation") = vbYes Then
Target.EntireRow.Delete
Cancel = True
ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:=True, Password:="xavier"
Else: Cells(3, 1).Select
ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:=True, Password:="xavier"
End If
End If
If Not Intersect(Target, Range("B1:B2")) Is Nothing Then
ActiveSheet.Unprotect ("xavier")
Application.Run ("Tri_par_Rappels")
End If
End Sub
Pour la première partie du code (EntireRow.Delete), j'ai le message d'erreur suivant : La méthode 'Intersect' de l'objet '_Global' a échoué.
Pour la deuxième partie du code (lancement d'une macro), j'ai le message d'erreur suivant : Impossible d'exécuter la macro 'Tri_par_Rappels'. Il est possible qu'elle ne soit pas disponible dans ce classeur ou que toutes les macros soient désactivées.
Pourtant les macros sont activées et la macro est disponible dans le classeur. De plus, elle fonctionne quand je la lance manuellement.
Voici son code :
Sub Tri_par_Rappels()
Sheets("FB").Select
ActiveSheet.Unprotect ("xavier")
Range("B1:B200").Select
ActiveWorkbook.Worksheets("FB").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("FB").Sort.SortFields.Add Key:=Range( _
"B3:B200"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("FB").Sort
.SetRange Range("A1:C200")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("A3:C200").Select
Selection.Rows.AutoFit
Range("A3").Select
ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:=True, Password:="xavier"
End Sub
Je joins le fichier pour plus de facilité.
Merci d'avance
J'ai deux problèmes avec une macro qui s'active après un double-clique:
Merci à ceux qui voudront bien y jeter un coup d'oeil.
Voici le code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, Range("C3:C200")) Is Nothing Then
ActiveSheet.Unprotect ("xavier")
If MsgBox("Done?", vbYesNo, "Demande de confirmation") = vbYes Then
Target.EntireRow.Delete
Cancel = True
ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:=True, Password:="xavier"
Else: Cells(3, 1).Select
ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:=True, Password:="xavier"
End If
End If
If Not Intersect(Target, Range("B1:B2")) Is Nothing Then
ActiveSheet.Unprotect ("xavier")
Application.Run ("Tri_par_Rappels")
End If
End Sub
Pour la première partie du code (EntireRow.Delete), j'ai le message d'erreur suivant : La méthode 'Intersect' de l'objet '_Global' a échoué.
Pour la deuxième partie du code (lancement d'une macro), j'ai le message d'erreur suivant : Impossible d'exécuter la macro 'Tri_par_Rappels'. Il est possible qu'elle ne soit pas disponible dans ce classeur ou que toutes les macros soient désactivées.
Pourtant les macros sont activées et la macro est disponible dans le classeur. De plus, elle fonctionne quand je la lance manuellement.
Voici son code :
Sub Tri_par_Rappels()
Sheets("FB").Select
ActiveSheet.Unprotect ("xavier")
Range("B1:B200").Select
ActiveWorkbook.Worksheets("FB").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("FB").Sort.SortFields.Add Key:=Range( _
"B3:B200"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("FB").Sort
.SetRange Range("A1:C200")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("A3:C200").Select
Selection.Rows.AutoFit
Range("A3").Select
ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:=True, Password:="xavier"
End Sub
Je joins le fichier pour plus de facilité.
Merci d'avance