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 Excel] Forcer les majuscules


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 84
    Points : 37
    Points
    37
    Par défaut [VBA Excel] Forcer les majuscules
    Bonjour,

    J'essaye de faire fonctionner une macro dont l'objectif est de transformer automatiquement des données en minuscules en données en majuscules.
    Pour cela, je sélectionne la feuille concernée dans laquelle j'écris 2 macros possibles pour le même résultat :

    Macro 1 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub Worksheet_Change(ByVal zz As Range)
    If Intersect(zz, [G2:G20]) Is Nothing Then Exit Sub
    Application.EnableEvents = False
    zz = UCase(zz)
    Application.EnableEvents = True
    End Sub
    OU macro 2 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Worksheet_Change(ByVal zz As Range)
    If zz.Count > 1 Then Exit Sub
    If Intersect(zz, Range("G2:G20")) Is Nothing Then Exit Sub
    zz.Value = UCase(CStr(zz.Value))
    End Sub
    Les 2 macros fonctionnent mais dès que je fais une suppression de plusieurs données en meme temps, j'ai un bug de la macro puis elle ne fonctionne plus... A quoi es-ce dû d'après vous ?

    D'avance merci

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    elle ne fonctionne plus
    Renseignement relatif, essentiellement tributaire des lignes du code et du contexte sans lesquels il ne sert à rien pisk tout le monde qui vient poser une question sur le forum a un truc qui fonctionne pas
    Message d'erreur ? Quelle ligne ? Quelle données effaces-tu ???
    Bref, des détails pourraient nous aider à t'aider

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 84
    Points : 37
    Points
    37
    Par défaut
    Lool !!! Bon pour faire simple, la macro fonctionnait, puis j'ai effacé les cases G5 à G8 pour tester et cela a provoqué une erreur sur la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    zz.Value = UCase(zz.Value)
    et depuis , la macro (ou l'autre) ne fonctionne plus. La question est donc : Comment faire pour que les données saisies passent automatiquement en majuscule ?

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    932
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 932
    Points : 448
    Points
    448
    Par défaut
    puis j'ai effacé les cases G5 à G8
    Avant toutes les cellules de ton range étaient remplies par du texte?

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 84
    Points : 37
    Points
    37
    Par défaut
    non pas toutes

  6. #6
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Comprends toujours pas la relation avec le passage en majuscule

  7. #7
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    je vois 2 problémes :

    1. Lorsque tu modifie plusieurs cellules simultanément, le range zz contient plusieurs cellule et ZZ=UCase(ZZ) est incorrect.. tu dois mettre les cellules en majuscules une par une ...
    2. Tu gére mal ton intersection ... et si tu modifie simultanément (copie ou efface..) du texte appartenant à la plage G2:G20 et d'autre texte n'appartenant pas à cette plage zz représente un range couvra,toutes les cellules modifiées .. et je pense pas que tu veuille toute les passer en majuscule...

    tiens voila comment je vois le code ( j'en ai profité pour reprendre le nom habituel de la variable donnée en paramétre à Worksheet_change : target..)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim zz
    Dim c As Range
    Set zz = Intersect(Target, [G2:G20])
    If zz Is Nothing Then Exit Sub
    Application.EnableEvents = False
     For Each c In zz.Cells
       c = UCase(c)
     Next
    Application.EnableEvents = True
    End Sub

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 84
    Points : 37
    Points
    37
    Par défaut
    Merci beaucoup, ca marche !

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

Discussions similaires

  1. [VBA][Excel] Avec les modèles Excel.
    Par mulanzia2003 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 19/08/2006, 10h27
  2. [VBA Excel] Forcer le collage spécial (désactiver coller)
    Par papejp dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 20/07/2006, 10h11
  3. [VBA Excel] Ordonner les tabulations dans un formulaire
    Par Viper7 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 28/06/2006, 13h41
  4. [9.2] forcer les majuscules au niveau de la table
    Par Yorglaa dans le forum Oracle
    Réponses: 3
    Dernier message: 20/04/2006, 11h33
  5. [VBA][Excel]Récupérer les valeurs du graphe...
    Par Samourai dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 06/01/2006, 10h51

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