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 :

problème avec triple boucles!


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2011
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2011
    Messages : 115
    Par défaut problème avec triple boucles!
    Bonjour,
    deux problème avec ce codes, (j'applique mes filtre sur des dates!)1)- la valeure qu'il retourne est toujours 1, j'ai essayé de changé les données (dates) avec des strings est il retournes les vraies valeures.
    2)- quand il retourne les vraies valeures, il éffaces l'ancien résultat dans la même cellule, il recompte dans la même cellule plusieurs fois. Ici je pense que c'est un problème de boucles.
    Merci.

    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 i = 2 To 25
    For j = 5 To 8
     
    For c = 7 To 24
     
        maplage.AutoFilter Field:=c, Criteria1:='Sheets("Calcul").Cells(i,1)  'Sheets("Calcul").Cells(j, 1)
     
    Next c
     
    Sheets("Calcul").Cells(j, i) = Sheets("Feuil1").Range("A2", Sheets("Feuil1").Range("A65536").End(xlUp)).SpecialCells(xlCellTypeVisible).Cells.Count
    Sheets("Feuil1").ShowAllData
     
    Next j
    Next i

  2. #2
    Membre Expert Avatar de ZebreLoup
    Homme Profil pro
    Ingénieur Financier
    Inscrit en
    Mars 2010
    Messages
    994
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Financier
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 994
    Par défaut
    Explique-nous ce que tu veux faire exactement, parce qu'outre les problèmes de la macro, j'ai l'impression qu'il y a un gros problème de conception ici.
    Je pense qu'avec des NB.SI ou ses équivalents VBA, ça serait 10 fois plus simple.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2011
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2011
    Messages : 115
    Par défaut
    Soit F1 c'est Feuil1 et F2 c'est Feuil2
    1.1) filtrer sur la colonne 7 dans F1 selon le critère ce trouvant dans la cellule (5,1). compter le nombre de cellule non vide dans la plage F1.(A2:A65536) et retourner le résultat dans la cellule F2.cells(5,2)
    1.2) filtrer sur la colonne 8 dans F1 selon le critère ce trouvant dans la cellule (5,1). compter le nombre de cellule non vide dans la plage F1.(A2:A65536) et retourner le résultat dans la cellule F2.cells(5,3)
    1.3) 1.4)...etc en augmente à chauqe fois le numéro de colonne dans laquelle on filtre ainsi que le numéro de colonne dans laquelle on veux le résultat.

    2.1) cette fois on change le critère: filtrer sur la colonne 7 dans F1 selon le critère ce trouvant dans la cellule (6,1). compter le nombre de cellule non vide dans la plage F1.(A2:A65536) et retourner le résultat dans la cellule F2.cells(6,2)
    2.2) filtrer sur la colonne 8 dans F1 selon le critère ce trouvant dans la cellule (6,1). compter le nombre de cellule non vide dans la plage F1.(A2:A65536) et retourner le résultat dans la cellule F2.cells(6,3)

    Voici un résumé:

    Colonne de filtre : F1.7 critère : F2.cells(5,1) résultat : F2.cells(5,2)
    Colonne de filtre : F1.8 critère : F2.cells(5,1) résultat : F2.cells(5,3)
    Colonne de filtre : F1.9 critère : F2.cells(5,1) résultat : F2.cells(5,4)

    Colonne de filtre : F1.7 critère : F2.cells(6,1) résultat : F2.cells(5,2)
    Colonne de filtre : F1.8 critère : F2.cells(6,1) résultat : F2.cells(5,3)
    Colonne de filtre : F1.9 critère : F2.cells(6,1) résultat : F2.cells(5,4)

    Colonne de filtre : F1.7 critère : F2.cells(7,1) résultat : F2.cells(5,2)
    Colonne de filtre : F1.8 critère : F2.cells(7,1) résultat : F2.cells(5,3)
    Colonne de filtre : F1.9 critère : F2.cells(7,1) résultat : F2.cells(5,4)

  4. #4
    Membre Expert Avatar de ZebreLoup
    Homme Profil pro
    Ingénieur Financier
    Inscrit en
    Mars 2010
    Messages
    994
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Financier
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 994
    Par défaut
    Quand je disais ce que tu voulais faire, je ne parlais pas de ce que faisais ta macro, car ça il suffisait de la lire.
    Ce que je voulais dire, c'est que j'ai l'impression que tu prends le marteau pilon pour écraser une mouche, avec en plus des risques d'erreurs bien supérieurs. Je te propose autre chose dès que j'ai un moment.

    Tu fais en B5
    Et tu déroules cette formule sur le nombre de lignes et de colonnes que tu veux.

    Parce que sinon, tu peux aussi, copier les valeurs dans un autre classeur, le sauver en csv, l'ouvrir dans une base de donnée, l'encoder avec un algorithme de cryptage, le sérialiser en binaire, l'envoyer en ftp, lui faire un café, et demander à une personne de bonne volonté de compter manuellement le nombre d'occurence de chaque valeur dans chaque colonne... Ca va marcher aussi

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2011
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2011
    Messages : 115
    Par défaut
    Rebonjour.
    Je ne peux pas utiliser cette fonction pour deux raisons entre autre:
    • cette fonction alourdi beaucoup l'exécution de la fonctio qui dans un fichier qui contient 38501 lignes et 147 colonnes!.
    [*]Aussi avec une macro le calcul se fait seulement si on l'exécute![/LIST]
    Aurriez-vous une meilleurs solutions RAPIDE d'exécution?
    D'ailleur c'est pour la rapidité du calcul que je veux utiliser une boucle sur un filtre!

  6. #6
    Membre Expert Avatar de ZebreLoup
    Homme Profil pro
    Ingénieur Financier
    Inscrit en
    Mars 2010
    Messages
    994
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Financier
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 994
    Par défaut
    Dans ce cas, tu utilises exactement de la même manière
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WorksheetFunction.CountIf

Discussions similaires

  1. Réponses: 2
    Dernier message: 29/08/2006, 13h59
  2. Problème avec une boucle for
    Par cisse18 dans le forum Général JavaScript
    Réponses: 20
    Dernier message: 29/03/2006, 16h50
  3. [MySQL] Problème avec une boucle
    Par yayacameleon dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 09/03/2006, 09h53
  4. [JMeter] Problème avec la boucle infinie pour les tests
    Par zegreg dans le forum Tests et Performance
    Réponses: 1
    Dernier message: 05/10/2005, 11h41
  5. [Tableaux] Problème avec les boucles
    Par speed_man002 dans le forum Langage
    Réponses: 4
    Dernier message: 21/09/2005, 15h42

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