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. #41
    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
    ok je vais voir de mon coté, je retravaille la fonction ...
    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. #42
    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
    ok il ne reste plus que rtrim a corriger
    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
    25
    Function ChangeAllCellpropertiesInRange(ByRef RnG As Range, prop As String)
        Dim R As Variant, Addr
        With RnG
            Addr = "'" & .Parent.Name & "'!" & .Address
            Select Case UCase(prop)
            Case "LOWER", "UPPER", "PROPER", "APPTRIM":
                prop = Replace(UCase(prop), "APPTRIM", "TRIM")
                R = Evaluate("IF(ISTEXT(" & Addr & ")," & UCase(prop) & "(" & Addr & "),REPT(" & Addr & ",1))")
            Case "LTRIM": R = Evaluate("IF(ISTEXT(" & Addr & "),MID(" & Addr & ",FIND(MID(TRIM(" & Addr & "),1,2)," & Addr & ",1),LEN(" & Addr & ")),REPT(" & Addr & ",1))")
            Case "RTRIM": 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))")
     
            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
     
    Sub test()
        Dim DL, RnG As Range
        DL = Cells(Rows.Count, 3).End(xlUp).Row
        Set RnG = Sheets(1).Range("C2:C" & DL)
        'RnG.Parent.Activate
        RnG.Value = ChangeAllCellpropertiesInRange(RnG, "rtrim")    'majuscule ou minuscule l'argument de propertie
    End Sub
    par contre sans activer la feuille NADA !!!!!
    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

  3. #43
    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
    Ah!!! je viens de remarquer quelque chose ryu

    quand je suis sur une autre feuille avec Addr ca modifie que la cells(1) de la RnG
    ca peut peut etre t'aiguiller sur la modif a faire dans ta formule

    Nom : demo3.gif
