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 :

Modifier la casse suivant la cellule


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Travailleur social
    Inscrit en
    Février 2008
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Travailleur social
    Secteur : Service public

    Informations forums :
    Inscription : Février 2008
    Messages : 134
    Par défaut Modifier la casse suivant la cellule
    Bonjour tout le monde

    Je viens de regarder dans le forum tout ce qui concerne l'obligation de saisie en majuscules ou en minuscules et je suis perplexe car je n'ai pas trouvé de solutions simples à mon problème.

    La saisie doit suivant les champs être soit tout en majuscules, soit le premier mot en majuscule ou la première lettre de chaque mot en majuscule.

    De fait comment faire pour que

    1. la cellule A4 soit tout en majuscule

    2. le premier mot de la cellule B7 soit une majuscule

    3 la première lettre de chaque mot de la cellule C10 soit en majuscule.

    4. cellule D5 le premier mot tout en majuuscule et la première lettre des autres en majuscule


    Merci à tous de votre aide

  2. #2
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Bonjour,

    je te laisse aux joies simples des fonctions LCase, Ucase , Mid, Left, Split
    et Len (ouvre ton aide en ligne sur ces mots et utilise-les...

    Je ne parle donc ici que du moins simple :

    Essaye :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox StrConv("TOTO TITI", vbProperCase)

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

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Par défaut
    Salut olivepao et le forum
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    Private Sub Worksheet_Change(ByVal Target As Range)
    On Error GoTo Err_Worksheet_Change
    Dim X As Integer
    Application.ScreenUpdating = False
    Application.EnableEvents = False
    If Not (Intersect(Target, [A4]) Is Nothing) Then [A4] = UCase([A4])
    If Not (Intersect(Target, [B7]) Is Nothing) Then
        X = InStr([B7], " ")
        [B7] = Left(UCase([B7]), X - 1) & Right(([B7]), Len([B7]) - X + 1)
    End If
    If Not (Intersect(Target, [C10]) Is Nothing) Then [C10] = StrConv([C10], vbProperCase)
    If Not (Intersect(Target, [D5]) Is Nothing) Then
        [D5] = StrConv([D5], vbProperCase)
        X = InStr([D5], " ")
        [D5] = Left(UCase([D5]), X - 1) & Right(([D5]), Len([D5]) - X + 1)
    End If
    Sort_Worksheet_Change:
        Application.ScreenUpdating = True
        Application.EnableEvents = True
        Exit Sub
    Err_Worksheet_Change:
        MsgBox Err.Description, vbOKOnly + vbCritical, "ERREUR n°" & Err.Number
        Resume Sort_Worksheet_Change
    End Sub
    A+

  4. #4
    Membre confirmé
    Homme Profil pro
    Travailleur social
    Inscrit en
    Février 2008
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Travailleur social
    Secteur : Service public

    Informations forums :
    Inscription : Février 2008
    Messages : 134
    Par défaut
    Salut Gorfael, salut aussi les autres

    Un grand merci pour ta réponse.

    Je vais tester et je tiendrai tout le monde au courant

    A+

  5. #5
    Membre confirmé
    Homme Profil pro
    Travailleur social
    Inscrit en
    Février 2008
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Travailleur social
    Secteur : Service public

    Informations forums :
    Inscription : Février 2008
    Messages : 134
    Par défaut
    Super tou fonctionne nickel

    Juste une petite question, je sais j'abuse ¨

    Puis-je affecter un argument à plusieurs cellules.

    Autrement si je désire qu'une cellule (E8 par ex.) soit testée avec l'un des arguments (A4, B7, C10 ou D5) puis-je le faire dans le même IF ou faut-il faire un nouveau IF avec la valeur de la cellule E8.

    Merci

  6. #6
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Par défaut
    Salut olivepao et le forum
    Je vais tester et je tiendrai tout le monde au courant
    Le forum suffirait
    Autrement si je désire qu'une cellule (E8 par ex.) soit testée avec l'un des arguments (A4, B7, C10 ou D5) puis-je le faire dans le même IF ou faut-il faire un nouveau IF avec la valeur de la cellule E8.
    T'es dur avec moi
    Je ne comprends pas la question.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    If Not (Intersect(Target, [A4]) Is Nothing) Then [A4] = UCase([A4])
    Target est mis à jour par excel et contient les cellules qui sont passée en mode édition (celles qui ont "changé"). si l'une de ces cellules appartient à plage A4, alors mettre A4 en majuscules.
    En français ; si A4 a été modifiée, la mettre en majuscules.
    Mais on pourrait écrire :
    Si E8 contient "Oui" ET qu'on modifie A4, mettre A4 en majuscules :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If [E8]="Oui" and Not (Intersect(Target, [A4]) Is Nothing) Then [A4] = UCase([A4])
    Mais si on remplit A4 et qu'on met seulement après Oui dans E8 la macro ne fonctionnera pas, il faudrait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If [E8]="Oui" and Not (Intersect(Target, union([A4], [E8])) Is Nothing) Then [A4] = UCase([A4])
    pour que si on change A4 ou qu'on change E8, si E8="Oui", alors on passe en majuscules.

    En gros, si tu expliquait ce que tu attends comme résultat, on pourrait construire ce qui t'intêresse, mais on manque de données.
    A+

  7. #7
    Membre confirmé
    Homme Profil pro
    Travailleur social
    Inscrit en
    Février 2008
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Travailleur social
    Secteur : Service public

    Informations forums :
    Inscription : Février 2008
    Messages : 134
    Par défaut
    Salut tout le monde

    Je me suis peut-être mal exprimé.

    Je désire que les tests se fassent sur deux cellules ex :

    1. les cellules A4 et E8 soit tout en majuscule

    2. le premier mot des cellules B7 et E9 oit une majuscule

    3 la première lettre de chaque mot des cellules C10 et E10 soit en majuscule.

    4. cellule D5 et E11 le premier mot tout en majuuscule et la première lettre des autres en majuscule

    Je te demande ceci afin de savoir s'il est possible d'ajouter un argument au test, ceci pour éviter de refaire plusieurs fois le même test en changeant uniquement la référence de la cellule.

    Merci et A+

Discussions similaires

  1. modifier le contenu d'une cellule
    Par STEPH69000 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 14/06/2006, 17h12
  2. [POI]recuperer et modifier les données d'une cellule
    Par corbier32 dans le forum Documents
    Réponses: 5
    Dernier message: 04/05/2006, 10h41
  3. Réponses: 4
    Dernier message: 24/07/2005, 20h14
  4. Modifier la casse d'une chaine de caracteres
    Par anne-so dans le forum Langage
    Réponses: 3
    Dernier message: 15/07/2005, 20h37
  5. Modifier la casse d'un texte
    Par glsn dans le forum ASP
    Réponses: 8
    Dernier message: 08/01/2004, 11h12

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