Galère avec un Array

  • Initiateur de la discussion Initiateur de la discussion marabbeh
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

M

marabbeh

Guest
Voici mon code :

Liste = Array()
With Sheets("salariés")
NbSalaries = .Range("I2").Value
If NbSalaries > 0 Then
For N = 0 To NbSalaries - 1
Liste(N + 1) = .Range(CellBase).Offset(N, 0).Value
Next
'Tri_Bulle (Liste)
For N = 1 To NbSalaries
ListeSalaries.AddItem Liste(N)
Next
End If
End With

Il s'agit de lire des données dans une colonne d'une feuille Excel,
puis de les trier et enfin de les afficher dans une ListBox. Ca plante, je ne sais pas pourquoi, probablement à cause du tableau Liste.
Car si je fais la lecture directement (sans passer par le tableau) dans la ListBox ça marche. J'ai mis Tri_Bulle en commentaires, parce que ça déconne déjà assez pour ne pas remettre une couche...

Entre (), dommage que le forum n'affiche pas la même police que celle utilisée dans le formulaire du message. C'est pas très beau...
 
Rebonsoir à tous,


Marrabeth, toujours des PB avec les with, j'ai rajouté la commande clear car je ne sais pas si elle affiche des données à partir d'un autre contrôle.... J'espère que ton CellBase est bien défini sur ta feuille de calcul
Je pense que le offset ne doit pas se faire avec le N mais avec un entier fixe à moins que suivant le Nb de salariés la valeur que tuveux récupérer n'est pas sur la même ligne....

Liste = Array()
NbSalaries = Sheets("salariés").Range("I2").Value
listesalaries.clear
redim Liste(0 to NbSalaries)
If NbSalaries > 0 Then
For N = 0 To NbSalaries - 1
Liste(N ) = Sheets("salariés").Range(CellBase).Offset(N, 0).Value
Next N
'Tri_Bulle (Liste)
'''For N = 1 To NbSalaries
ListeSalaries.List Liste()
'''Next
End If
''''End With


Je te conseille fortement ce lien Musée du forum où tu auras la solution pour ton PB de tri, en plus avec des démos bien détaillées au niveau du code et de leur application, mais aussi dans la déclaration des variables qui est un régal pour apprendre VBA quand on a une certaine technique de programmation classique ....



A+++
 
Re,

Oups il serait plus prudent demettre la redimension du tableau sous le si.....


redim Liste(0 to NbSalaries)
If NbSalaries > 0 Then
For N = 0 To NbSalaries - 1


à remplacer par
If NbSalaries > 0 Then
redim Liste(0 to NbSalaries)
For N = 0 To NbSalaries - 1

A++
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
5
Affichages
708
Réponses
7
Affichages
365
Réponses
4
Affichages
581
Réponses
10
Affichages
533
Réponses
5
Affichages
478
Retour