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

Excel Discussion :

Aide pour Extraction de valeurs et calcul


Sujet :

Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Février 2024
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Santé

    Informations forums :
    Inscription : Février 2024
    Messages : 15
    Points : 11
    Points
    11
    Par défaut Aide pour Extraction de valeurs et calcul
    Bonjour Tout le monde ,

    Petite aide : Est-il possible d'extraire facilement et en simultané d'additionner les chiffres de cette cellule ?

    A1 contient : 11 et 7 M et 2 ME

    J'aimerais que le total soit donc de 20.

    Merci pour votre aide,

    Vincent

  2. #2
    Membre averti Avatar de Nain porte koi
    Homme Profil pro
    a
    Inscrit en
    Novembre 2023
    Messages
    330
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : a

    Informations forums :
    Inscription : Novembre 2023
    Messages : 330
    Points : 446
    Points
    446
    Par défaut
    hello,

    un exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub test()
        Dim Nombres, Total As Integer, i
        Nombres = Split(Range("A1"), " ")
        For i = 0 To UBound(Nombres)
            If IsNumeric(Nombres(i)) Then Total = Total + Nombres(i)
        Next i
        MsgBox Total
    End Sub

  3. #3
    Membre à l'essai
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Février 2024
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Santé

    Informations forums :
    Inscription : Février 2024
    Messages : 15
    Points : 11
    Points
    11
    Par défaut
    Merci beaucoup, cela fonctionne parfaitement.
    Cependant j'aimerais que le résultat s'inscrive dans ma cellule B1, est ce possible ?
    Pour tout vous dire je ne pensais pas passer par un VBA car plus lourd à qualifier.
    Je souhaitais de base passer par une formule Excel, cependant je ne trouve pas de formule simple à utiliser

  4. #4
    Membre averti Avatar de Nain porte koi
    Homme Profil pro
    a
    Inscrit en
    Novembre 2023
    Messages
    330
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : a

    Informations forums :
    Inscription : Novembre 2023
    Messages : 330
    Points : 446
    Points
    446
    Par défaut
    à la place de MsgBox Total mettez Range("B1") = Total
    Je ne vois pas comment faire via des formules, à moins d'avoir des contraintes comme un nombre fixe de valeur et ou de texte défini

  5. #5
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 914
    Points : 28 897
    Points
    28 897
    Billets dans le blog
    53
    Par défaut
    Bonjour Jièl,
    Je ne vois pas comment faire via des formules, à moins d'avoir des contraintes comme un nombre fixe de valeur et ou de texte défini
    Avec les nouvelles fonctions d'Office365, on doit pouvoir réaliser cela mais je n'ai pas le temps de chercher pour l'instant sinon il suffit de transformer ta procédure Sub en Function et ainsi on peut l'utiliser dans Excel comme une fonction

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Function Extract(Text As String)
        Dim Nombres, Total As Integer, i
        Nombres = Split(Text, " ")
        For i = 0 To UBound(Nombres)
            If IsNumeric(Nombres(i)) Then Total = Total + Nombres(i)
        Next i
        Extract = Total
    End Function

  6. #6
    Membre averti Avatar de Nain porte koi
    Homme Profil pro
    a
    Inscrit en
    Novembre 2023
    Messages
    330
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : a

    Informations forums :
    Inscription : Novembre 2023
    Messages : 330
    Points : 446
    Points
    446
    Par défaut
    Hello Philippe,

    bonne idée la fonction.
    Si tu as un peu de temps je serais curieux de voir si c'est possible avec des formules, je fais toujours parti des A.M.I.S. (Anti Macros Inutilement Superfétatoire)

  7. #7
    Membre expert
    Homme Profil pro
    Formateur et développeur bureautique
    Inscrit en
    Mars 2007
    Messages
    1 476
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Formateur et développeur bureautique
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 476
    Points : 3 003
    Points
    3 003
    Par défaut
    Bonsoir

    J'avais (un peu) plus de temps que Philippe Tulliez (que je salue), voici donc ma proposition à mettre en B1.
    Cette formule ne fonctionne que sous 365.
    Je n'ai pas cherché à l'améliorer à partir du moment où elle a donné le bon résultat.

    =SOMME(SIERREUR(CNUM((FRACTIONNER.TEXTE(A1;" ")));0))

    Sur le principe, on sépare sur les espaces, puis on convertit en numérique.
    Le problème est qu'il reste des #Valeur qui empêche de faire la somme. D'où le SIERREUR qui renvoie des 0 dans ce cas.
    Puis on fait la SOMME.

    En espérant que cela aide

    Pierre Dumas

  8. #8
    Membre averti Avatar de Nain porte koi
    Homme Profil pro
    a
    Inscrit en
    Novembre 2023
    Messages
    330
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : a

    Informations forums :
    Inscription : Novembre 2023
    Messages : 330
    Points : 446
    Points
    446
    Par défaut
    Bien vu Pierre, j'avais oublié le FRACTIONNER.TEXTE, j'avais tenté avec une matricielle mais bof...
    Bienvenue dans le club des AMIS

  9. #9
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 914
    Points : 28 897
    Points
    28 897
    Billets dans le blog
    53
    Par défaut
    Bonjour Jièl, Pierre,
    Une autre solution =SOMME(FILTRE.XML("<t><s>" & SUBSTITUE(A1; " "; "</s><s>") & "</s></t>";"//s[number(.)=number(.)]"))

    Uniquement pour 365 ou en matricielle depuis 2013
    Et avec 365 on peut l'encapsuler dans la fonction LAMBDA et ensuite la nommer

    Pour la tester
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    =LAMBDA(texte;
      SOMME(
        FILTRE.XML(
          "<t><s>" & SUBSTITUE(texte; " "; "</s><s>") & "</s></t>";
          "//s[number(.)=number(.)]"
        )
      )
    )("11 7 M 2 ME")
    et ensuite dans le gestionnaire des noms et alors =SommeTexte(A1)

    Nom : 240418 LAMBDA Total des nombres contenu dans une cellule FILTRE_XML.png
