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 :

double condition et somme


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Inscrit en
    Mars 2008
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 69
    Par défaut double condition et somme
    RE à tous!!

    Encore un petit souci m'emmène!!!

    Voilà en fait je réalise une macro qui devrait servir à effectuer une somme sous 2 conditions

    En clair si dans la colonne 13 la valeur est "client" et que dans la colonne 24 la valeur est "payé" alors on fait la somme

    -des lignes de la colonne 16 qu'on mettre sur une autre feuille en .cells(6,3)
    -des lignes de la colonne 20 qu'on mettre sur une autre feuille en .cells(6,4)

    A l'heure actuelle la macro n'effectue pas une somme correcte




    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
     
    Dim c As Long, a As Long, b As Long, t As Long
    Dim Somme As Long, 
    Dim Som As Long, 
    Dim toto As String, titi As String
    Dim d
     
     
    Somme = 0
    Som = 0
     
     
    d = "avril" & Format(Date, "yyyy")
     
     
      If FeuilleExiste(ThisWorkbook, d) Then 
     
     
        For i = 5 To Sheets(d).Cells(Rows.Count, 13).End(xlUp).Row
          For j = 5 To Sheets(d).Cells(Rows.Count, 24).End(xlUp).Row
     
       toto = Sheets(d).Cells(i, 13).Value
       titi = Sheets(d).Cells(i, 24).Value
     
     
                 With Sheets(d)
                 For b = 5 To 500 '.Cells(Rows.Count, 13).End(xlUp).Row
     
                         If toto = Client And titi = Closed Then
     
                        Som = Som + .Cells(b, 16).Value
                        Somme = Somme + .Cells(b, 20).Value
                        End If
     
                    Next b
     
     
     
     
     
       With Sheets("Récap")
     
            .Cells(6, 3) = Somme
             .Cells(6, 4) = Som
    End With
     
    Next j
    Next i
    End With
    End If
     
    End Sub

    Quelqu'un pourrait me donner un coup de main?
    Merci

  2. #2
    Membre éclairé Avatar de zandru
    Homme Profil pro
    Ingénieur conception mécanique
    Inscrit en
    Mars 2008
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur conception mécanique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2008
    Messages : 507
    Par défaut
    Bonjour,
    A mon avis le problème vient du fait que tu as imbriqué deux "with".
    je pense que tu devrais fermer le premier avant d'ouvrir le deuxième...

    et aussi écrit toto="client"
    et titi="closed"

  3. #3
    Membre confirmé
    Femme Profil pro
    Inscrit en
    Mars 2008
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 69
    Par défaut
    Salut,

    J'ai déjà fait ce test

    Quand je ne les imbrique pas la somme se fait mais elle est fausse
    Et quand je les imbrique il fait pas du tout la somme!!!!


    Et pareil pour les " " j'ai essayé avec et sans.....
    Alors je sais pas quoi faire

  4. #4
    Membre éclairé Avatar de zandru
    Homme Profil pro
    Ingénieur conception mécanique
    Inscrit en
    Mars 2008
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur conception mécanique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2008
    Messages : 507
    Par défaut
    pour comparer des variable de type string, essait la fonction strcomp(string1,string2,vbTextCompare) qui renvoi 0 si les deux string passés en paramétre sont égaux.

  5. #5
    Membre confirmé
    Femme Profil pro
    Inscrit en
    Mars 2008
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 69
    Par défaut
    Je ne connai pas cette fontcion et j'aimerais avoir un code assez simple qui pourra etre compris par tous le monde sachant que je ne suis pas une très grande programmatrice tu vois

    Tu n'a pas une autre solution à me proposer parce que je vois pas vraiment ce qu'il ya d'incorect dans mon code pour qu'il me renvoie toujous 0 en résultat de chacune des 2 sommes....

  6. #6
    Membre éclairé Avatar de zandru
    Homme Profil pro
    Ingénieur conception mécanique
    Inscrit en
    Mars 2008
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur conception mécanique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2008
    Messages : 507
    Par défaut
    il renvoi toujours zero car pour lui la condition de ton if est toujours fausse
    essait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    If StrComp(toto, "Client", vbTextCompare)=0 And StrComp(titi, "Closed", vbTextCompare)=0 Then
        Som = Som + .Cells(b, 16).Value
        Somme = Somme + .Cells(b, 20).Value
    End If
    et aussi positionne ton curseur sur strcomp et [F1]

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

Discussions similaires

  1. [Toutes versions] Somme à double conditions
    Par mk1122 dans le forum Excel
    Réponses: 3
    Dernier message: 28/12/2012, 10h33
  2. [XL-2003] somme double condition
    Par goldfinger13 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 20/02/2012, 10h29
  3. probleme somme avec double conditions
    Par semas dans le forum Macros et VBA Excel
    Réponses: 17
    Dernier message: 04/09/2008, 16h45
  4. Requète, condition et somme
    Par Sendo dans le forum Access
    Réponses: 4
    Dernier message: 29/09/2005, 14h10

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