XL 2013 Conditions d'exécution d'une macro sur mauvaise feuille

don_pets

XLDnaute Occasionnel
Ola touti,

Je bloque sur une activation de feuille qui commence à m'agacer prodigieusement !

Pour faire simple, j'ai une feuille index d'où j'escompte lancer mes différents codes, qui bien entendu se font sur différentes feuilles.

Seulement voilà, il y a un hic !

Je vais illustrer ce hic par exemple tout simple (cf pj).

Ma macro s’exécute à partir de l'onglet index, et but du jeu on cherche une valeur dans l'onglet "test", et si celle-ci est présente, si l'on veut, nous surlignons ou pas.

Or ce qui coince, c'est que j'ai beau activer ma feuille "test" et non "index" il ne recherche la condition que sur la feuille où se trouve mon fo**u code ...

Si quelqu'un il a une brillante idée, je prends.

pour info et pour ceux qui ne veulent pas ouvrir la pj, mon code :

Code:
nom = InputBox("Qu'cest qui?", "Azwiz")
surlignage = MsgBox("Tu surlignes ou quoi ?", vbYesNoCancel, "Tralala")
If surlignage = vbYes Then
Sheets("test").Activate
    For i = 2 To Range("A36553").End(xlUp).Row
    If Cells(i, 2).Value = nom Then
    Cells(i, 3).EntireRow.Interior.ColorIndex = 37
    End If
Next i
End If
 

Pièces jointes

  • test.xlsm
    20.9 KB · Affichages: 42
  • test.xlsm
    20.9 KB · Affichages: 35

vgendron

XLDnaute Barbatruc
Re : Conditions d'exécution d'une macro sur mauvaise feuille

Hello
peut etre est ce du au fait que ton code est dans le Private de la feuille Index.. donc. en dehors.. c'est inconnu au bataillon

solution que je viens de tester
sortir le code et le mettre dans un module
et à partir du private, appeler la macro

Code:
Private Sub CommandButton1_Click()
surligne
End Sub

et dans un module standard
Code:
Sub surligne()
nom = InputBox("Qu'cest qui?", "Azwiz")
surlignage = MsgBox("Tu surlignes ou quoi ?", vbYesNoCancel, "Tralala")
If surlignage = vbYes Then
Sheets("Test").Activate
    For i = 2 To Range("A36553").End(xlUp).Row
    If Cells(i, 2).Value = nom Then
    Cells(i, 3).EntireRow.Interior.ColorIndex = 37
    End If
Next i
End If
End Sub
 

vgendron

XLDnaute Barbatruc
Re : Conditions d'exécution d'une macro sur mauvaise feuille

ou alors

tu modifies ton code comme ceci
Code:
Private Sub CommandButton1_Click()

'surligne
nom = InputBox("Qu'cest qui?", "Azwiz")
surlignage = MsgBox("Tu surlignes ou quoi ?", vbYesNoCancel, "Tralala")
If surlignage = vbYes Then
Sheets("Test").Activate
    For i = 2 To ActiveSheet.Range("A36553").End(xlUp).Row
    If ActiveSheet.Cells(i, 2).Value = nom Then
    ActiveSheet.Cells(i, 3).EntireRow.Interior.ColorIndex = 37
    End If
Next i
End If


End Sub
 

vgendron

XLDnaute Barbatruc
Re : Conditions d'exécution d'une macro sur mauvaise feuille

ou meme.. sans avoir besoin d'activer la feuille
Code:
Private Sub CommandButton1_Click()

'surligne
nom = InputBox("Qu'cest qui?", "Azwiz")
surlignage = MsgBox("Tu surlignes ou quoi ?", vbYesNoCancel, "Tralala")
If surlignage = vbYes Then
    With Sheets("Test")
        'Sheets("Test").Activate
        For i = 2 To .Range("A36553").End(xlUp).Row
            If .Cells(i, 2).Value = nom Then
                .Cells(i, 3).EntireRow.Interior.ColorIndex = 37
            End If
        Next i
    End With
End If
End Sub
 

don_pets

XLDnaute Occasionnel
Re : Conditions d'exécution d'une macro sur mauvaise feuille

Yep,

en fait il ne manquait que la ligne With Sheets("Test") pour que ce code tienne la route !

Moralité, à trop avoir le nez dedans,il est parfois sage de demander un deuxième avis ! Proverbe JCVD
 

Statistiques des forums

Discussions
312 432
Messages
2 088 375
Membres
103 835
dernier inscrit
Jaco24