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 :

Utiliser l'objet collection


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2008
    Messages : 63
    Points : 34
    Points
    34
    Par défaut Utiliser l'objet collection
    bonjour,

    je veux utiliser une collection dans un module de class.

    j'ai le tuto sur les modules de class mais je cherche a savoir comment je peux gere ca avec une collection.

    donc s'il y a un tuto dessus, je suis preneur.


    explication de ma recherche :

    je vais recupere plusieur info liee par une "ref" sur plusieur fichier excel.
    Et je veux merttre ces info dans une collection pour pouvoir les interogers avec un index qui sera ma "ref".

    deja suis je sur la bonne piste et si on peux me donner les info sur la collection, je reviendrais avec des questions plus percises.

    merci d'avance
    Via

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2008
    Messages : 63
    Points : 34
    Points
    34
    Par défaut
    voila la premier difficulter que je rencontre dans mes test

    je vous donne les codes des modules de classe juste apres (ils sont issus de ma formation VBA et ils fonctionnent):

    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 testeurDeClasseFichiers_Fichier_EXE()
        Dim x As clsFichiers
        Set x = New clsFichiers
        Dim PrsFichier As String
        
        
        PrsFichier = Dir("c:\windows\")
    
        Do While PrsFichier <> ""
            x.Ajouter "c:\windows\" & PrsFichier
            '!!!!! pourquoi dir me renvoi la valeur ""!!!!!!
            PrsFichier = Dir()
            MsgBox PrsFichier
        'boucler
        Loop
    
        MsgBox "Nombre de fichier : " & x.numberof()
        MsgBox x.Fichier(1).Taille
    End Sub
    Module de classe nomé : clsFichier
    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
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    Option Explicit
    'cette collection nous donne la taille, la date de création,l'heure de création,
    'le repertoire,le chemin d'acces a un fichier
    'elle nous donne aussi la posibilité de copier, deplacer
     
    Dim m_strPath As String
     
    Const Con_Error_FichierInexistant As Long = vbObjectError + 1
     
    Public Event Information(Message As String)
     
    '===========================================================
    ' Propriete en lecture seul
    '===========================================================
     
    Property Get Nom() As String
        'nom = prendre l'expression du milieu a partire du \
        'InStrRev donne la position du delimiteur
        RaiseEvent Information("vous avez demandé le nom du  fichier")
        Nom = Mid(m_strPath, InStrRev(m_strPath, "\") + 1)
    End Property
     
    Property Get Taille() As String
        Dim lngTaille As Long
        lngTaille = FileLen(m_strPath)
     
        Select Case lngTaille
                Case Is < 1024
                    Taille = lngTaille & " o"
                Case Is < 1024 ^ 2
                    Taille = Round(lngTaille / 1024, 2) & " Ko"
                Case Else
                    Taille = Round(lngTaille / 1024 ^ 2, 2) & " Mo"
        End Select
    End Property
    Property Get DatCreation() As Date
        'convertie en date la partie entiere de ce que me renvoi la fonction
        'exemple : date 4,75 => 4eme jour depuis 1/1/1900 et 0.75 d'une heure
        DatCreation = CDate(Int(FileDateTime(m_strPath)))
    End Property
    Property Get HeureCreation() As Date
        'date de création moins "ma" date de creation
        HeureCreation = FileDateTime(m_strPath) - Me.DatCreation
    End Property
     
    Property Get Repertoire() As String
        Repertoire = Left(m_strPath, InStrRev(m_strPath, "\") - 1)
    End Property
     
    '===========================================================
    ' Propriete en ecriture et lecture de donnée
    '===========================================================
    Property Get CheminAccess() As String
        CheminAccess = m_strPath
    End Property
     
    Property Let CheminAccess(path As String)
    If Dir(path) = "" Then
        Err.Raise Con_Error_FichierInexistant, "CheminAccess", "il n'y a pas de fichier a l'emplacement :" & vbNewLine & path
    Else
        m_strPath = path
    End If
    End Property
     
    '===========================================================
    ' Methodes
    '===========================================================
     
    Sub Copier(destination)
        FileCopy m_strPath, destination
    End Sub
     
    Sub Deplacer(destination)
        Me.Copier destination
        Kill m_strPath
    End Sub
    Sub Supprimer(m_strPath)
        Kill m_strPath
    End Sub
    Module de classe nomé : clsFichiers
    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
    Option Explicit
    'permet de creer une collection de Fichier
    'Pour cela nous utilisons une collection de type ClsFichier
    'ce qui nous permet en une seul commande d'ajouter un fichier et toutes
    'les information qu'enregistre la collection ClsFichier
    Dim m_colFichiers As New Collection
    Function Ajouter(cheminAcces As String) As clsFichier
        Dim objFichier As clsFichier
        Set objFichier = New clsFichier
        objFichier.CheminAccess = cheminAcces
        m_colFichiers.Add objFichier
        Set Ajouter = objFichier
    End Function
    Function numberof() As Long
        numberof = m_colFichiers.Count
    End Function
    Sub Enlever(Index As Long)
        m_colFichiers.Remove Index
    End Sub
    Function Fichier(Index As Long) As clsFichier
       Set Fichier = m_colFichiers.Item(Index)
    End Function
    merci d'avance
    Via

Discussions similaires

  1. Réponses: 9
    Dernier message: 28/05/2008, 02h06
  2. [delphi 5,6,7] utiliser un objet dans une procédure
    Par wizdom dans le forum Langage
    Réponses: 3
    Dernier message: 27/01/2006, 15h38
  3. [PDO] Utiliser l'Objet de PHP pour gérer sa base de données
    Par Viau dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 25/01/2006, 18h16
  4. Utilisation d'objets pour imprimer
    Par alainvh dans le forum Composants VCL
    Réponses: 3
    Dernier message: 02/12/2004, 10h25
  5. utilisation d'objets ADO pour CMS sur POSTGRESQL7.3.2
    Par turbok dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 10/10/2003, 09h29

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