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 :

Boucle avec des conditions particulières


Sujet :

Macros et VBA Excel

Vue hybride

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

    Informations forums :
    Inscription : Mars 2008
    Messages : 23
    Par défaut Boucle avec des conditions particulières
    Bonjour,
    Je voudrais réaliser un programme qui permet de compter le nombre de commande dans une feuille excel. La particularité de ce programme est pour incrémenter le nombre de commande, il faut que celle-ci doive contenir au moins une référence définie dans une feuille excel :
    Les données de départ :

    Feuille commande contient les champs suivants :
    Num commande,
    Num référence,

    Une commande peut contenir de plusieurs références.

    Feuille références particulières :
    Contient les références particulières sur lesquelles on va se baser pour incrémenter le nombre de commande.
    Pour cella j’ai commencé par créer un tableau pour stocker les références de la feuille références.
    En suite je crois qu’ilfaut que je crée une boucle qui réalise le programme suivant :

    Tant que ma cellule « num commande.feuille commande » n’est pas vide alors
    Je compare la référence de la feuille commande avec les références de mon tableau
    Si oui Nombre de commande=Nombre de commande+1
    Sinon cellule suivante

    Le programme que j’ai rencontré est :
    J’ai 25 références particulières donc à chaque fois il faut que je vérifie 25 fois, et si une commande contient plusieurs références je vérifié toute les lignes (références) même si je trouve que la référence particulière existe dans la commande ce qui prend énormément de temps.
    Est-ce que vous connaissez une solution plus simple ??
    Merci pour votre aide.

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    633
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 633
    Par défaut
    Bonjour

    Essaye avec ce petit bout de code qui je l’espère fera ton bonheur même s’il faudra l’adapter un peu à tes besoins mais il est très rapide.

    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
    Sub test()
      Dim b As Integer, nb_commande As Integer
      Dim c As Range
     
      Worksheets("commande").Select
      'parcourir les lignes de la feuille commande
      For b = 2 To Cells(Rows.Count, 1).End(xlUp).Row
        'si la commande à une référence
        If Cells(b, 2) <> "" Then
          'rechercher dans la feuille références particulières si la référence existe
          'en supposant que les references sont rangées dans les cellules "b2:b26"
          With Worksheets("références particulières").Range("b2:b26")
            Set c = .Find(Cells(b, 2), LookIn:=xlValues, lookat:=xlWhole)
            'si oui on incremente le nombre de commande
            If Not c Is Nothing Then nb_commande = nb_commande + 1
          End With
        End If
      Next
    End Sub
    Lis bien les commentaires ça peut aider à comprendre.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 23
    Par défaut
    Merci beaucoup pour votre aide.

    J'ai juste une petie question, en faite je veux juste rajouter un parametre la date, c'est à dire, je veux savoir le nombre des commandes passées (tjrs avec les références particulières par mois).
    j'ai une table ou je découpe le mois par semaine donc :

    si la feuil.commande.date est >= date feuille.debut_semaine est < feuil.commande.date est >= date feuille.fin_semaine
    je compte pour les afficher après.
    Merci

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    633
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 633
    Par défaut
    j'ai une table ou je découpe le mois par semaine
    ou ce trouve cette table ? Dans une nouvelle feuille ?

    si la feuil.commande.date est >= date feuille.debut_semaine est < feuil.commande.date est >= date feuille.fin_semaine
    Peux tu être plus explicite car ce n’est pas très claire

    je compte pour les afficher après
    les afficher ou ?
    donc si j'ai bien suivi tu veux des résultats par semaine ?

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 23
    Par défaut
    table existe dans une feuille excel sous la forme
    colonne 1 mois
    colonne 2 debut de semaine
    colonne 3 fin de semaine
    ------------------------------------------------------

    si la feuil.commande.date est >= date feuille.debut_semaine est < feuil.commande.date est >= date feuille.fin_semaine
    --------------------------------------------------------
    en faite dans ce cas, je veux juste borner la recherche par semaine "que j'ai definie"
    et a la fin oui je veux afficher le resultat dans un tableau dans une feuille synthèse.

    je sais pas si je suis claire ou non?
    merci

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

Discussions similaires

  1. Boucle do while avec des conditions multiples
    Par UrSuS AmErIcAnUs dans le forum C
    Réponses: 4
    Dernier message: 19/06/2008, 16h13
  2. [ASE][T-SQL] Appel d'une sous-proc avec des conditions
    Par metheorn dans le forum Sybase
    Réponses: 1
    Dernier message: 19/05/2006, 18h38
  3. Faire une boucle avec des variables vides ?
    Par byloute dans le forum Linux
    Réponses: 5
    Dernier message: 23/02/2006, 09h33
  4. [DEBUTANT] sortir d'une boucle avec un touche particulière
    Par thibouille dans le forum Débuter
    Réponses: 4
    Dernier message: 25/10/2005, 06h44
  5. Probleme de boucle avec des processus sous UNIX
    Par sebastieng dans le forum POSIX
    Réponses: 6
    Dernier message: 15/10/2005, 18h57

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