Affichages : 136
Taille : 252,3 Ko
    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. #44
    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,

    Juste une interrogation en passant.
    Quand je vois la longueur de la formule pour Rtrim, il faudra peut-être contrôler que ce ne soit pas plus lent que de poser la fonction seule suivi d'un .Value=.Value.
    eric

  5. #45
    Expert éminent sénior 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
    Points : 31 877
    Points
    31 877
    Par défaut
    Citation Envoyé par patricktoulon Voir le message
    re


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub test()
        Dim DL, RnG As Range
        DL = Sheets(1).Cells(Rows.Count, 3).End(xlUp).Row
        Set RnG = Sheets(1).Range("C2:C" & DL)
        'RnG.Parent.Activate
        RnG.Value = ChangeAllCellpropertiesInRange(RnG, "rtrim")    'majuscule ou minuscule l'argument de propertie
    End Sub
    par contre sans activer la feuille NADA !!!!!
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  6. #46
    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
    oui Mercatog
    plus précisément avec Addr dument construit quand on est pas sur la feuille concernée seule la cellule1 de la plage de référence est modifié (voir demo animée plus haut)

    testé sur 2007 et 2013
    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

  7. #47
    Expert éminent sénior 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
    Points : 31 877
    Points
    31 877
    Par défaut
    Re Patrick

    Sur ta démos, ta variable DL pointe sur la feuille active.

    Regardes ce que j'ai ajouté en rouge.
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  8. #48
    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
    OupsssTU A RAISON !!!
    la fatigue


    bon ben il ne reste plus que "Rtrim" a corriger et on aura tout bon pour:
    Ltrim
    Rtrim
    Trim
    Apptrim(equivalent de application.trim pour VBA)
    LOWER
    UPPER
    PROPER

    je suis entrain d'en étudier d'autre
    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. #49
    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,

    C'est ce que j'ai constaté dans mes 1er tests, je n'ai eu que RTrim comme problème, là pas fini, je re dès que je peux
    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. #50
    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
    oui exact seul rtrim pose problème avec Addr dynamique avec ou pas et le sheets concerné soit actif ou pas
    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

  11. #51
    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
    oui exact seul rtrim pose problème avec Addr dynamique avec ou pas et le sheets concerné soit actif ou pas
    Ha non, comme je l'ai fait, le RTRIM, avec la Formule initiale (pas de ADR) sur la feuille active, ça marche
    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. #52
    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
    oui mais le fait d'être limité ou obligé d'être sur le sheets concerné limite les possibilité d'exploit
    tu tiens le bon bout tu va m'en sortir une de chez pétaouchnoc et on pourra enfin finir l'écriture de la fonction chacun sa façon
    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

  13. #53
    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
    En Attendant :

    Voilà ou j'en suis (je préfère que ça soit la fonction qui fasse le travaille :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub test()
    Dim Rng As Range, DL As Long, T!
        T = Timer
        With Sheets("Feuil2")
            DL = .Cells(.Rows.Count, 3).End(xlUp).Row
            Set Rng = .Range("C2:C" & DL)
        End With
        TULP_LT_RT_CellsInRange Rng, , , True ' => Range, Array(0, 1, 2, 3) (=>pour Param :"TRIM", "UPPER", "LOWER", "PROPER"), True, True
        MsgBox Format(Timer - T, "0.000 s")
    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
    14
    15
    16
    17
    18
    Function TULP_LT_RT_CellsInRange(ByRef Rng As Range, Optional Param As Variant = Empty, Optional LT As Boolean, Optional RT As Boolean)
    Dim Adr As String
        ChangeTxT = Array("TRIM", "UPPER", "LOWER", "PROPER")
        Application.ScreenUpdating = False
        With Rng
            Adr = "'" & .Parent.Name & "'!" & .Address
            If Not IsEmpty(Param) Then
                For i = LBound(Param) To UBound(Param)
                    .Value = Evaluate("IF(ISTEXT(" & Adr & ")," & ChangeTxT(Param(i)) & "(" & Adr & "),REPT(" & Adr & ",1))")
                Next
            End If
     
            If LT Then .Value = Evaluate("IF(ISTEXT(" & Adr & "),MID(" & Adr & ",FIND(MID(TRIM(" & Adr & "),1,2)," & Adr & ",1),LEN(" & Adr & ")),REPT(" & Adr & ",1))")
            If RT Then .Value = Evaluate("IF(ISTEXT(" & Adr & "),MID(" & Adr & ",1,FIND(TRIM(RIGHT(SUBSTITUTE(TRIM(" & Adr & "), "" "", REPT("" "", 100)), 100))," & Adr & ",1)+LEN(TRIM(RIGHT(SUBSTITUTE(TRIM(" & Adr & "), "" "", REPT("" "", 100)), 100)))-1),REPT(" & Adr & ",1))")
     
        End With
        Application.ScreenUpdating = True
    End Function
    Je cherche une formule me permettant soit de compter le nombre d'espace en fin de texte, soit une formule me permettant de faire comme StrReverse (à condition qu'elle ne soit pas trop compliquée) ... si on peut trouver se serait pas mal
    fais signe si tu trouves
    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

  14. #54
    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
    je ne sais pas si ca peut t'aider mais la fonction trouve peut te donner l'emplacement du dernier " " a partir de la droite
    pour cela il te suffit de couper la chaine en 2

    exemple en A1 j'ai '***AAAAAAA*****" (les Etoiles représentent des espaces )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =TROUVE(" ";A1;NBCAR(A1)/2)
    )
    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

  15. #55
    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
    non ça m'aide pas car qd il y a plusieurs mots, c'est faux :

    vois sur quoi je teste : "***djio****jioj*dfsdf f9****dfidoijf*****"
    vois tu tous les espaces, he oui je choisi l’Extrême (pour les espaces) afin que le résultat soit bon à chaque fois

    Edit : j'ai trouvé cette formule pour le nombre d'espace à gauche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =TROUVE(GAUCHE(SUPPRESPACE(C19); 1); C19)-1
    faudrait trouvé pour la droite sa simplifierai les formules

    Edit 2 : le problème c'est que les formules travaillent de gauche à droite et non de droite à gauche d'où la complication (contrairement à vba)
    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

  16. #56
    Expert éminent sénior 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
    Points : 31 877
    Points
    31 877
    Par défaut
    Juste on peut utiliser aussi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Adr = .Address(External:=True)
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  17. #57
    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
    Bonjour à tous,

    @mercatog : , par contre je ne pense pas l’utiliser pour l’instant, me focalisant surtout sur la problématique de la formule du RTrim …

    Concernant la recherche de formule :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =STXT(A1;{10;9;8;7;6;5;4;3;2;1};1)
    Y a-t-il moyen de faire une formule qui marche ressemblant dans le principe à celle du dessus,
    dont le 2ème argument serait qq chose du style NBCAR(A1) vers 1, ou autre y ressemblant
    afin de faire comme un StrReverse de vba ??
    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

  18. #58
    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
    Bonjour à tous,
    Eh les gars vous dormez de temps en temps

    Est-ce que cette formule pourrez faire l'affaire ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SOMME(NBCAR(A2),NBCAR(A3),NBCAR(A4))
    Il y a tellement de possibilités avec NBCAR :
    Imaginons le libellé suivant en cellule A1 : Les olives du jardin

    La formule NBCAR(A1) renvoie 20 (17 lettres + 3 espaces = 20 caractères)


    Associée à d'autres fonctions, NBCAR() permet de calculer par exemple:

    • Le nombre d'espaces:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =NBCAR(A1)-NBCAR(SUBSTITUE(A1;" ";""))
    Dans cette formule, la fonction SUBSTITUE() remplace les espaces par du vide, encadrée par NBCAR() nous avons donc le nombre de caractères de la chaîne une fois les espaces éliminés, il suffit de retrancher ce résultat du nombre de caractères total de la chaîne pour avoir par différence le nombre d'espaces.


    • Le nombre de mots:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =NBCAR(A1)-NBCAR(SUBSTITUE(A1;" ";""))+1

    • ou encore le nombre de caractères différents de la lettre i:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =NBCAR(SUBSTITUE(A1;"i";""))


    Il est également possible de calculer le nombre de caractères d'une plage de cellules


    Il faut pour cela utiliser une formule matricielle (donc validée simultanément par les touches MAJ+CTRL+ENTER)


    • Par exemple, nous avons en A1 le libellé Pommes et en A2 le libellé Poires:

    La formule pour compter le nombre de caractères en A1 et A2 est :


    • Pour compter le nombre de fois où apparaît la lettre o minuscule:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {=SOMME(NBCAR(A1:A2)-NBCAR(SUBSTITUE(A1:A2;"o";"")))}
    Il conviendrait de diviser ce total par le nombre de caractères cherchés, mais NBCAR("o") étant égal à 1 cette opération est inutile.


    • Ou encore le nombre de fois où apparaît la chaîne de caractères Po :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {=SOMME(NBCAR(A1:A2)-NBCAR(SUBSTITUE(A1:A2;"Po";"")))/NBCAR("Po")}
    Le savoir est le plus intellectuel des virus, dommage qu'il ne soit pas très contagieux.
    Adrien Verschaere
    Étudiant, France, 1997

  19. #59
    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
    Bonjour Vba14,

    Non c’est pas ok, le but est de pourvoir connaître le nombre d’espaces en fin de texte dans une cellule ou d’inverser le texte comme un StrReverse en vba, mais tout ça en formule …
    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

  20. #60
    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 à tous,

    A2 : chaine
    B2 : caractère
    C2 : start (=NBCAR(A2) si depuis fin de chaine)

    InstrRev(A2,B2,C2) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =MAX(SI(STXT(A2;LIGNE(INDIRECT("$1:$"&C2));1)=B2;LIGNE(INDIRECT("$1:$"&C2))))
    Position dernier caractère <> " " :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =MAX(SI(STXT(A2;LIGNE(INDIRECT("$1:$"&NBCAR(A2)));1)<>" ";LIGNE(INDIRECT("$1:$"&NBCAR(A2)))))
    Toutes deux matricielles.
    eric

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

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