Affichages : 106
Taille : 9,8 Ko

  10. #10
    Membre averti Avatar de Nain porte koi
    Homme Profil pro
    a
    Inscrit en
    Novembre 2023
    Messages
    330
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : a

    Informations forums :
    Inscription : Novembre 2023
    Messages : 330
    Points : 446
    Points
    446
    Par défaut
    Waouh...
    Ben celle là elle est balèze.
    Je n'ai jamais utilisé FILTRE.XML et je ne connaissais pas du tout la syntaxe.

    Bon, ben je vois que les AMIS sont toujours là

    Vincent A, vous avez l'embarras du choix

  11. #11
    Membre à l'essai
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Février 2024
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Santé

    Informations forums :
    Inscription : Février 2024
    Messages : 15
    Points : 11
    Points
    11
    Par défaut
    Il semblerait que je fasse également partie des A.M.I.S dans ce cas ahah
    Je vous remercie pour votre implication et bienveillance, comme toujours sur ce forum.
    Je ne cesse de progresser grâce à vous, et merci le problème est bien résolu

Discussions similaires

  1. Réponses: 6
    Dernier message: 25/10/2011, 15h52
  2. Aide pour un débutant formule de calcul
    Par oitsuki dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 15/06/2011, 00h54
  3. [RegEx] aide pour extraction de données
    Par Hotfirenet dans le forum Langage
    Réponses: 2
    Dernier message: 13/04/2008, 20h19
  4. [RegEx] Besoin d'aide pour extractions
    Par PoT_de_NuTeLLa dans le forum Langage
    Réponses: 4
    Dernier message: 25/05/2007, 12h51
  5. Réponses: 2
    Dernier message: 16/06/2006, 15h47

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