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 :

Colonne au format NOM propre [XL-2016]


Sujet :

Macros et VBA Excel

  1. #81
    Expert confirmé
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Points : 4 174
    Points
    4 174
    Par défaut
    Patrick il faut que tu ralentisses ta vitesse de lecture afin de ne pas sauter des messages ou des phrases
    Je te l’ai dit que c’est pas ok
    Si c’était vraiment ok, je ne chercherais plus
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre en n'oubliant pas d'indiquer qu'elle est la solution finale choisie

  2. #82
    Expert confirmé
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Points : 4 174
    Points
    4 174
    Par défaut
    Re à tous,

    @Patrick : presque bonne nouvelle - j’ai bien fait de mettre mon collègue au défi, car il m’a trouvé une formule non matricielle permettant de faire le RTRIM.
    Et ça à l’air tellement simple, on se demande pourquoi on y a pas pensé …
    Pour l’instant pas trop le temps, je fais les tests dès que je peux, au pire, ce soir …
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre en n'oubliant pas d'indiquer qu'elle est la solution finale choisie

  3. #83
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re
    ben écoute chez moi 2007 et 2013 32 bits ca fonctionne j'ai bien vérifié que ca faisait pas autre chose en plus au cas ou et non ca Rtrim bien et le dernier ".address' doit rester comme tel

    j'ai bien testé en étant sur une autre feuille et tout et tout

    je suis impatient de voir la formule non matricielle
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  4. #84
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re
    demo
    Nom : demo3.gif
