Comment désactiver macro par msgbox?
Résolu/Fermé
moshojo
Messages postés
21
Date d'inscription
mardi 2 août 2011
Statut
Membre
Dernière intervention
19 novembre 2013
-
27 oct. 2011 à 15:21
moshojo Messages postés 21 Date d'inscription mardi 2 août 2011 Statut Membre Dernière intervention 19 novembre 2013 - 28 oct. 2011 à 08:31
moshojo Messages postés 21 Date d'inscription mardi 2 août 2011 Statut Membre Dernière intervention 19 novembre 2013 - 28 oct. 2011 à 08:31
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
- Desactiver instagram - Guide
2 réponses
H_sergio
Messages postés
188
Date d'inscription
mardi 27 avril 2010
Statut
Membre
Dernière intervention
29 février 2016
7
27 oct. 2011 à 15:32
27 oct. 2011 à 15:32
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
moshojo
Messages postés
21
Date d'inscription
mardi 2 août 2011
Statut
Membre
Dernière intervention
19 novembre 2013
27 oct. 2011 à 16:02
27 oct. 2011 à 16:02
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
H_sergio
Messages postés
188
Date d'inscription
mardi 27 avril 2010
Statut
Membre
Dernière intervention
29 février 2016
7
27 oct. 2011 à 16:16
27 oct. 2011 à 16:16
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
moshojo
Messages postés
21
Date d'inscription
mardi 2 août 2011
Statut
Membre
Dernière intervention
19 novembre 2013
28 oct. 2011 à 08:31
28 oct. 2011 à 08:31
Salut,
Super ça marche nikel, j'avais essayé de mettre la condition If Range("A1").value="1" dedans mais je l'avais mise avant le Then.
Merci beaucoup !
Super ça marche nikel, j'avais essayé de mettre la condition If Range("A1").value="1" dedans mais je l'avais mise avant le Then.
Merci beaucoup !