macro qui ne s arrete pas

ktran

XLDnaute Junior
bonjour a tous j ai ecris un code macro (grace a vous tous, merci en passant).

le code doit comparer si la valeur dans la cellule de la colonne W est egal a la cellule de la colonne K et ce pour chaque ligne ou il y a des valeurs.

si oui, un msg apparait et la ou les lignes remplissant cette condition est surligne en bleu.

Probleme, lorsque la macro ne s arrete jamais (le sablier cours toujours, mais on ne le voit pas sur le jpg)

dans certain cas, cela surligne en bleu la 1ere ligne mais les autres ou bien pas du tout.

voici le code et les photos joint :

Sub Trigger_Check()
Dim plage As Range
Dim B As Integer
Dim T As Double

With Sheets("FW")
.Select
Set plage = .Range("K4:K" & .Range("K4").End(xlDown).Row)
End With
For Each Cell In plage
B = 4
T = Alert(Cells(B, 23))
If Cell = T Then
Range(Cells(B, 1), Cells(B, 25)).Interior.ColorIndex = 8
End If
A = 2
Next Cell
If A = 2 Then
MsgBox "Alert !! Trigger touched"
End If
End Sub
Function Alert(T As Double) As Double
Alert = T
End Function
 

Pièces jointes

  • error macro.JPG
    error macro.JPG
    43.7 KB · Affichages: 122
  • error macro 2.JPG
    error macro 2.JPG
    39.2 KB · Affichages: 105
  • error macro.JPG
    error macro.JPG
    43.7 KB · Affichages: 165
  • error macro.JPG
    error macro.JPG
    43.7 KB · Affichages: 171

Fo_rum

XLDnaute Accro
Re : macro qui ne s arrete pas

salut

à tester (avec ce que j'ai compris :
Code:
Sub Trigger_Check()
  Dim B As Integer
  For B = 4 To Range("K4").End(xlDown).Row
    Range(Cells(B, 1), Cells(B, 25)).Interior.ColorIndex _
        = IIf(Range("K" & B) = Range("W" & B), 33, xlNone)
  Next
  MsgBox "Alert !! Trigger touched"
End Sub
 

ktran

XLDnaute Junior
Re : macro qui ne s arrete pas

Bonjour Ktran,

essaie ceci:

à+


bonjour phlaurent,

ya un petit souci :

le surlignage doit juste se faire de la colonne A jusqua la colonne Y
et a partir de la ligne 4

je ne comprends pas aussi pourquoi quand je lance la macro cela m efface automatiquement, la ligne bleutee fonce (3), elle doit toujours reste bleutee.

il n ya aucune donnee dans la ligne 2 mais la macro la surligne quand meme ?

merci d avance
 

Pièces jointes

  • avant lancer macro.jpg
    avant lancer macro.jpg
    28.5 KB · Affichages: 80
  • apres lancer macro.jpg
    apres lancer macro.jpg
    26.4 KB · Affichages: 71

ktran

XLDnaute Junior
Re : macro qui ne s arrete pas

salut

à tester (avec ce que j'ai compris :
Code:
Sub Trigger_Check()
  Dim B As Integer
  For B = 4 To Range("K4").End(xlDown).Row
    Range(Cells(B, 1), Cells(B, 25)).Interior.ColorIndex _
        = IIf(Range("K" & B) = Range("W" & B), 33, xlNone)
  Next
  MsgBox "Alert !! Trigger touched"
End Sub


merci pour cette version du code, j en apprends encore. juste une petite question, c est quoi le IIf (if + autre chose ?)
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : macro qui ne s arrete pas

Re,

remplace
For i = 2 To Range("K65535").End(xlUp).Row
par
For i = 4 To Range("K65535").End(xlUp).Row

concernant le "Bouton", il s"agit d'une forme automatique (Shape) sur laquelle j'affecte la macro

à+
Philippe
 

Fo_rum

XLDnaute Accro
Re : macro qui ne s arrete pas

Re

Range(Cells(B, 1), Cells(B, 25)).Interior.ColorIndex _
= IIf(Range("K" & B) = Range("W" & B), 33, xlNone)
X=IIf(a,b,c) correspond à Si a alors X=b sinon X=c !

@phlaurent : quand tu écris
Code:
Sub Macro1()
  Dim message
  message = ""
  Application.ScreenUpdating = False
...
la variable est initialisée à la déclaration donc la seconde ligne la concernant est superflue.

Ici, j'aurais écrit :
Code:
Sub Macro1()
  Dim message as String 
  Application.ScreenUpdating = False
  ...
sachant que message est déjà une chaîne vide.
 

Discussions similaires

Réponses
1
Affichages
213
Réponses
0
Affichages
189
Réponses
21
Affichages
461

Statistiques des forums

Discussions
312 691
Messages
2 090 997
Membres
104 723
dernier inscrit
floch