Comment désactiver macro par msgbox?
Résolu
moshojo
Messages postés
21
Date d'inscription
Statut
Membre
Dernière intervention
-
moshojo Messages postés 21 Date d'inscription Statut Membre Dernière intervention -
moshojo Messages postés 21 Date d'inscription Statut Membre Dernière intervention -
A voir également:
- Comment désactiver macro par msgbox?
- Desactiver rond bleu whatsapp - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Comment désactiver le mode sécurisé - Guide
- Desactiver uac - Guide
- Désactiver compte facebook - Guide
2 réponses
bonjour;
juste une idée ; peut être en faisant apparaitre un formulaire Userform à l'ouverture
celui ci comprend deux cases à cocher Checkbox ,lorsque celle affichant avoir déjà utiliser le fichier est cochée , une cellule du fichier a pouvaleur 1 par ex
lorsque les macros se lancent par la suite , si elles voient la cellule =1 elles s'arrètent
je ne sais pas si je suis clair
juste une idée ; peut être en faisant apparaitre un formulaire Userform à l'ouverture
celui ci comprend deux cases à cocher Checkbox ,lorsque celle affichant avoir déjà utiliser le fichier est cochée , une cellule du fichier a pouvaleur 1 par ex
lorsque les macros se lancent par la suite , si elles voient la cellule =1 elles s'arrètent
je ne sais pas si je suis clair
Tout d'abord merci pour la rapidité de la réponse!
Je vois ce que tu veux dire, c'est tout à fait clair! et ça marche tres bien.
Par contre, pour les macro écrites dans Private Sub Worksheet_SelectionChange(ByVal Target As Range) ou autre, la condition if cellule=1 then exit sub est valable tout ce qui se trouve dedans
Par exemple dans cette macro : quand on selectionne une cellule, le texte de la ligne saffiche en rouge, et si la cellule se trouve dans certaine colonne, une msgbox apparait. Je vousdrait pour "désactiver la partie sur les msg box mais pas celle sur le format. mais j'en demande peut etre beaucoup ^^
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Application.Intersect(Target, Range("A4:GM13")) Is Nothing Then 'la mcacro est valable pour la plage A4:GM13
Static AncAdress As Long
If Target.Count > 1 Then Exit Sub 'si plus d'une cellule sélectionnée, la macro s'arrete
If AncAdress <> 0 Then 'remettre en normal
Rows(AncAdress).Interior.ColorIndex = xlNone
Rows(AncAdress).Font.ColorIndex = 0
If ActiveCell.Row >= 4 And ActiveCell.Row <= 800 And ActiveCell.Column >= 133 And ActiveCell.Column <= 139 Then MsgBox ("NE PAS MODIFIER !")
If ActiveCell.Row >= 4 And ActiveCell.Row <= 800 And ActiveCell.Column = 151 Then MsgBox ("NE PAS MODIFIER !")
If ActiveCell.Row >= 4 And ActiveCell.Row <= 800 And ActiveCell.Column = 162 Then MsgBox ("NE PAS MODIFIER !")
If ActiveCell.Row >= 4 And ActiveCell.Row <= 800 And ActiveCell.Column = 175 Then MsgBox ("NE PAS MODIFIER !")
If ActiveCell.Row >= 4 And ActiveCell.Row <= 800 And ActiveCell.Column = 188 Then MsgBox ("NE PAS MODIFIER !")
End If
Target.EntireRow.Font.ColorIndex = 3
Target.EntireRow.Interior.ColorIndex = 2
Target.EntireRow.Interior.Pattern = xlSolid
AncAdress = Target.Row
End If
End Sub
Je vois ce que tu veux dire, c'est tout à fait clair! et ça marche tres bien.
Par contre, pour les macro écrites dans Private Sub Worksheet_SelectionChange(ByVal Target As Range) ou autre, la condition if cellule=1 then exit sub est valable tout ce qui se trouve dedans
Par exemple dans cette macro : quand on selectionne une cellule, le texte de la ligne saffiche en rouge, et si la cellule se trouve dans certaine colonne, une msgbox apparait. Je vousdrait pour "désactiver la partie sur les msg box mais pas celle sur le format. mais j'en demande peut etre beaucoup ^^
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Application.Intersect(Target, Range("A4:GM13")) Is Nothing Then 'la mcacro est valable pour la plage A4:GM13
Static AncAdress As Long
If Target.Count > 1 Then Exit Sub 'si plus d'une cellule sélectionnée, la macro s'arrete
If AncAdress <> 0 Then 'remettre en normal
Rows(AncAdress).Interior.ColorIndex = xlNone
Rows(AncAdress).Font.ColorIndex = 0
If ActiveCell.Row >= 4 And ActiveCell.Row <= 800 And ActiveCell.Column >= 133 And ActiveCell.Column <= 139 Then MsgBox ("NE PAS MODIFIER !")
If ActiveCell.Row >= 4 And ActiveCell.Row <= 800 And ActiveCell.Column = 151 Then MsgBox ("NE PAS MODIFIER !")
If ActiveCell.Row >= 4 And ActiveCell.Row <= 800 And ActiveCell.Column = 162 Then MsgBox ("NE PAS MODIFIER !")
If ActiveCell.Row >= 4 And ActiveCell.Row <= 800 And ActiveCell.Column = 175 Then MsgBox ("NE PAS MODIFIER !")
If ActiveCell.Row >= 4 And ActiveCell.Row <= 800 And ActiveCell.Column = 188 Then MsgBox ("NE PAS MODIFIER !")
End If
Target.EntireRow.Font.ColorIndex = 3
Target.EntireRow.Interior.ColorIndex = 2
Target.EntireRow.Interior.Pattern = xlSolid
AncAdress = Target.Row
End If
End Sub
pas facile mais avant chaque message, on insère
If ActiveCell.Row >= 4 And ActiveCell.Row <= 800 And ActiveCell.Column = 151 Then
If Range("A1").value="1" then '( la cellule choisie qui affiche 1 ou rien )
GoTo suite1
else
MsgBox ("NE PAS MODIFIER !")
suite1 :
end if
end if
bien sur , suite1 s'appellera suite2 au suivant etc
If ActiveCell.Row >= 4 And ActiveCell.Row <= 800 And ActiveCell.Column = 151 Then
If Range("A1").value="1" then '( la cellule choisie qui affiche 1 ou rien )
GoTo suite1
else
MsgBox ("NE PAS MODIFIER !")
suite1 :
end if
end if
bien sur , suite1 s'appellera suite2 au suivant etc