IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

vba mise en majuscules en "quittant" une cellule


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Décembre 2008
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 50
    Par défaut vba mise en majuscules en "quittant" une cellule
    Bonjour à tou(te)s
    J'ai trouvé des tas de codes pour passer le contenu d'une cellule en majuscules. Parmi tous ceux qui fonctionnaient celui qui m'a semblé le plus "propre" est celui ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        If Intersect(Target, Range("tb_APs[enseignant]")) Is Nothing Or Target.Cells.Count > 1 Then Exit Sub
        Application.EnableEvents = False
        Target.Value = UCase(Target.Value)
        Application.EnableEvents = True
    Code insérer dans : Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Ça fonctionne bien à un détail près. Le texte passe en majuscules quand je reviens dans la cellule ce qui semble logique puisque "Target" ça veux dire "cible" mais ce que je veux c'est que la modification se fasse à la sortie. Est-ce possible?
    En tout cas merci de votre attention.

  2. #2
    Membre averti
    Homme Profil pro
    Inscrit en
    Décembre 2008
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 50
    Par défaut J'ai trouvé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        Cells(ActiveCell.Row, 3).Value = UCase(Cells(ActiveCell.Row, 3).Value)
    Ca doit pouvoir être amélioré mais poour le moment ça fonctionne...
    Bonne journée

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2 266
    Par défaut
    Bonjour,

    C'est l'événement Change que tu dois utiliser et non SelectionChange.
    eric

  4. #4
    Membre confirmé
    Homme Profil pro
    Concepteur CAO
    Inscrit en
    Décembre 2014
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Concepteur CAO
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2014
    Messages : 65
    Par défaut Forcer Majuscule dans cellule
    Salut le forum,
    Moi perso j'utilise ca : (toutes les lettres saisie en colonnes A seront des majuscules une fois la cellule validée)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    If Not Intersect(Target, Range("A:A")) Is Nothing Then
     Dim MaCell As Range
     With Target
     If .Cells.Count > 1 Then
     If .MergeCells = False Or .Areas.Count > 1 Then Exit Sub
     End If
     Set MaCell = .Cells(1, 1)
     End With
     If MaCell.Value <> "" And Not IsNumeric(MaCell.Value) Then
     Application.EnableEvents = False
     MaCell = UCase(MaCell)
     Set MaCell = Nothing
     Application.EnableEvents = True
     End If
    End If
    Ce code peux vous paraître long mais il fonctionne très bien, vous avez simplement à modifier la cible "A:A" pour l'adapter à votre cas.
    Je vous conseillerai de remplacer la cible par un nom du gestionnaire de nom ainsi il s'appliquera uniquement aux cellules souhaitées et s'il y a des modifications de la feuille de calcul les cellules suivront. Je trouve cela très pratique.

    Si vous avez des critiques et remarques constructive sur ce code je vous lirai avec plaisir

    Bye

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VBA-E] Afficher et fixer la formule d'une cellule donnée
    Par cladsam dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 12/06/2014, 07h27
  2. [VBA-PP]fonction qui écrit un chiffre dans une cellule excel
    Par alpking dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 26/04/2006, 19h34
  3. [VBA-E] Nom et couleur bouton fonction d'une cellule
    Par zouille dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 03/04/2006, 17h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo