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 :

Somme de nombres séparés par des étoiles


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2011
    Messages : 5
    Par défaut Somme de nombres séparés par des étoiles
    Bonjour,

    J'ai un tableau Excel avec des cases du type (3 exemples) :
    50*50
    100*550
    3.5*250

    Je souhaite sommer automatiquement ces nombres via une formule (ou un code VB) pour obtenir respectivement :
    100
    650
    253.5

    Bref, oui, je souhaite sommer des nombres d'une même case séparés par des étoiles. Quelqu'un aurait la solution ?
    Merci d'avance,

    UnLionBleu

  2. #2
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    Bonjour,

    Solution avec VBA
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim i As Long
     
    For i = 1 To Range("A:A").End(xlDown).Row
     
        Range("B" & i).FormulaLocal = "=" & Replace(Range("A" & i).Value, "*", "+")
     
    Next i

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2011
    Messages : 5
    Par défaut
    Bonjour,

    Tout d'abord merci, mais mes connaissances en VB étant ultra-limitées, je n'arrive pas à faire tourner ton code. Mon but serait de faire une fonction pour Excel. Du coup, le code ne devrait-il pas commencer par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub Fonction1 ()
    ' Ton code ....
    End sub
    J'ai essayé mais ça ne marche pas. Pourrais-tu me donner la procédure à faire pour créer cette fonction ?

    Merci encore.

  4. #4
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    Essai cette fonction. a copier dans un module

    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
    Function Fonc_Multiplication(Rg As Range) As Double
     
    Dim i As Long
    Dim Dbl As Double
    Dim dblTxt() As String
     
    dblTxt = Split(Rg.Value, "*")
     
    For i = 0 To UBound(dblTxt)
        Dbl = Dbl + dblTxt(i)
    Next i
     
    Fonc_Multiplication = Dbl
     
    End Function
    et a utiliser comme cela
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =Fonc_Multiplication(A1)

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2011
    Messages : 5
    Par défaut
    Re,

    VB c'est comme le piano : si on arrête, on régresse vite, mais quand on sait faire, ça deviens presque magique !

    Merci beaucoup, c'est parfait !!

  6. #6
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    Une petite variante, en mettant le délimitateur en variable

    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
    Function Fonc_Multiplication(Rg As Range, Delimitateur As String) As Double
     
    Dim i As Long
    Dim Dbl As Double
    Dim dblTxt() As String
     
    dblTxt = Split(Rg.Value, Delimitateur)
     
    For i = 0 To UBound(dblTxt)
        Dbl = Dbl + dblTxt(i)
    Next i
     
    Fonc_Multiplication = Dbl
     
    End Function
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =Fonc_Multiplication(A1;"*")

  7. #7
    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
    Une éventuelle autre proposition
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Function Som(Rng As Range) As Double
    Dim c As String
     
    c = Replace(Rng.Value, "*", "+")
    Som = Evaluate(c)
    End Function

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 26/04/2015, 06h45
  2. Réponses: 1
    Dernier message: 28/02/2015, 00h12
  3. Extraire nombres d'une chaîne de caractères séparés par des "/"
    Par olive1007 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 27/11/2014, 16h53
  4. [RegEx] Extraire des nombres séparés par des caractères spéciaux
    Par GouKen dans le forum Langage
    Réponses: 2
    Dernier message: 29/01/2008, 16h49
  5. [CSS] Termes séparé par des pointillées
    Par adiGuba dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 18/04/2006, 14h35

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