Création d'une MsgBox

Bonjour,

J'aimerais réaliser une mise en forme conditionnelle particulière ou une MsgBox :

par exemple, si on entre M en cellule D3 alors que la cellule adjacente C3 contient S --> colorer les 2 cellules

Est ce que c'est envisageable ?

D'avance, merci !

Bonjour

Formule de la MFC

=ET($C$3="S";$D$3="M")

Cordialement

Merci Amadéus !

Bon, suis allé un peu vite en besogne.

La mfc fonctionne mais pour la mettre en place, je dois supprimer la première mfc, ce qui fais dysfonctionner les couleurs automatiques week end / semaine.

Est ce qu'il serait possible de passer par une MsgBox en vba ?

De manière à signaler qu'une cellule M est précédée d'une cellule S ?

Bonjour

Merci de joindre un fichier exemple pour voir les autres MFC et la présentation.

Cordialement

Oui, en effet, ce sera plus explicite ...

Voici le lien :

Merci.

Bonjour,

Est ce que l'un d'entre vous peut me dire si cette MsgBox est réalisable ou faut-il que j'abandonne cette solution ?

En fait, ce n'est pas la méthodo pour créer la MsgBox qui me pose problème mais transcrire en VBA le lien entre n'importe quelle cellule et la cellule précédente ...

merci et bon week end !

Bonjour

Pour répondre à cette question

vinophile a écrit :

De manière à signaler qu'une cellule M est précédée d'une cellule S ?

Code à placer dans le module ThisWorkbook

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
  If (Target = "S" And Target.Offset(0, 1) = "M") Or (Target = "M" And Target.Offset(0, -1) = "S") Then
    MsgBox "Un ""S"" précède un ""M"""
  End If
End Sub

Excellent, merci Banzai64 !

Bonjour Banzai64,

Désolé de revenir sur ce post mais je me suis aperçu cette semaine que depuis l'insertion de ce code, j'ai un message d'erreur qui s'ouvre à chaque fois que j'utilise la macro "effacer la sélection" ou la touche suppr du clavier.

Le message évoque "erreur d’exécution '13': incompatibilité de type"

La ligne "If (Target = "S" And Target.Offset(0, 1) = "M") Or (Target = "M" And Target.Offset(0, -1) = "S") Then" est apparemment à l'origine de l'erreur mais je ne saurai trouver la raison qui l’entraîne.

Peux tu m'aiguiller ?

Merci.

Bonjour

Comme je ne sais pas dans quelle conditions tu utilises l'effacemt

Rajoutes en début de macro

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
  If Target = "" Then Exit Sub
  If (Target = "S" And Target.Offset(0, 1) = "M") Or (Target = "M" And Target.Offset(0, -1) = "S") Then
    MsgBox "Un ""S"" précède un ""M"""
  End If
End Sub

Si pas ça joins ton fichier, car ton 1er lien est mort

Je viens de la tester et ça marche, Excel 2010 !

Francky

C'est bon, bug rectifié.

Merci.

vinophile a écrit :

C'est bon, bug rectifié.

Merci.

Autre bug lié à la même commande apparemment.

Il s'agit maintenant d'une erreur "exécution 1004" lorsque j'entre un nom dans l'onglet "personnel"

Avec le lien :

Merci.

Bonjour

Avec un peu plus de contrôle de la zone de saisie

A essayer

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
  If Target.Count > 1 Then Exit Sub
  If Target = "" Then Exit Sub
  Select Case Sh.Name
    Case "Accueil", "Personnel"   ' Liste des pages non concernées
    Case Else
    If Not Intersect(Range("C3:AG52"), Target) Is Nothing Then
        If (Target = "S" And Target.Offset(0, 1) = "M") Or (Target = "M" And Target.Offset(0, -1) = "S") Then
          MsgBox "Un ""S"" précède un ""M"""
        End If
      End If
  End Select
End Sub

ça m'a tout l'air de fonctionner ...

Encore merci pour ton aide !

C'est re-moi ...

Le code fonctionne toujours mais une autre erreur apparait. Peut être était elle déjà présente avant mais je ne l'avais jamais rencontrée certainement car je testais toujours sans la protection des feuilles.

Maintenant que j'ai réactivé cette protection, lorsque je clique en onglet "accueil" sur le bouton "appliquer les nouveaux codes", j'ai une erreur d’exécution avec plusieurs chiffres et "la méthode 'select' de l'objet 'shape' a échouée". Celle-ci renvoie au code

Sub maj_boutons()
'Applique les codes de la page d'accueil sur la légende des boutons (bouton01 à bouton23)

Dim n As Byte, i As Byte
For n = 3 To 14
    Sheets(n).Select
    'ActiveSheet.Unprotect (pwd)
    For i = 1 To 23
    ActiveSheet.Shapes("bouton" & Format(i, "00")).Select
    Selection.Characters.Text = Sheets("Accueil").Cells(7 + i, 2).Value '1ère cellule : B8
    Next i
    'ActiveSheet.Protect (pwd)
Next n
Sheets("Accueil").Select

End Sub

code de la protection : 220305

En espérant que ce soit la dernière ...

Bonjour

As tu essayé en déprotégeant la feuille et en la reprotégeant à la fin

    Sub maj_boutons()
    'Applique les codes de la page d'accueil sur la légende des boutons (bouton01 à bouton23)

    Dim n As Byte, i As Byte
    For n = 3 To 14
        Sheets(n).Select
        ActiveSheet.Unprotect "220305"
       For i = 1 To 23
        ActiveSheet.Shapes("bouton" & Format(i, "00")).Select
        Selection.Characters.Text = Sheets("Accueil").Cells(7 + i, 2).Value '1ère cellule : B8
       Next i
        ActiveSheet.Protect "220305"
    Next n
    Sheets("Accueil").Select

    End Sub

Bonjour Banzai64,

J'ai tenté en enlevant la protection puis en la réinstallant mais ça ne changeait rien. Les cellules B8:B19 ne sont pas vérouillées, je devrait normalement pouvoir les modifier ..

Je viens d'appliquer ton code.

Je peux à nouveau "appliquer les nouveaux codes" sur l'onglet accueil.

Mais maintenant, ça coince lorsque j'entre un poste sur le planning.

Il m'indique une erreur 1004, avec "impossible de définir la propriété color de la classe interior" ...

Faut-il que j'entre "220305" en lieu et place de tous les "pwd" ?

Rechercher des sujets similaires à "creation msgbox"