• Initiateur de la discussion Initiateur de la discussion Yücel
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Yücel

XLDnaute Junior
Bonjour à toutes et à tous,

Encore une fois j'ai besoin de votre aide. J'ai trouvé quelque piste à mon problème (mixage entre 2 code vba)

Je souhaiterai lorsque la colonne 14 (intitulé équilibre) indique "FAUX" alors le msgbox affiche un message du genre : Merci d'équilibrer l'écriture num (et là prendre le numéro d'écriture de la colonne 3 et de la ligne précédente).

Voici le code :

Private Sub Worksheet_Change(ByVal Target As Range)

Dim Equilibre As Range

For Each Equilibre In ActiveSheet.Column = 14

Valeur = Cells(Equilibre.Row, 3)

If Equilibre = "Faux" Then

MsgBox " Merci d'équilibrer l'écriture num … " & Chr(10) & " " & Chr(10) & " ( " & Valeur & " )", vbExclamation, " IMPORTANT ! "

End If

Next

End Sub


Avec mes remerciements anticipés !
 
Solution
Bonsoir Yücel,
Un essai en PJ avec :
VB:
Sub Worksheet_Change(ByVal Target As Range)
    On Error GoTo Fin
    If Target.Count > 1 Then Exit Sub
    DL = Range("N65500").End(xlUp).Row
    If Not Intersect(Target, Range("C6:C1" & DL)) Is Nothing Then  ' Début de plage à adapter
        If Cells(Target.Row, "N") = False Then
            If Target.Row = 7 Then
                MsgBox " Merci d'équilibrer l'écriture de la première ligne", vbExclamation, " IMPORTANT ! "
            Else
                MsgBox " Merci d'équilibrer l'écriture numéro  " & Cells(Target.Row - 1, 3), vbExclamation, " IMPORTANT ! "
            End If
        End If
    End If
Fin:
End Sub
Mais impossible d'indiquer la ligne au dessus ... si c'est la première...
Bonjour Yücel,
Vous pourriez essayer ceci, à mettre dans la feuille considérée :
VB:
Sub Worksheet_Change(ByVal Target As Range)
    On Error GoTo Fin
    If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, Range("N1:N1000")) Is Nothing Then  ' Plage à adapter
        If Target = False Then
            MsgBox " Merci d'équilibrer l'écriture num … " & Chr(10) & " " & Chr(10) & _
                    " ( " & Cells(Target.Row, 3) & " )", vbExclamation, " IMPORTANT ! "
        End If
    End If
Fin:
End Sub
J'ai supposé que FAUX était le résultat d'une formule donc False pour le VBA, et non une chaine de caractères.
 
Bonsoir Sylvanu !!

FAUX est bien le résultat d'une formule.

Ça fonctionne mais que lorsqu'on entre dans la cellule (via F2) puis on clique sur le bouton "entrée".
il m’aurait fallut le msgbox à chaque apparition de la valeur "faux" sans entrer dans la cellule. (ci-joint fichier)

Merci encore à vous pour votre aide !

Très bonne soirée à vous.
 

Pièces jointes

Bonjour Yücel,
Il faut mettre l'exécution de la macro sur les cellules qui provoquent vrai/faux.
Soit ici sur la colonne A. En modifiant :
VB:
If Not Intersect(Target, Range("A10:A1000")) Is Nothing Then  ' Plage à adapter
        If Cells(Target.Row, "N") = False Then
Activation sur modification colonne A, et examen de la valeur en colonne N.
 

Pièces jointes

Bonsoir Sylvanu !

Avant tout un grand merci !

On se rapproche beaucoup de ce que je souhaite 😀 je suis désolé mais encore deux petits détails à résoudre si possible.

Vous trouverez dans le fichier ci-joint ma demande.

Très bonne soirée à vous.
 

Pièces jointes

Bonsoir Yücel,
Un essai en PJ avec :
VB:
Sub Worksheet_Change(ByVal Target As Range)
    On Error GoTo Fin
    If Target.Count > 1 Then Exit Sub
    DL = Range("N65500").End(xlUp).Row
    If Not Intersect(Target, Range("C6:C1" & DL)) Is Nothing Then  ' Début de plage à adapter
        If Cells(Target.Row, "N") = False Then
            If Target.Row = 7 Then
                MsgBox " Merci d'équilibrer l'écriture de la première ligne", vbExclamation, " IMPORTANT ! "
            Else
                MsgBox " Merci d'équilibrer l'écriture numéro  " & Cells(Target.Row - 1, 3), vbExclamation, " IMPORTANT ! "
            End If
        End If
    End If
Fin:
End Sub
Mais impossible d'indiquer la ligne au dessus ... si c'est la première ligne.
Donc dans ce cas je n'indique que : " Merci d'équilibrer l'écriture de la première ligne"
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
2
Affichages
329
Réponses
4
Affichages
403
Réponses
2
Affichages
426
Retour