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 :

Collection, index et dates


Sujet :

Macros et VBA Excel

  1. #1
    Membre actif Avatar de crashtib
    Homme Profil pro
    Support technico-fonctionnel
    Inscrit en
    Avril 2009
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Support technico-fonctionnel
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2009
    Messages : 221
    Points : 204
    Points
    204
    Par défaut Collection, index et dates
    Bonjour,

    j'ai des collections d'objet. Je souhaite indexer cette collection à l'aide de trois paramètres de ces objets (NomTranche, DateDebut et Duree).

    donc lors de l'ajout, je fais la commande suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Demandes.Add NouvelleDemande, NouvelleDemande.NomTranche & Format(NouvelleDemande.DateDebut, "dd/mm/yyyy hh:nn") & Format(NouvelleDemande.DureeDemandee, "dd/mm/yyyy hh:nn")
    lorsque je souhaite retrouver un élément de cette collection à l'aide de son index, par exemple pour le supprimer, je fais donc

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Demandes.Remove NomTranche & Format(DateDebut, "dd/mm/yyyy hh:nn") & Format(DureeDemandee, "dd/mm/yyyy hh:nn")
    Il me dit que les arguments sont incorrects... me serais-je gourré au niveau du formatage des dates ou au niveau des arguments?

    Merci

  2. #2
    Membre confirmé
    Inscrit en
    Décembre 2003
    Messages
    434
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 434
    Points : 547
    Points
    547
    Par défaut
    Salut,

    Je ne connais pas le format d'heure hh:nn essaie avec hh:mm
    ++
    Minick

  3. #3
    Membre actif Avatar de crashtib
    Homme Profil pro
    Support technico-fonctionnel
    Inscrit en
    Avril 2009
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Support technico-fonctionnel
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2009
    Messages : 221
    Points : 204
    Points
    204
    Par défaut
    nn c'est pourles minutes, c'est ce que j'ai lu sur les tutos de ce site... parce que pour moi mm c'est le mois quoi

  4. #4
    Membre confirmé
    Inscrit en
    Décembre 2003
    Messages
    434
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 434
    Points : 547
    Points
    547
    Par défaut
    re,

    Peux -tu mettre un lien la dessus par ce que je suis curieux sur ce coup...

    Si j'ai bien compris NouvelleDemande est un type perso mais comment arrives-tu a l'ajouter a ta collection?

    Un peu plus de code permettrait de mieux comprendre je pense
    ++
    Minick

  5. #5
    Membre actif Avatar de crashtib
    Homme Profil pro
    Support technico-fonctionnel
    Inscrit en
    Avril 2009
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Support technico-fonctionnel
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2009
    Messages : 221
    Points : 204
    Points
    204
    Par défaut
    Alors, les liens : ici, .

    EN tout cas après expérimentations il semblerai que hh:mm ou hh/mm ou même hhmm est interprété en tant que heure heure:minute minute alors que dd/mm est interprété en tant que jour jour/mois mois, ce qui est bizarre.

    d'autres part je confirme que dans tous les cas nn est interprété comme minute, à tous les coups.

    bref, sinon, voici le code d'ajout, par exemple

    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
    Public Sub AjouterCollectionDemandes(ByVal NouvelleDemande As Demande)
        Dim NomProcApp As String   'Stockage de la procédure appelante
     
        NomProcApp = NomProc
        NomProc = "AjouterCollectionDemandes"  'Gestion des erreurs (procédure en cours)
     
        If Demandes Is Nothing Then Set Demandes = New Collection
     
        'Les index sont constitués de : nom de la tranche, date du début de la demande, durée demandée de la demande. Ces identifiants rendent chaque demande unique
        Demandes.Add NouvelleDemande, NouvelleDemande.NomTranche & Format(NouvelleDemande.DateDebut, "dd/mm/yyyy hh:nn") & Format(NouvelleDemande.DureeDemandee, "dd/mm/yyyy hh:nn")
     
     
     
    Sortie:
    ' Remettre la procédure appelante
        NomProc = NomProcApp
        Exit Sub
     
    End Sub
    après, quand j'essaie d'accéder à cette Demande via son index, comme par exemple dans cette sub :

    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
    Public Sub SupprimerCollectionDemandes(ByVal NomTranche As String, ByVal DateDebut As Date, ByVal DureeDemandee As Date)
        Dim NomProcApp As String   'Stockage de la procédure appelante
        Dim lol  As String
     
        NomProcApp = NomProc
        NomProc = "SupprimerCollectionDemandes"  'Gestion des erreurs (procédure en cours)
     
        Demandes.Remove NomTranche & Format(DateDebut, "dd/mm/yyyy hh:nn") & Format(DureeDemandee, "dd/mm/yyyy hh:nn")
     
     
    Sortie:
    ' Remettre la procédure appelante
        NomProc = NomProcApp
        Exit Sub
     
    End Sub
    il me crache que les arguments ne sont pas valides... je pense qu'il gueule surtout au niveau du référencement de l'index... quid?

  6. #6
    Membre confirmé
    Inscrit en
    Décembre 2003
    Messages
    434
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 434
    Points : 547
    Points
    547
    Par défaut
    re,

    Ben j'irai me coucher moins bete ce soir.
    Apres une petite lecture dans l'aide excel si m est precede de h m signifie minute sinon mois

    Pour ton probleme, je n'arrive pas a compiler ton code, il doit surement encore me manquer des trucs.
    A chaque fois il ne compile pas a cause de Demandes.Add NouvelleDemande, Nouv...
    ++
    Minick

  7. #7
    Membre actif Avatar de crashtib
    Homme Profil pro
    Support technico-fonctionnel
    Inscrit en
    Avril 2009
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Support technico-fonctionnel
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2009
    Messages : 221
    Points : 204
    Points
    204
    Par défaut
    Nouvelle demande est un objet de type Demande reçu en paramètre de la méthode responsable de son ajout dans la collection.

    La méthode ne sert juste qu'à faire un add avec les arguments qui vont bien pour indexer correctement le nouvel objet (les arguments étant nom, durée, date demande, constituant un trio discriminant)

    essayons de recentrer la question :

    pour ajouter un item dans une collection, c'est bien :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MaCollection.Add MonItem, IndexUniqueEnTantQueString
    ?

  8. #8
    Membre confirmé
    Inscrit en
    Décembre 2003
    Messages
    434
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 434
    Points : 547
    Points
    547
    Par défaut
    re,

    Oui, c'est bien la synthaxe.

    Apres plusieurs nouveaux tests, je n'ai rencontre aucun probleme de suppression
    d'item par la cle unique.

    Question bete, mais j'essaie de comprendre...
    Es-tu certain du contenu des variables DateDebut et DureeDemande (sous entendu est ce que tu as l'heure dans les dates)?
    Je ne parle pas de nomTranche car la cle ne tient apparemment pas compte de la casse.

    A te lire
    ++
    Minick

  9. #9
    Membre actif Avatar de crashtib
    Homme Profil pro
    Support technico-fonctionnel
    Inscrit en
    Avril 2009
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Support technico-fonctionnel
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2009
    Messages : 221
    Points : 204
    Points
    204
    Par défaut
    En effet, NomTranche ne doit pas poser de problème.

    Je pense qu'effectivement c'est durée et date qui posent problème, mais je ne connais aucun moyen de connaître leur contenu.

    Ni les espions ni un MsgBox ne me permettent de savoir la valeur de tels champs , sous entendu comment le système les traite. En effet, msgbox ne donne qu'une convertion en string.

    C'ets pour cela que j'utilise format(), et CDate(), mais quelque chose flanche

  10. #10
    Membre confirmé
    Inscrit en
    Décembre 2003
    Messages
    434
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 434
    Points : 547
    Points
    547
    Par défaut
    Je ne vois pas comment je peux t'aider...

    Essaie peut etre de supprimer les espace, / et : de la cle (sans conviction)...

    Sinon est ce que l'heure est significatif pour les demandes, si elle ne l'est pas essaie de l'occulter...
    ++
    Minick

  11. #11
    Membre actif Avatar de crashtib
    Homme Profil pro
    Support technico-fonctionnel
    Inscrit en
    Avril 2009
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Support technico-fonctionnel
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2009
    Messages : 221
    Points : 204
    Points
    204
    Par défaut
    Merci de ton aide. Après avoir imposé un format de date bien dur pour être sûr de pas être embêté par ça, je me suis rendu compte que ça me crache la même erreur quand j'essaie de remove un item dont l'index n'existe... pas.

    A problème idiot, solution stupide donc.

    merci beaucoup quand même

  12. #12
    Membre actif Avatar de crashtib
    Homme Profil pro
    Support technico-fonctionnel
    Inscrit en
    Avril 2009
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Support technico-fonctionnel
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2009
    Messages : 221
    Points : 204
    Points
    204
    Par défaut
    Je me permets de rouvrir ce thread à propos d'une problématique similaire.

    Comme cité ci-dessus j'indexe mes collections selon maintenant quatre critères : un string, deux dates et un string.

    J'aimerai savoir comment changer l'INDEX d'un item (dans le cadre d'un changement d'item)

    serait-ce un truc du genre collection.item(index).index = "nouvelindex" ou quelque chose comme ça?

    merci

  13. #13
    Membre confirmé
    Inscrit en
    Décembre 2003
    Messages
    434
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 434
    Points : 547
    Points
    547
    Par défaut
    Salut,

    Non ce n'est pas possible, a ma connaissance, on ne peux pas modifier un element existant.

    Tu dois le supprimer puis le recreer.
    ++
    Minick

Discussions similaires

  1. [VB]Binding Collect : pb modification date
    Par MITCH31 dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 26/02/2006, 12h32
  2. Index sur une colonne Date
    Par sjaeger dans le forum Oracle
    Réponses: 11
    Dernier message: 10/11/2005, 14h55
  3. Index sur des dates?
    Par nicovmd dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 30/06/2005, 14h20
  4. Filtre, Tri, Index, Date
    Par gibet_b dans le forum Bases de données
    Réponses: 2
    Dernier message: 12/07/2004, 16h30
  5. Tables paraodox ("Index out date") et controle sa
    Par belaid52 dans le forum Bases de données
    Réponses: 4
    Dernier message: 03/07/2004, 11h29

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