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 :

VBA-E:Fonction SumIf en cascade


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2005
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 56
    Par défaut VBA-E:Fonction SumIf en cascade
    Re Bonjour ou bonsoir

    De nouveau, je fais appel à vous...
    Petit bug -> Erreur de compilation: incompatibilté de type en indiquant ma 2éme fonction SumIf.
    Est que je ne peux mettre 2 fonctions de suite ou...?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    'Boucle sur la collection DATE
    For z = 1 To Zero.Count
       'Boucle sur la collection REFERENCE
        For j = 1 To Un.Count
        'Effectue la somme en fonction du critère (SOMME.SI)
            Worksheets("Feuil2").Cells(j + 1, z + 1) = _
                Application.WorksheetFunction.sumIf( _
                Application.WorksheetFunction.sumIf( _
                Plage, Un(j), SommePlage), _
                Plage, Zero(z), DatePlage)
        Next j
    Next z
    Individuellement ça à l'air de fonction mais que je les regroupe...

  2. #2
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    peu-être qu'en décomposant ton code et en passant par des variables intermédiaires .. il sera plus lisible et l'erreur sera plus facile à cerner...

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2005
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 56
    Par défaut Re
    J'ai suivi ton petit conseil, et j'ai fait dans la la simplicité boucle If/EndIf et For/Next...Ca marche niquel
    Par contre, je trouve mon code un peu indigeste et barbare...Ca marche trés bien mais aprés si mes boucles se ralonge en testant 1000ref, j'ai peur pour le temps d'execution.
    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
    for z = 1 To Un.Count 'Teste toutes les reférences dans ma collection Référence
        For t = 1 To Zero.Count 'Teste toutes les reférences dans ma collection Date
            buffer = 0
            Worksheets("Feuil2").Cells(z + 1, t + 1) = 0
            For u = 1 To i 'teste toute ma bibliothéque contenant des reférences
            'à date d'échéance diverse
                If (Worksheets("Feuil1").Range("E" & u + 1) = Un(z)) _
                And (Worksheets("Feuil1").Range("k" & u + 1) = Zero(t)) Then
                    buffer = Worksheets("Feuil2").Cells(z + 1, t + 1)
                    Worksheets("Feuil2").Cells(z + 1, t + 1) = buffer + _
                    Worksheets("Feuil1").Range("I" & u + 1)
                End If
            Next u
        Next t
    Next z
    Si y a moyen de le comprimer, d'utiliser des requetes SQL...
    Toute aide est la bien venue...

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Pour utiliser du SQL avec Excel lie ce tuto de Silkyroad

    http://silkyroad.developpez.com/VBA/ClasseursFermes/

    Je l'ai testé en mettant mon fichier Excel comme destinataire, mais attention tes feuilles doivent être structurées comme des tables.

    Starec

  5. #5
    Membre confirmé
    Inscrit en
    Avril 2005
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 56
    Par défaut Re
    J'ai regardé avec attention le lien...
    C'est en effet trés interressant...Je pense que le RechercheV fera mon bonheur, par contre j'aimerais pour en combiner deux à la fois et la je calle.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Worksheets("Feuil2").Cells(z + 1, t + 1) = Application.WorksheetFunction.VLookup _
    (Un(t), Range("e2:k20"), 5)
    Dans ce cas là, il me fait la somme des valeurs qui sont dans la colonne 5 de ma matrice qd mon arg1=arg2, mais je voudrais mettre une condition supplémentaire arg3=arg4 comme un OU EXCLUSIF...

    Faire une somme pour un article déterminé & une date spécifiée

    Merci

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

Discussions similaires

  1. [VBA/Excel] Fonction open sous Excel 97
    Par nico01984 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 04/01/2006, 14h19
  2. [VBA EXCEL] Fonction Instr
    Par thulvar dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 03/01/2006, 14h43
  3. [VBA-E] Fonction "FIND"
    Par cinc dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 06/09/2005, 11h16
  4. [VBA-E] lien en VBA et fonction generatrice
    Par Smoke666 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 15/07/2004, 11h47
  5. [VBA-E] Fonction sum() dans une cellule
    Par Gonzo dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 16/12/2002, 10h18

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