problème boucle et msgbox

meldja

XLDnaute Impliqué
Bonjour,
J'ai une boucle sur "Private Sub Worksheet_Change(ByVal Target As Range)" qui doit afficher un msgbox à la fin mais elle l'affiche à chaque fois que la condition de la boucle est vraie.
Ensuite, j'ai une autre boucle sur "Private Sub Worksheet_SelectionChange(ByVal Target As Range)" qui affiche mon msgbox de la première procédure (Private Sub Worksheet_Change(ByVal Target As Range)).
Je ne comprends pas vraiment pourquoi.
En pièce jointe, mon fichier. La cellule cible de la première macro est la B1. Si on sélectionne "Sada" ou "Kawéni", il y a plusieurs établissements qui répondent au critère.
Merci si quelqu'un peut y jeter un coup d'oeil.
 

Pièces jointes

  • adressage ip2.xls
    62 KB · Affichages: 47
  • adressage ip2.xls
    62 KB · Affichages: 38
  • adressage ip2.xls
    62 KB · Affichages: 38

PMO2

XLDnaute Accro
Re : problème boucle et msgbox

Bonjour,

Essayez avec les instructions ajoutées qui sont signalées par ///
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Integer
On Error GoTo fin:
Application.ScreenUpdating = False
Application.EnableEvents = False    '///
If Target.Address = "$B$1" Then
Range("B45:C200").ClearContents

Rows("3:32").EntireRow.Hidden = True
For i = 3 To 32
    If Range("B" & i).Text Like "*" & Range("B1").Text & "*" Then
    Rows(i).EntireRow.Hidden = False
    End If
Next i
End If
Application.EnableEvents = True    '///
Application.ScreenUpdating = True
MsgBox "toto", vbInformation, "TOTO"
fin:
Exit Sub
End Sub
 

Paf

XLDnaute Barbatruc
Re : problème boucle et msgbox

Bonjour à tous

une autre solution consiste, dans Private Sub Worksheet_Change(ByVal Target As Range), à déplacer la ligne MsgBox "toto", ... juste avant le End If . le message ne sera déclenché que si la cellule B1 est modifiée.

A+
 

Discussions similaires

Réponses
1
Affichages
230