Microsoft 365 condition sur texte d'une bulle

  • Initiateur de la discussion Initiateur de la discussion Usine à gaz
  • 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 !

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
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

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+
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 ... ?
🙂
 
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
 
Ç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
 
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

- 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
1 K
Réponses
1
Affichages
908
Retour