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 :

Formule excel tableau [Toutes versions]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné Avatar de Kiouane
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2016
    Messages : 198
    Par défaut Formule excel tableau
    Bonjour,

    Je voudrais savoir s'il y a une formule qui va :

    Par exemple sur la colonne A j'ai des textes et sur la colonne B des valeurs.

    Je voudrais donc sommer les cellules de la colonne B si A contient un texte.

    Merci,

  2. #2
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut




    Bonjour,

    peut être via SOMME.SI ou SOMMEPROD mais comme ici c'est le forum VBA et non le forum Excel dédié aux formules de calculs !


    _______________________________________________________________________________________________________
    Je suis Paris, Charlie, Bruxelles, …

  3. #3
    Membre chevronné Avatar de Kiouane
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2016
    Messages : 198
    Par défaut
    Je l'ai mis ici au cas où il faudra passer par une macro.

  4. #4
    Membre Expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Par défaut
    +1 avec @Marc-L : Largement faisable en formule mais après tout dépends aussi de ton besoin ensuite.
    Mais si tu n'as que ça à traiter alors formule !

  5. #5
    Membre chevronné Avatar de Kiouane
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2016
    Messages : 198
    Par défaut
    Alors voilà j'ai essayé de créer ma propre fonction mais j'ai un bug

    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 Xsum(text as string, optional text2 as string)
     
    col = cells(4,8)
     
    for i =2 to 1000
     
    if range(i,col) like "*text*" or range(i,col) like "*text2" then
     
    c = c + range(i,(col+1))
     
    end if
     
    next i
     
    xsum = c
     
    end sub

  6. #6
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    exemple sur la ligne 1 à 14

    par formule :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SOMME.SI(A1:A14;"<>";B1:B14)
    par vba en calculant directement dans la procédure

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub SommeSi()
    MsgBox Application.WorksheetFunction.SumIf(Range("A1:A14"), "<>", Range("B1:B14"))
    End Sub
    par vba en inscrivant la formule dans la cellule C1

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("C1").Formula = "=SUMIF(A1:A14,""<>"",B1:B14)"

    j'épargne le coup du FormulaR1C1 ?

    EDIT : tu viens de préciser qu'il faut sommer en fonction d'un texte bien précis, ce qui change la formule, mais l'idée reste la même

    pour le mot "toto"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SOMME.SI(A1:A14;"toto";B1:B14)
    pour une série de mots écris de D1 à D10 avec le résultat en E1 à E10

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("E1").Resize(10, 1).FormulaR1C1 = "=SUMIF(R1C1:R14C1,RC[-1],R1C2:R14C2)"
    bref, y'a des tonnes de possibilités, tout dépend de ton contexte d'utilisation

  7. #7
    Membre chevronné Avatar de Kiouane
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2016
    Messages : 198
    Par défaut
    La formule suivante me correspondrait si je pouvais préciser autant de texte que je veux :

    Somme.si(A:A;"premiertexte" ou " deuxièmetexte" etc;B:B)

    Serait-ce possible ?

  8. #8
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Dans un seul SOMME.SI ce n'est pas possible.

    mais tu peux additionner des SOMME.SI !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Somme.si(A:A;"premiertexte";B:B) + Somme.si(A:A;" deuxièmetexte" etc;B:B)
    ou encore utiliser ma dernières proposition : tu écris l'ensemble des mots dans une colonne pour réaliser des SOMME.SI unitaires, et tu fais une SOMME en bas de la colonne


    Sinon, il faudra se tourner éventuellement vers SOMMEPROD ? Mais faut voir combien de mot tu dois chercher
    Par vba, il peut aussi être utile d'étudier la piste des filtres automatiques avec la fonction SOUS.TOTAL pour compter les lignes visibles

  9. #9
    Membre Expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Par défaut
    Quel est ce bug ?

    Concernant cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if range(i,col) like "*text*" or range(i,col) like "*text2" then
    Aucun intérêt de tester like "*text2" car like "*text*" aura déjà renvoyé VRAI => text2 c'est bien text* non ?!?

    Sinon, aucune déclaration de variable c'est la fête !

    Pour toi il y a quoi dans col ?

  10. #10
    Membre chevronné Avatar de Kiouane
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2016
    Messages : 198
    Par défaut
    Non j'ai par exemple dans une colonne on va dire plusieurs textes différents et je veux sommer les valeurs correspondantes aux textes que je veux qui sont dans la colonne suivante.

    Dans col j'ai la colonne où je cherche mes textes.

  11. #11
    Membre Expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Par défaut
    Citation Envoyé par Kiouane Voir le message
    Dans col j'ai la colonne où je cherche mes textes.
    Et bien non !!!
    Surement pas avec ce code :
    Ici col est un Variant et ce qu'il devient pourrait être assez incertain....
    Ici je dirais qu'il va prendre la prorpiété .Value de la Range.

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

Discussions similaires

  1. [VBA Excel] Tableau avec données du userform et de formules
    Par Viper7 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 28/06/2006, 13h29
  2. [VBA]Passer une variable dans une formule Excel
    Par David1974 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 27/01/2006, 16h52
  3. inséré des formule excel dans VB
    Par amel95140 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 28/12/2005, 17h21
  4. [EXCEL][VBA] Utilisation des formules Excel en VBA
    Par Amanck dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 27/12/2005, 15h08
  5. Access - Excel - Tableau
    Par ptitsoleil87 dans le forum Access
    Réponses: 1
    Dernier message: 08/12/2005, 15h43

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