Usine à gaz
XLDnaute Barbatruc
Bonjour à tous,
Tjrs aussi nul en VBA mais quand même, je "frémis" grâce à vous, je fais à nouveau un appel à l'aide.
J'ai dans mon classeur une macro reçu de Bernard (BBB38) à qui j’adresse encore un grand merci.
Cette macro me met automatiquement les lignes en rouges quand je saisi des sommes qui, additionnées, donne un résultat supérieur à 0.5 dans les colonnes choisies :
Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
ActiveSheet.Unprotect
Dim i As Integer
' à modifier suivant le nbre de lignes du tableau
For i = 4 To 43
If Cells(i, 300) > 0.5 Then 'n°Col
Range("KC" & i & ":KN" & i).Font.Color = -16776961 'couleur souhaitée
Selection.Font.Bold = True
Else
Range("KC" & i & ":KN" & i).Font.ColorIndex = xlAutomatic 'couleur si NON
End If
If Cells(i, 288) > 0.5 Then 'n°Col
Range("JQ" & i & ":KB" & i).Font.Color = -16776961 'couleur souhaitée
Selection.Font.Bold = True
Else
Range("JQ" & i & ":KB" & i).Font.ColorIndex = xlAutomatic 'couleur si NON
End If
If Cells(i, 276) > 0.5 Then 'n°Col
Range("JE" & i & ":JP" & i).Font.Color = -16776961 'couleur souhaitée
Selection.Font.Bold = True
Else
Range("JE" & i & ":JP" & i).Font.ColorIndex = xlAutomatic 'couleur si NON
End If
etc..... End sub
Mais voilà, le revers de la chose est que cette macro qui déprotège la feuille concernée et qui la protège à la fin me pose un problème d’exécution des autres macros.
Connaissez-vous une solution pour la désactiver pendant l’exécution des autres macros ?
J’ai cherché sur le net et j’ai trouvé le code suivant. Malgré mon niveau supérieur en VBA, je ne comprends pas tout !!! :
Code Visual Basic :
Sub rafraichir()
Application.EnableEvents = False
'ici ton code
Application.EnableEvents = True
End Sub
Je mets quel code ('ici ton code) ?
Je pense que je dois mettre cette macro dans le module général et l’activer (False) avec Call rafraichir
Et pareil pour la désactiver ?
Un grand merci pour votre aide,
Amicalement,
Lionel,
Tjrs aussi nul en VBA mais quand même, je "frémis" grâce à vous, je fais à nouveau un appel à l'aide.
J'ai dans mon classeur une macro reçu de Bernard (BBB38) à qui j’adresse encore un grand merci.
Cette macro me met automatiquement les lignes en rouges quand je saisi des sommes qui, additionnées, donne un résultat supérieur à 0.5 dans les colonnes choisies :
Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
ActiveSheet.Unprotect
Dim i As Integer
' à modifier suivant le nbre de lignes du tableau
For i = 4 To 43
If Cells(i, 300) > 0.5 Then 'n°Col
Range("KC" & i & ":KN" & i).Font.Color = -16776961 'couleur souhaitée
Selection.Font.Bold = True
Else
Range("KC" & i & ":KN" & i).Font.ColorIndex = xlAutomatic 'couleur si NON
End If
If Cells(i, 288) > 0.5 Then 'n°Col
Range("JQ" & i & ":KB" & i).Font.Color = -16776961 'couleur souhaitée
Selection.Font.Bold = True
Else
Range("JQ" & i & ":KB" & i).Font.ColorIndex = xlAutomatic 'couleur si NON
End If
If Cells(i, 276) > 0.5 Then 'n°Col
Range("JE" & i & ":JP" & i).Font.Color = -16776961 'couleur souhaitée
Selection.Font.Bold = True
Else
Range("JE" & i & ":JP" & i).Font.ColorIndex = xlAutomatic 'couleur si NON
End If
etc..... End sub
Mais voilà, le revers de la chose est que cette macro qui déprotège la feuille concernée et qui la protège à la fin me pose un problème d’exécution des autres macros.
Connaissez-vous une solution pour la désactiver pendant l’exécution des autres macros ?
J’ai cherché sur le net et j’ai trouvé le code suivant. Malgré mon niveau supérieur en VBA, je ne comprends pas tout !!! :
Code Visual Basic :
Sub rafraichir()
Application.EnableEvents = False
'ici ton code
Application.EnableEvents = True
End Sub
Je mets quel code ('ici ton code) ?
Je pense que je dois mettre cette macro dans le module général et l’activer (False) avec Call rafraichir
Et pareil pour la désactiver ?
Un grand merci pour votre aide,
Amicalement,
Lionel,