Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1001 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Compter le nombre de ligne d un tableau vba excel

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Compter le nombre de ligne d un tableau vba excel

n°1230577
homogene
Posté le 25-10-2005 à 15:51:30  profilanswer
 

Bonjour,  
 
Dans une macro excel, je crée un tableau en memoire.
J aimerais savoir comment faire pour compter le nombre de ligne qu il y a dans mon tableau.
 
Actuellement j utilise la fonction on error pour sortir est me donner le nombre
si quelqu un à une solution plus propre je suis preneur
 

Code :
  1. Sub Tableaux()
  2. laChaine = "10 mn:5:24#20 mn:25:45#30 mn:46:100"
  3. MsgBox GetLigneArray(laChaine)
  4. End Sub


 

Code :
  1. Function GetLigneArray(ByVal laChaine As String)
  2.     On Error GoTo Err_Tableaux
  3.     GetLigneArray = 0
  4.     While Split(laChaine, "#" )(GetLigneArray) <> ""
  5.         GetLigneArray = GetLigneArray + 1
  6.     Wend
  7.     Exit Function
  8.    
  9. Err_Tableaux:
  10.         GetLigneArray = GetLigneArray - 1
  11.    
  12. End Function


 
Merci d'avance


---------------
homogene
mood
Publicité
Posté le 25-10-2005 à 15:51:30  profilanswer
 

n°1231011
galopin01
Posté le 25-10-2005 à 21:11:46  profilanswer
 

bonjour,
 
Sub Tableaux()
laChaine = "10 mn:5:24#20 mn:25:45#30 mn:46:100"
MsgBox UBound(Split(laChaine, "#" ))
End Sub
 
... Mais dans un cas comme dans l'autre le tableau n'est pas réellement créé : il est juste évalué !
A+


Message édité par galopin01 le 25-10-2005 à 21:15:00
n°1231028
Fred_l
Posté le 25-10-2005 à 21:55:10  profilanswer
 

Yes ! Pas mal !
 
Pourquoi chercher le compliqué quand on peut faire simple....
Fallait juste penser à UBound...
 
@+ Fred

n°1231099
galopin01
Posté le 25-10-2005 à 22:38:38  profilanswer
 

Oui,
Pour être exact, nous devons supposer que notre ami homogène a posé :
Option Base 1 dans son module.
Sinon sa question et son exemple n'ont aucun sens. Ma réponse s'est borné à "singer" sa fonction et donne le même résultat (aberrant si Option Base est omis.)
En effet Ubound ne renvoie que l'indice supérieure du tableau : pas le nombre d'éléments.
En réalité le nombre d'éléments (ou de ligne) quelque soit Option Base est donné par la formule :
Nb d'élément = UBase(Tablo) + 1 - Lbase(Tablo)
ainsi que le met en évidence la macro suivante :

Code :
  1. Sub Tableaux()
  2. Dim Tablo() As String
  3. laChaine = "10 mn:5:24#20 mn:25:45#30 mn:46:100"
  4. Tablo = Split(laChaine, "#" )
  5. MsgBox "Ubound = " & UBound(Tablo)
  6. MsgBox "Nb d'éléments = " & UBound(Tablo) + 1 - LBound(Tablo)
  7. For i = LBound(Tablo) To UBound(Tablo)
  8. MsgBox Tablo(i)
  9. Next
  10. End Sub


A+


Message édité par galopin01 le 25-10-2005 à 22:39:14

---------------
roger
n°1231733
homogene
Posté le 26-10-2005 à 17:35:53  profilanswer
 

Merci beaucoup je connaissais pas le UBound  
 
 
merci à galopin01 pour ta macro c'est plus propre que ce que j avais fait.
 


---------------
homogene

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Compter le nombre de ligne d un tableau vba excel

 

Sujets relatifs
[HTML] Problème de gras dans un tableau...insérer un tableau dans un formulaire ACCESS
Aller à la derniere ligne d'un fichier texte et recherche chaineVBA Excel UserForm bouton pour ouvrir fichier *.hlp & path dynamique
centrer un tableau avec XSL FODéfinir le nombre de jours restant avant expiration...
Générer code sous excelsaisie disponibilité en ligne
[HTML] Etirer une image dans une cellule de tableau.tableau à 2 dimensions et pointeur
Plus de sujets relatifs à : Compter le nombre de ligne d un tableau vba excel


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR