Forum des développeurs  

Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé.
Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Excel > VBA Excel

Réponse
 
Outils de la discussion
Vieux 27/08/2008, 10h56   #1 (permalink)
Membre à l'essai
 
Date d'inscription: juillet 2008
Messages: 46
Par défaut Tableau / UBound

Bonjour tout le monde !
Voilà, mon programme bloque sur la fonction UBound appliquée à un tableau "FichChoisis" rempli de la manière suivante :

Code :
Private Sub CommandButton1_Click()
    Dim i As Integer, n As Integer
    Dim FichChoisis() As String 
    'Rentrée des éléments sélectionnés dans la ListBox (des noms de fichiers) dans le tableau FichChoisis
    ReDim FichChoisis(0)
    n = 0
    For i = 0 To ListBox1.ListCount - 1
        If ListBox1.Selected(i) Then
        ReDim Preserve FichChoisis(n)
        FichChoisis(n) = ListBox1.List(i)
        MsgBox FichChoisis(n)  'vérifie que le tableau enregistre les bonnes données
        n = n + 1
        End If
    Next i
    MsgBox UBound(FichChoisis)  
    UserForm3.Hide   
End Sub
Dans ce code la ligne "MsgBox UBound(FichChoisis)" fonctionne et renvoie le bon chiffre; mais lorsque j'utilise UBound(FichChoisis) là où j'en ai besoin ça génère une erreur ("L'indice n'appartient pas à la selection"...).

Code :
Public FichChoisis() As String
Sub Super_Min_Max()
    Dim i As Integer
    For i = 0 To UBound(FichChoisis)
    'instructions....
    Next i
End Sub
Je ne comprend pas pourquoi... Si quelqu'un pouvait m'éclairer...

PS: J'ai également essayer UBound(FichChoisis, 1); ça donne la même chose.
pythagore3_14 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 27/08/2008, 11h06   #2 (permalink)
Membre Expert
 
Avatar de Godzestla
 
Date d'inscription: août 2007
Localisation: Impasse
Âge: 43
Messages: 1 024
Par défaut

Salut,

c'est parce que tu utilise FichChoisis pour un tableau mais aussi pour ta routine.

Pas bon cela. Change le nom de ta routine par exemple.

Ensuite il faudra voir sir ton code "routine" se trouve bien dans un module ou dans la même feuille que CommandButton1_Click.

Attention que la porté de FichChoisis() est limitée à la procédure CommandButton1_Click() qui est private.
__________________
Cordialement
G@dz

Question technique par MP = Vous avez des neurones. Sollicitez-les. Question mal formulée réponse inadaptée.
Si la solution est absente, le problème n'est plus.
Godzestla est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 27/08/2008, 11h30   #3 (permalink)
Membre à l'essai
 
Date d'inscription: juillet 2008
Messages: 46
Par défaut

Je ne comprend pas ce que tu appelle "routine" ... !?
J'ai supprimé "Dim FichChoisis() As String" dans mon premier code, je veux que ce soit une variable public("Private Sub CommandButton1_Click()" est dans une feuille et "Sub Super_Min_Max()
" dans un module). C'est sans doute ça qui posait problème; maintenant ça a l'air de marcher... Merci !
pythagore3_14 est déconnecté   Envoyer un message privé Réponse avec citation
Réponse

Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Excel > VBA Excel

 
Offres d' emploi informatique sur Lesjeudis.com


Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non
Navigation rapide


Fuseau horaire GMT +1. Il est actuellement 04h31.


Publiez vos articles, tutoriels et cours et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones. Nous contacter
Copyright 2000-2008 www.developpez.com - Legal informations