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

procedure evenementielle sur une selection

  • Initiateur de la discussion Initiateur de la discussion dg62
  • 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 !

dg62

XLDnaute Barbatruc
Bonjour le Forum

Ma première question sur ce forum


Comment appliquer ma proc à une zone uniquement par exemple A3:A20
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
' Nom en majuscule et première lettre du prénom en maj le reste en min
Dim pos As Integer
Dim nom, prenom As String
    
    

    cel = Target.Value
    If cel > '' Then
        pos = InStr(1, cel, ' ', 1)
        nom = Left$(cel, pos)
        prenomMaj = Right$(cel, Len(cel) - pos)
        prenomMin = Right$(cel, Len(cel) - pos - 1)
        cel = UCase(nom) & UCase(Left$(prenomMaj, 1)) & prenomMin
        Application.EnableEvents = False
        Target = cel
        Application.EnableEvents = True
        
    End If

        
End Sub



Merci pour votre aide

Message édité par: dg62, à: 05/04/2005 11:08
 
Bonjour dg


En rajoutant au début de la macro :

If Application.Intersect(Target, Range('a3:a20')) Is Nothing Then Exit Sub

Tu précises par ce code que si le target n'est pas dans la plage A3:A20, il doit sortir de la macro.

Salut
 
Bonjour

Code:
Private Sub Worksheet_Change(ByVal Target As Range)

' Nom en majuscule et première lettre du prénom en maj le reste en min

Dim pos As Integer

Dim nom, prenom As String

Dim cel As String

    
If Not Intersect(Range('A3:A20'), Target) Is Nothing Then


    cel = Target.Value

    If cel > '' Then

        pos = InStr(1, cel, ' ', 1)

        nom = Left$(cel, pos)

        prenomMaj = Right$(cel, Len(cel) - pos)

        prenomMin = Right$(cel, Len(cel) - pos - 1)

        cel = UCase(nom) & UCase(Left$(prenomMaj, 1)) & prenomMin

        Application.EnableEvents = False

        Target = cel

        Application.EnableEvents = True

        

    End If
End If
End Sub

Bon courage
 
re

y'a pas de mal pascal.

DG, j'avais pas regardé le corps de la macro, 🙂 , j'archive ce code.

Par contre, petite question, pour voir si j'ai bien compris :

Le enableevents permet de ne pas relancer la macro évenementielle lorsque l'on renvoi la valeur de cel dans la target, c'est ça ??

Merci pour vos réponses.

Salut
 
- 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
15
Affichages
760
Réponses
4
Affichages
581
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…