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 fonction et array à 2 dimensions


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 31
    Points : 27
    Points
    27
    Par défaut Problème avec fonction et array à 2 dimensions
    J'ai un fichier qui prend tous les fichiers excel d'un répertoire, je détermine la date de création et je les mets dans un array à 2 dimensions. Ensuite j'utilise une fonction pour les trier par date. Le problème est que ça ne marche pas au niveau du retour de la syntaxe pour appeler la fonction ou au niveau du retour de l'array. J'ai cherché sur internet et sur le forum, mais je n'ai rien trouvé de concluant.

    Voici mon code
    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
    ReDim list_of_files(2, 0) As String
    list_of_files=...... ' ca me donne un array 2 par 24
    j=24 'nombre de fichiers
    
    ReDim list_of_files2(2, j) As String
    list_of_files2 = list_sorted(list_of_files(), j - 1)
    
    Function list_sorted(list1() As String, n As Integer) As String
    Dim backup1(2, n) As String
    Dim backup2(2, n) As String
    Dim message As String
    For i = 1 To n - 1
    For k = 2 To n
    If list1(2, k) < list1(2, i) Then
    backup1k = list1(1, k)
    backup2k = list1(2, k)
    backup1i = list1(1, i)
    backup2i = list1(2, i)
    list1(1, k) = backup1i
    list1(2, k) = backup2i
    list1(1, i) = backup1k
    list1(2, i) = backup2k
    Next k
    Next i
    
    list_sorted() = list1()
    End Function
    merci de m'aider

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    592
    Détails du profil
    Informations personnelles :
    Âge : 74
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 592
    Points : 730
    Points
    730
    Par défaut
    Normalement une fonction ne retourne qu'une valeur, si tu souhaites manipuler un tableau, il faut utiliser une subroutine "sub" in excel.

  3. #3
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Non, il est possible de retourner des tableaux depuis une fonction
    Juste pour tester :
    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
    Sub test()
    Dim r As Variant, i As Integer
    'Remplissage des cellules de n'importe quoi pour le test
        For i = 1 To 12: Cells(i, 1) = 13 - i: Next
     
        'Appel de la fonction
        r = LaFonction("A1:A12")
     
        For i = 1 To UBound(r)
            MsgBox r(i, 1)
        Next
    End Sub
     
    Function LaFonction(Nb As String) As Variant
    Dim i As Integer
        i = UBound(Range(Nb).Value)
        LaFonction = Range(Nb).Value
    End Function
    Déclare la fonction as variant et la variable list_of_files également (ça je le suppose puisque tu ne mets pas le code de la sub... )
    Bonne soirée

    PS - J'ai pris un range car il s'agit là aussi d'un tableau à deux dimensions.
    Avec plusieurs colonnes, on a Tablo(NoLig, NoCol)

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 31
    Points : 27
    Points
    27
    Par défaut
    ok, j'ai modifié un peu mon code et défini différemment certains paramètres et ça marche!

    Merci à tous

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

Discussions similaires

  1. Problème avec fonctions et string/char
    Par vdumont dans le forum C++
    Réponses: 6
    Dernier message: 08/04/2006, 16h54
  2. Problème avec fonction
    Par Goundy dans le forum C
    Réponses: 24
    Dernier message: 01/10/2005, 20h17
  3. [MFC][WINSOCK] Problème avec fonction recv
    Par Le Farfadet dans le forum MFC
    Réponses: 4
    Dernier message: 23/09/2005, 11h00
  4. Problème avec fonction d'envoie de mail
    Par zyg dans le forum Réseau/Web
    Réponses: 1
    Dernier message: 23/02/2005, 08h48
  5. [Requête] Problème avec fonction "DATE_FORMAT()"
    Par sekiryou dans le forum Requêtes
    Réponses: 4
    Dernier message: 11/01/2005, 21h52

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