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 :

SommeProd d'une colonne en VBA


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de BERRACHED SAID
    Inscrit en
    Janvier 2009
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 64

    Informations forums :
    Inscription : Janvier 2009
    Messages : 192
    Par défaut SommeProd d'une colonne en VBA
    Bonjour le Forum et bonne journée

    je voudrais obtenir la somme total des règlements opérer par date se trouvant dans la feuil2 nommé BD puis transcrire le résultat dans la feuil10 nommé Recap

    j'ai mis au point se petit bout de code mais il fonctionne pas j'attends vos précieuses aides et merci d'avance.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub Total()
    Dim Plage1 As Range, Plage2 As Range, Resultat As Integer
    Dim Chaine As String
     
    Chaine = CDate(UserForm10.TextBox1.Value)
    Set Plage1 = Feuil2.Range("A2:A" & Range("A" & Rows.Count).End(xlUp).Row)
    Set Plage2 = Feuil2.Range("F2:F" & Range("F" & Rows.Count).End(xlUp).Row)
    'Resultat = Evaluate("SUM((" & Plage1.Address & "=" & Plage2.Address & ")*1)")
    'Range("C1") = Evaluate("SumProduct(" & Plage1 & "*(" & Plage2 & "=""" & Chaine & """))")
    Resultat = Evaluate("SumProduct(" & Plage1.Address & "*(" & Plage2.Address & "=""" & Chaine & """))")
    Feuil10.Range("C10") = Resultat
    'MsgBox Resultat
    End Sub

    Bonne journée

  2. #2
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    En dehors du fait qu'il y a plusieurs erreurs dans ton code (il faut utiliser Worksheets() pour désigner un onglet), il vaut mieux éviter, d'une manière générale, de reproduire en macro les méthodes utilisées en fonctions. Les méthodes et procédures sont complètement différentes.

    Je ne comprends pas très bien ce qu'est supposée faire ta macro mais je pense que celle ci-dessous devrait convenir.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub Total()
       Dim Ligne as Integer
       Dim Chaine As String
     
       Chaine = CDate(UserForm10.TextBox1.Value)
     
       With Worksheet("Feuil2")
          Feuil10.Range("C10") = 0
          For Ligne = 2 to .cells(Rows.Count,1).End(xlUp).Row
              If .Cells(Ligne,6)=Chaine then Feuil10.Range("C10") = Feuil10.Range("C10") + .Cells(Ligne,1)
          Next Ligne
       End With
     
    End Sub
    J'ai laissé le UserForm pour renseigner Chaine mais je ne pense pas que ce soit approprié.

  3. #3
    Membre confirmé Avatar de BERRACHED SAID
    Inscrit en
    Janvier 2009
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 64

    Informations forums :
    Inscription : Janvier 2009
    Messages : 192
    Par défaut
    merci menhir

    j'ai essayé le code mais il me donne 0 pas de somme, mais je tiens a vous préciser que dans la feuil2 "BD"

    la colonne A2:A c'est celle des dates
    la colonne F2:F Cest celle des montant qu'il faut totaliser

    merci encore une fois

  4. #4
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par BERRACHED SAID Voir le message
    j'ai essayé le code mais il me donne 0 pas de somme, mais je tiens a vous préciser que dans la feuil2 "BD"
    Si la feuille où se trouve tes données s'appelle BD alors remplace Feuil2 par BD dans la macro.

    la colonne A2:A c'est celle des dates
    la colonne F2:F Cest celle des montant qu'il faut totaliser
    Dans la macro, tu changes "Ligne,1" par "Ligne,6" et réciproquement.

  5. #5
    Membre confirmé Avatar de BERRACHED SAID
    Inscrit en
    Janvier 2009
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 64

    Informations forums :
    Inscription : Janvier 2009
    Messages : 192
    Par défaut
    Merci Menhir

    impeccable mon cher ami très très bien

    bonne journée

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

Discussions similaires

  1. Filtrer une colonne en VBA grâce aux checkbox
    Par kleenex man dans le forum Langages de programmation
    Réponses: 0
    Dernier message: 26/06/2012, 21h10
  2. [XL-2003] Cumul d'une colonne en VBA
    Par HERBINE dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 20/09/2011, 08h35
  3. [XL-2007] Calculer la moyenne d'une colonne en VBA. Fonction average?
    Par JessieCoutas dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 18/08/2009, 10h15
  4. [XL-2000] Dernière valeur d'une colonne (sans VBA)
    Par Simon27 dans le forum Excel
    Réponses: 2
    Dernier message: 25/06/2009, 17h57
  5. comment modifier le nom d'une colonne via VBA?
    Par Invité dans le forum Access
    Réponses: 6
    Dernier message: 24/11/2005, 15h36

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