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 :

Mettre en minuscules à l'intérieur des parenthèses [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Membre éprouvé Avatar de Vadorblanc
    Profil pro
    Inscrit en
    Février 2008
    Messages
    309
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 309
    Par défaut Mettre en minuscules à l'intérieur des parenthèses
    Bonjour
    Je cherche à mettre tout en minuscules tout ce qui se trouve à l'intérieur des parenthèses par un code VBA, les données sont en colonne C et j'ai 1000 lignes environ àchaque fois.


    PARIS (IMPASSE DU PLAN)
    MONTPELLIER (IMPASSE DE)
    JOURNAUX (ALLEE DES GRANDS)
    BREVENT (ROUTE DU)
    JOVET (ROUTE DU)

    Mon essai
    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
    Sub remplacer()
     
        Dim Plage As Range
        Dim Cel As Range
     
        'adapter la colonne
        With ActiveSheet
            Set Plage = .Range(.[C1], .[C65536].End(xlUp))
        End With
     
        'parcour la plage et effectue les changements
        For Each Cel In Plage
            If Cel = (*) Then Cel = xlLowerCaseColumnLetter 'minuscule
        Next Cel
     
    End Sub
    et ligne rouge : If Cel = (*) Then Cel = xlLowerCaseColumnLetter 'minuscule

    Merci

  2. #2
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Bonjour
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Dim LastLig As Long, i As Long
    Dim n As Integer
    Dim Mot As String
     
    With Sheets("Feuil1")
        LastLig = .Cells(.Rows.Count, "C").End(xlUp).Row
        For i = 2 To LastLig
            Mot = .Range("C" & i).Value
            n = InStrRev(Mot, "(")
            If n > 0 Then .Range("C" & i).Value = Left(Mot, n) & LCase(Mid(Mot, n + 1))
        Next i
    End With

  3. #3
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bonsoir,
    Excuses-moi mercatog, même si ton code est très bien, j'avais préparé le mien donc je le donne (pas travaillé pour rien)
    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
    Sub remplacer()
    Dim Plage As Range
    Dim Cel As Range
    Dim dp As Integer, n As Integer
    Dim fin As Integer, nom As String
     
    With ActiveSheet
       Set Plage = .Range(.[C1], .[C65536].End(xlUp))
    End With
    'parcour la plage et effectue les changements
    For Each Cel In Plage
       dp = Application.WorksheetFunction.Search("(", Cel)
       fin = Application.WorksheetFunction.Search(")", Cel)
       n = fin - dp - 1
       nom = LCase(Mid(Cel, dp + 1, n))
       Cel = Replace(Cel, Mid(Cel, dp + 1, n), nom)
    Next Cel
     
    End Sub
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  4. #4
    Membre éprouvé Avatar de Vadorblanc
    Profil pro
    Inscrit en
    Février 2008
    Messages
    309
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 309
    Par défaut
    Bonjour Mercatog
    Ton code ultra rapide et toujours époustouflant comme à ton habitude, un grand MERCI, Bien cordialement.

    Bonjour Casefayere
    Une autre façon de faire intéressante mais qui bloque pour le moment
    J'ai un arrêt sur la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dp = Application.WorksheetFunction.Search("(", Cel)
    Peux tu voir si tu veux bien...
    Merci

  5. #5
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    essayes avec value

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     dp = Application.WorksheetFunction.Search("(", Cel.value)
       fin = Application.WorksheetFunction.Search(")", Cel.value)
       n = fin - dp - 1
       nom = LCase(Mid(Cel, dp + 1, n))
       Cel = Replace(Cel, Mid(Cel, dp + 1, n), nom)
    pour ma part je ne peux pas essayer sur ton code mais j'avais testé comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim dp, fin, n, nom As String
       dp = Application.WorksheetFunction.Search("(", Range("a1"))
       fin = Application.WorksheetFunction.Search(")", Range("a1"))
       n = fin - dp - 1
       nom = LCase(Mid(Range("a1"), dp + 1, n))
       Range("B1") = Replace(Range("a1"), Mid(Range("a1"), dp + 1, n), nom)
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  6. #6
    Membre éprouvé Avatar de Vadorblanc
    Profil pro
    Inscrit en
    Février 2008
    Messages
    309
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 309
    Par défaut
    Casefayere
    Je viens de lancer tes 2 propositions, mais j'ai toujours l'erreur au même endroit pour les 2

    La première
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dp = Application.WorksheetFunction.Search("(", Cel.value)
    La deuxième
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dp = Application.WorksheetFunction.Search("(", Range("a1"))
    Je n'arrive pas corriger
    Merci

  7. #7
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Je ne comprends pas, je viens de réessayer sans problème.
    as-tu bien déclarer les variables,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim dp As Integer, n As Integer
    Dim fin As Integer, nom As String
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  8. #8
    Membre éprouvé Avatar de Vadorblanc
    Profil pro
    Inscrit en
    Février 2008
    Messages
    309
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 309
    Par défaut
    Casefayere
    Je viens de rajouter les 2 variables
    Je pense ne t'avoir pas tout suivi, voici tes 2 codes que j'essaie de lancer

    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
    Sub Module2remplacer()
     
    Dim Plage As Range
    Dim Cel As Range
    Dim dp As Integer, n As Integer
    Dim fin As Integer, nom As String
     
    With ActiveSheet
       Set Plage = .Range(.[C1], .[C65536].End(xlUp))
    End With
    'parcour la plage et effectue les changements
    For Each Cel In Plage
    dp = Application.WorksheetFunction.Search("(", Cel.Value)
       fin = Application.WorksheetFunction.Search(")", Cel.Value)
       n = fin - dp - 1
       nom = LCase(Mid(Cel, dp + 1, n))
       Cel = Replace(Cel, Mid(Cel, dp + 1, n), nom)
       Next Cel
     
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub Module3Remplacer()
     
    Dim dp As Integer, n As Integer
    Dim fin As Integer, nom As String
    Dim dp, fin, n, nom As String
     
       dp = Application.WorksheetFunction.Search("(", Range("a1"))
       fin = Application.WorksheetFunction.Search(")", Range("a1"))
       n = fin - dp - 1
       nom = LCase(Mid(Range("a1"), dp + 1, n))
       Range("B1") = Replace(Range("a1"), Mid(Range("a1"), dp + 1, n), nom)
     
    End Sub
    Merci

  9. #9
    Membre éprouvé Avatar de Vadorblanc
    Profil pro
    Inscrit en
    Février 2008
    Messages
    309
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 309
    Par défaut
    Bonjour
    je n'ai pas en retour la correction des deux codes de Casefayere, et comme Mercatog à mis son code qui fonctionne très bien, je cloture donc ce message.
    Encore Merci à tous les deux.
    Bien cordialement

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

Discussions similaires

  1. Supprimer le texte à l'intérieur des parenthèses
    Par persia dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 18/04/2011, 22h44
  2. [XL-2003] Modifications uniquement à l'intérieur des parenthèses
    Par Vadorblanc dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 11/04/2011, 23h31
  3. Réponses: 2
    Dernier message: 09/10/2008, 21h09
  4. Réponses: 1
    Dernier message: 23/01/2006, 19h53
  5. [Lisp] Suppression des parenthèses dans une liste
    Par bourdaillet dans le forum Lisp
    Réponses: 3
    Dernier message: 19/12/2004, 22h02

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