code vba message box en fonction de deux cellules

laura38

XLDnaute Nouveau
bonjour à tous,

Mon problème d'aujourd'hui est le suivant :

je voudrais qu'un message d'alerte s'affiche à l'écran en fonction de deux cellules :

-la cellule A dont la valeur "O" ou "N" est issue d'une rechercheV
-la cellule B dans laquelle on entre une saisie manuelle

je voudrais deux messages d'alerte différents avec les conditions suivantes :
-quand la rechercheV dans la cellule A donne 0 et que je saisie une entrée (nimporte quel chiffre) dans la cellule B ==> message d'alerte : attention controle
-quand la rechercheV dans la cellule B donne N et que je saisie une entrée (nimporte quel chiffre) dans la cellule B ==> message d'alerte : pas de controle

cela vous semble t il réalisable?

Une fois de plus merci d'avance pour vos précieux conseils!
Laura
 

Hulk

XLDnaute Barbatruc
Re : code vba message box en fonction de deux cellules

Hello Laura, Forum :)

Si j'ai bien compris, tu colles ce code dans la feuille concernée...
Code:
Private Sub Worksheet_Change(ByVal Target As Range) 'À chaque changement sur la feuille
    
    'Cible (Target) = B1:B10
    'If Not Application.Intersect(Target, [B1:B10]) Is Nothing Then 'Pour une plage de cellule
    
    'Cible (Target) = B1
    If Not Application.Intersect(Target, [B1]) Is Nothing Then
        
        'Si B1 est différent de rien
        If Target.Value <> "" Then
            
            'Pour que tu comprennes (si tu ne comprends pas)
            'Target.Offset(0,-1) = A1 <- 0 = ligne de le cible donc 1 et -1 veut dire la colonne d'avant celle de la cible
            'Target.Offset(0,0) = B1 <- 0 = ligne de le cible donc 1 et 0 veut dire la colonne de la cible
            'Target.Offset(0,1) = B1 <- 0 = ligne de le cible donc 1 et 1 veut dire la colonne d'après
            'Target.Offset(0,2) = B1 <- 0 = ligne de le cible donc 1 et 2 veut dire la 2ème colonne d'après
            'Target.Offset(0,3) = B1 <- 0 = ligne de le cible donc 1 et 3 veut dire la 3ème colonne d'après
            'Etc...
            
            'Rappel : Target.Offset(0, -1) = A1
            
            'Donc si A1 = "O"
            If Target.Offset(0, -1).Value = "O" Then
                
                'Premier message
                MsgBox "Attention contrôle !"
            
            'Si A1 = "N"
            ElseIf Target.Offset(0, -1).Value = "N" Then
                
                'Deuxième message
                MsgBox "Pas de contrôle"
            
            'Fin du bloc If ElseIf
            End If
        
        'Autrement, si B1 = ""
        Else
            
            'Sort de la procédure sans rien faire
            Exit Sub
        
        'Fin du deuxième If
        End If
    'Fin du premier If
    End If
    
End Sub
Lorsque tu modifies B1 le message apparaît en fonction de A1.
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 205
Messages
2 086 199
Membres
103 156
dernier inscrit
Ludo94130