Affichages : 119
Taille : 1,30 Mo
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  5. #85
    Expert confirmé
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Points : 4 174
    Points
    4 174
    Par défaut FORMULE RTRIM non matricielle
    Bonjour à tous,

    Patrick, Eric, mercatog, Vba14

    Commençons par l'explication de LA FORMULE en non matricielle (grand merci à mon collègue pour le petit défi - 45 mn ) :

    Exemple de texte lambda pour tester : " gsqfjy kdfg jhzfvcki mdq ssqsf " => EDIT : le post efface les espaces je l'ai remplace ici par des tirets : "----gsqfjy--kdfg-jhzfvcki-mdq---ssqsf---------"

    gsqfjy kdfg jhzfvcki mdq ssqsf 46 NBCAR(A1) => au départ nb de lettres
    gsqfjy kdfg jhzfvcki mdq ssqsf SUPPRESPACE(A1) Supprime tous les espaces en trop
    f DROITE(A3;1) on prend la dernière lettre - ici le "f"
    4 NBCAR(A1)-NBCAR(SUBSTITUE(A1;A4;"")) on supp tous les "f" pour en connaître le nombre
    gsqfjy kdfg jhzfvcki mdq ssqs| SUBSTITUE(A1;A4;"|";A5) on remplace dernier "f" en 4è position par un caractère spécial
    37 TROUVE("|";A6;1) on cherche la position du caractère spécial
    gsqfjy kdfg jhzfvcki mdq ssqsf GAUCHE(A1;A7) on récupère le texte par la gauche grâce à la position du caractère spécial trouvé
    gsqfjy kdfg jhzfvcki mdq ssqsf 37 NBCAR(A10) => Résultat final sans les escpaces de fin
    gsqfjy kdfg jhzfvcki mdq ssqsf FORMULE => GAUCHE(A1;TROUVE("|";SUBSTITUE(A1;DROITE(SUPPRESPACE(A1);1);"|";NBCAR(A1)-NBCAR(SUBSTITUE(A1;DROITE(SUPPRESPACE(A1);1);"")));1))

    Donc pour que cela marche pour Excel Mac 2011 et office 365 Mac (on a que des Adr (merci mercatog )) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
            If RT Then .Value = Evaluate("IF(ISTEXT(" & Adr & "),LEFT(" & Adr & ",FIND(""§"",SUBSTITUTE(" & Adr & ",RIGHT(TRIM(" & Adr & "),1),""§"",LEN(" & Adr & ")-LEN(SUBSTITUTE(" & Adr & ",RIGHT(TRIM(" & Adr & "),1),""""))),1))," & Adr & ")")
    Dit Patrick il existe bien ce signe sur PC : §

    NB : à la fin de la formule je n'ai laissé que " & Adr & " et non REPT(" & Adr & ",1) afin que cela puisse marcher sur Mac correctement - je suppose que sur PC c'es OK aussi ???

    Qu'en est il alors sur PC et quel sont les version testés ??? svp
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre en n'oubliant pas d'indiquer qu'elle est la solution finale choisie

  6. #86
    Membre habitué Avatar de Vba14
    Homme Profil pro
    Retraité
    Inscrit en
    Janvier 2019
    Messages
    440
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2019
    Messages : 440
    Points : 147
    Points
    147
    Par défaut
    Bonsoir à tous,

    Vous n'avez pas le cerveau qui fume après tout ça

    Chapeau bas messieurs ! il va falloir que je reprenne cette discussion depuis le début pour essayer de comprendre toute votre intelligence... Je vous avoue que j'ai décroché il y a longtemps.

    Franchement, je ne sais pas où vous allez chercher tout ça

    Merci beaucoup pour vos participations, j'espère que tout ce travail ne restera pas sans utilité, pour ma part je vais bien le conserver au chaud.

    Allez les gars, reposez-vous un peu, vous devez en avoir besoin.

    Amicalement
    René
    Le savoir est le plus intellectuel des virus, dommage qu'il ne soit pas très contagieux.
    Adrien Verschaere
    Étudiant, France, 1997

  7. #87
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re
    test effectué 2007 2013 ta nouvelle formule semble fonctionner

    la compil'

    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
    Function ChangeAllCellpropertiesInRange(ByRef RnG As Range, prop As String)
        Dim R As Variant, Addr
        With RnG
            Addr = "'" & .Parent.Name & "'!" & .Address
            Select Case UCase(prop)
     
                'formule non matricielles
            Case "LOWER", "UPPER", "PROPER", "APPTRIM":
                prop = Replace(UCase(prop), "APPTRIM", "TRIM")
                R = Evaluate("IF(ISTEXT(" & Addr & ")," & UCase(prop) & "(" & Addr & "),REPT(" & Addr & ",1))")
     
                'formules matricielle
            Case "LTRIM": R = Evaluate("IF(ISTEXT(" & Addr & "),MID(" & Addr & ",FIND(MID(TRIM(" & Addr & "),1,2)," & Addr & ",1),LEN(" & Addr & ")),REPT(" & Addr & ",1))")
                'ancienne formule RTRIM qui fonctionne
                'Case "RTRIM": R = Evaluate("IF(ISTEXT(" & Addr & "),LEFT(" & Addr & ",FIND(""^^"",SUBSTITUTE(" & Addr & ",RIGHT(TRIM(" & Addr & "),1),""^^"",LEN(" & Addr & ")-LEN(SUBSTITUTE(" & Addr & ",RIGHT(TRIM(" & Addr & "),1),""""))))),REPT(" & .Address & ",1))")
                'nouvelle formule
            Case "RTRIM": R = Evaluate("IF(ISTEXT(" & Addr & "),LEFT(" & Addr & ",FIND(""§"",SUBSTITUTE(" & Addr & ",RIGHT(TRIM(" & Addr & "),1),""§"",LEN(" & Addr & ")-LEN(SUBSTITUTE(" & Addr & ",RIGHT(TRIM(" & Addr & "),1),""""))),1))," & Addr & ")")
            Case "TRIM": .Value = Evaluate("IF(ISTEXT(" & Addr & "),MID(" & Addr & ",FIND(MID(TRIM(" & Addr & "),1,2)," & Addr & ",1),LEN(" & Addr & ")),REPT(" & Addr & ",1))")
                R = Evaluate("IF(ISTEXT(" & Addr & "),MID(" & Addr & ",1,FIND(TRIM(RIGHT(SUBSTITUTE(TRIM(" & Addr & "), "" "", REPT("" "", 100)), 100))," & Addr & ",1)+LEN(TRIM(RIGHT(SUBSTITUTE(TRIM(" & Addr & "), "" "", REPT("" "", 100)), 100)))-1),REPT(" & Addr & ",1))")
            End Select
        End With
        ChangeAllCellpropertiesInRange = R
    End Function
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Sub test()
        Dim DL, RnG As Range
        With Sheets(1)
            DL = .Cells(Rows.Count, 3).End(xlUp).Row
            Set RnG = .Range("C2:C" & DL)
            'RnG.Parent.Activate
            RnG.Value = ChangeAllCellpropertiesInRange(RnG, "RTRIM")    'majuscule ou minuscule l'argument de propertie peu importe!!!
        End With
    End Sub
    tu te régale avec ca toi hein

    pour le caractère spécial il me semble que oui
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  8. #88
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re
    Merci beaucoup pour vos participations, j'espère que tout ce travail ne restera pas sans utilité, pour ma part je vais bien le conserver au chaud.
    ben non je serais le premier a l'utiliser
    combien de discussion sur le sujet des espaces intempestif (ou pas) il y a eu j'en ai vu quelques une
    je dois reconnaitre que ce genre d'exercice me plait beaucoup non pas pour réinventé la roue mais l'exercice lui même est intéressant

    en tout cas bravo a ryu lui c'est les formules moi c'est VB(A)

    ryu si le cœur t'en dit
    tu pourrais chercher le moyen de faire le trim en une seule etape

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Case "TRIM": .Value = Evaluate("IF(ISTEXT(" & Addr & "),MID(" & Addr & ",FIND(MID(TRIM(" & Addr & "),1,2)," & Addr & ",1),LEN(" & Addr & ")),REPT(" & Addr & ",1))")
                R = Evaluate("IF(ISTEXT(" & Addr & "),MID(" & Addr & ",1,FIND(TRIM(RIGHT(SUBSTITUTE(TRIM(" & Addr & "), "" "", REPT("" "", 100)), 100))," & Addr & ",1)+LEN(TRIM(RIGHT(SUBSTITUTE(TRIM(" & Addr & "), "" "", REPT("" "", 100)), 100)))-1),REPT(" & Addr & ",1))")
    la se serait l'apothéose
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  9. #89
    Expert confirmé
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Points : 4 174
    Points
    4 174
    Par défaut
    Patrick

    j'ai pas fini d'arranger mon code, mais si tu mets LTRIM (LT) et RT (RTRIM) à True, tu as le TRIM :

    Function ModifyTxtProperties(ByRef Rng As Range, Optional Param As Variant = Empty, Optional LT As Boolean, Optional RT As Boolean, Optional CarSpe As Variant = Empty, Optional SuppCarSpe As Variant = Empty)
    -------------------------------------->
    RANGE ||| ---> ("TRIM", "UPPER", "LOWER", "PROPER") ||| ------> LTRIM ||| -----> RTRIM ||| -----> REMPLACER ANCIEN CARATERES (SPECIAUX) ||| -----> PAR LES NOUVEAUX CARACTERES

    j'ai pas envie d'avoir une formule interminale …

    Mais bon c'est simple tu commence par la manip/formule du LTrim pour ensuite faire le reste avec la formule du RTrim

    Alors oui dans mon code tu as qq options mais cela permet de mixer les modifications à faire …
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre en n'oubliant pas d'indiquer qu'elle est la solution finale choisie

  10. #90
    Membre expert
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 267
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2 267
    Points : 3 663
    Points
    3 663
    Par défaut
    Bonjour,

    il est malin comme un singe ton collègue ;-)
    eric

  11. #91
    Expert confirmé
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Points : 4 174
    Points
    4 174
    Par défaut
    Éric,

    Il es est surtout habitué aux formules, mais pas du tout à vba.

    @Patrick
    en tout cas bravo a ryu lui c'est les formules moi c'est VB(A)
    Ben alors Patrick, j’ai qd même proposé vba + formules
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre en n'oubliant pas d'indiquer qu'elle est la solution finale choisie

  12. #92
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re
    si tu veux

    je parlais de VBA pur 'index,transpose,join,rtrim et le clou regex et toujours sans boucle et sans formule
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

+ Répondre à la discussion
Cette discussion est résolue.
Page 5 sur 5 PremièrePremière 12345

Discussions similaires

  1. format nom propre access 2000
    Par merocean dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 16/04/2010, 14h27
  2. [A-03] Mise en format Nom Propre dans un état
    Par merocean dans le forum IHM
    Réponses: 8
    Dernier message: 24/01/2009, 20h24
  3. dataView filtre et format nom de colonne
    Par laville dans le forum C#
    Réponses: 1
    Dernier message: 18/01/2008, 13h06
  4. exp file= format nom de fichier
    Par cdu dans le forum Import/Export
    Réponses: 4
    Dernier message: 03/03/2006, 11h01
  5. Nombre de colonnes avec le nom de la table
    Par benji41 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 10/07/2005, 20h17

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