Microsoft 365 condition sur texte d'une bulle

Usine à gaz

XLDnaute Barbatruc
Bonjour à toutes et à tous :)

Je n'arrive pas à coder ma condition !
En espérant que nos ténors pourront m'aider :)
Le contexte :
Quand clic dans la cellule M6, si le texte de la bulle est : "OK - OM vérifié - Affecter = clic EN COL M >", il m'écrit "ok" dans la cellule active
Si ce n'est pas le cas = MsgBox ("on vérifie l'indicatif ?")
le code :
VB:
If Not Intersect(R, Range("m6")) Is Nothing Then
    Application.EnableEvents = False
    If Shapes("bulle1_affectez").TextFrame2.TextRange.Characters.Text = "OK - OM vérifié - Affecter = clic  EN COL M >" Then
    ActiveCell = "ok"
    [a1].Select
    Application.EnableEvents = True
    Else
    MsgBox ("on vérifie l'indicatif ?")
    [a1].Select
    Application.EnableEvents = True
    End If
End If
Voyez-vous mon ou mes erreurs ?
Je joins le p'tit fichier test.
Un grand merci ...
Je continue mes recherches,
lionel :)
 

Pièces jointes

  • z bulle1.xlsm
    24.2 KB · Affichages: 4
Dernière édition:
Solution
Bonjour Lionel, fanch55,

Ce n'est pas Chr(13) qu'il faut utiliser mais Chr(10) ou vbLf.

Et bien sûr introduire cette constante dans le test :
VB:
If Shapes("bulle1_affectez").TextFrame2.TextRange.Characters.Text = "OK - OM vérifié - " & vbLf & "Affecter = clic  EN COL M >" Then
A+

Usine à gaz

XLDnaute Barbatruc
Re-Bonjour :)
J'ai trouvé d'où ça vient :
le texte à la création :
VB:
With Shapes("bulle1_affectez")
        .TextFrame2.TextRange.Characters.Text = "OK - OM vérifié - " & Chr(13) & "Affecter = clic  EN COL M >"
        .Top = ActiveCell.Top + 15
        .Height = 45
    End With
C'est le & Chr(13) & qui me pose un souci car renvoi à la ligne
Pourtant, je tiens à ce retour à la ligne lol :)
Je cherche comment le contourner dans ma vérification ... ?
:)
 

fanch55

XLDnaute Barbatruc
Le mieux c'est de construire ta chaine dans une variable et de l'assigner à ton shape
et de faire la comparaison de la variable au caption de ton shape .

Pour que le like fonctionne correctement, il te faut en début de module :
Option Compare Text ' comparaison indifférente aux minus/majus-cules
 

fanch55

XLDnaute Barbatruc
Ça aussi, ça fonctionne :
VB:
ShapeText = "OK - OM vérifié - " & vbLf & "Affecter = clic  EN COL M >"
If Not Intersect(R, Range("i6")) Is Nothing Then
    Application.EnableEvents = False
        With Shapes("bulle1_affectez")
            .Visible = True
            .OLEFormat.Object.Caption = ShapeText
            .Top = R.Top + 15
            .Height = 45
        End With
        [a1].Select
    Application.EnableEvents = True
End If

If Not Intersect(R, Range("m6")) Is Nothing Then
    Application.EnableEvents = False
    If Shapes("bulle1_affectez").OLEFormat.Object.Caption = ShapeText Then
        R = "ok"
    Else
        MsgBox ("on vérifie l'indicatif ?")
    End If
    [a1].Select
End If
Application.EnableEvents = True
 

job75

XLDnaute Barbatruc
Bonjour Lionel, fanch55,

Ce n'est pas Chr(13) qu'il faut utiliser mais Chr(10) ou vbLf.

Et bien sûr introduire cette constante dans le test :
VB:
If Shapes("bulle1_affectez").TextFrame2.TextRange.Characters.Text = "OK - OM vérifié - " & vbLf & "Affecter = clic  EN COL M >" Then
A+
 

Pièces jointes

  • z bulle1.xlsm
    24.3 KB · Affichages: 3

Discussions similaires

Réponses
8
Affichages
702

Statistiques des forums

Discussions
314 778
Messages
2 112 864
Membres
111 686
dernier inscrit
daniel delichy