Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Deux macros en conflits

Christian0258

XLDnaute Accro
Bonjour à tout le forum,

Pourriez-vous me dire pourquoi je n'arrive pas à faire fonctionner correctement ces deux macros…

voir fichier joint,

Merci pour votre aide si précieuse.

Bien amicalement,
Christian
 

Pièces jointes

  • ConflitDeuxMacros.xlsm
    18 KB · Affichages: 28

Christian0258

XLDnaute Accro
Re, le forum,

Pas inspiré par ce sujet...lol

J'ai expliqué une peu mieux, dans cette version 2, le problème que je rencontre….

Merci pour votre aide.
Bien amicalement,

Christian
 

Pièces jointes

  • ConflitDeuxMacrosV02.xlsm
    18.4 KB · Affichages: 21

ChTi160

XLDnaute Barbatruc
Bonjour Christian0258
Bonjour le Fil , le Forum
Le problème que j'ai rencontrer , vient du fait que pour la Feuille "Feuil1" la procédure Worksheet_Change , mais la colonne A en Majuscules
et que la Macro Worksheet_BeforeDoubleClick , Teste sur des données qui ne sont pas en majuscules .
Madame n'est pas MADAME .
Pas sur d'avoir répondu à ta demande ! lol
Bonne journée
Jean marie
 

eriiic

XLDnaute Barbatruc
Bonjour,

Code:
If TEST = -True
Quand pourrait-il être =-True puisque tu tu le mets =True ?
Et TEST est déclaré où ? Si c'est nulle part il est local à la procédure et sera toujours False en entrée.
Mais bon, ce n'est pas là ton pb.

Code:
Or InStr("2 10", Target.Column) = 0
tu ne vois pas de 1 dans "2 10" ?
eric
 

Christian0258

XLDnaute Accro
Re, le forum, Jean-Marie, Eric

Merci pour votre aide.

Oui Jean-Marie, "MADAME" c'est ce que j'obtiens si je double clique colonne A, puis bloqué et c'est justement la le problème…?

Eric, pas tout compris, je suis une bille en VBA...

Encore merci pour votre aide, pour l'instant toujours au même point...lol

Bien amicalement,
Christian
 

ChTi160

XLDnaute Barbatruc
Re
Pas dordi sous la main lol
Peut etre si tu veux vraiment les mot en majuscules faire le teste avec Ex : MADAME plutot que Madame! ou alors tu supprimes le Ucase() qui met la civilite en majuscule.
Je regarde desque possible
Jean marie
 

eriiic

XLDnaute Barbatruc
Comment ça pas tout compris ?
Tu recherches dans "2 10" si tu as le n° de ta colonne pour quitter la Sub.
Pour A c'est la colonne 1, et 1 est trouvé dans la chaine dans le "10", donc tu ne sors pas (à tort)
VB:
Private Sub Worksheet_Change(ByVal Target As Range)                            'mettre nom en majuscule de job75
    Static s: Dim n%, p
    If Target.Row = 1 Or Intersect(Target, Union(Columns(2), Columns(10))) Is Nothing Or Target.Count > 1 Or IsArray(s) Then Exit Sub
    s = Split(UCase(Application.Trim(Target)))
    n = UBound(s)
    If n = 1 Then s(1) = Application.Proper(s(1))
    If n > 1 Then
        p = Int(Abs(Val(InputBox("Entrez le nombre de mots du nom :", , 1))))
        p = IIf(p = 0, 1, IIf(p > n, n + 1, p))
        For p = p To n
            s(p) = Application.Proper(s(p))
        Next
    End If
    Target = Join(s): s = Empty
End Sub

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)    'mettre Madame ou Monsieur de Robert
    If Not Intersect([a2:a65000,i2:i650000], Target) Is Nothing Then
        Cancel = True
        Select Case LCase(Target.Value)
        Case ""
            Target = "Madame"
        Case "madame"
            Target.Value = "Monsieur"
        Case "monsieur"
            Target.Value = ""
        End Select
    End If
End Sub
Je t'ai modifié ton Select Case aussi
eric
 

ChTi160

XLDnaute Barbatruc
Re
je suis de retour lol
voilà ce que j'ai mis pour remplacer la procédure : BeforeDoubleClick
VB:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)    'mettre Madame ou Monsieur de Robert
    If Not Intersect([a2:a65000,i2:i650000], Target) Is Nothing Then
        Cancel = True
        Target.Value = IIf(Target.Value = "", "Monsieur", IIf(Target.Value = "Monsieur", "Madame", ""))
    End If
End Sub
Bonne fin de journée
Jean marie
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…