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

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [Excel]Connaître la dernière ligne d'un tableau

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Excel]Connaître la dernière ligne d'un tableau

n°1953549
tarnx
Posté le 29-12-2009 à 09:30:26  profilanswer
 

Bonjour à tous,
 
Afin d'effectuer des calculs sur un tableau Excel (composé de 12 colonnes), j'ai besoin de connaître le nombre de lignes de ce dernier.
 
Je comptais faire :
 
Dim oLigne as Integer
Dim oColonne as Integer
oLigne = 0
 

Code :
  1. For oColonne = 1 to 12
  2.     While Not IsEmpty( xlsheet.Cells(oLigne, oColonne) )
  3.         oLigne = oLigne + 1
  4.     Wend
  5. Next


 
Le problème c'est qu'il n'est pas complet, il y a des cellules vides.
 
Par exemple :  
 

Citation :

Colonne 1 : Aucune cellule vide, longueur : 28 lignes
Colonne 2 : A 2 cellules vides, longueur : 31 lignes
Colonne 3 : est vide de la ligne 10 à 13 mais à une longueur de 34 lignes
...


 
Dans cet exemple je souhiate récupérer la valeur 34 :)
 
Quelqu'un a-t-il une solution ?
 
Merci de votre aide.

mood
Publicité
Posté le 29-12-2009 à 09:30:26  profilanswer
 

n°1953555
pataluc
Posté le 29-12-2009 à 10:14:05  profilanswer
 

c'est quoi ton critère de fin de tableau si tu peux avoir des cellules vides? quand toute la ligne est vide? dans ce cas boucle plutôt en priorité sur les lignes, puis sur les colonnes pour vérifier si une ligne entière est vide.

n°1953590
Laoo
Posté le 29-12-2009 à 12:25:11  profilanswer
 

Bonjour
 
Voici une solution:
 

Code :
  1. Sub dernière_ligne()
  2. Dim dernière, Ligne as Integer
  3. Range("a1" ).Select
  4. 'Pour chaque colonne de 1 à 12
  5.   For i = 1 To 12
  6.     ' on détermine à partir du bas, le rang de la dernière cellule non vide
  7. Ligne = Cells(65530, i).end(xlUp).Row
  8.   'si le rang trouvé est supérieur au plus grand précédent, "dernière" prend cette valeur:
  9. If Ligne > dernière Then dernière = Ligne 
  10. Next  i
  11. 'Et dernière = 34  , ce qui était demandé. La preuve:
  12. Range("a" &  dernière).Offset(1,0).Select
  13. End Sub


 
Te voilà rendu 1 ligne en-dessous de la dernière ligne non vide
 
Bien cordialement


---------------
Olympus OM-D  EM-5 + 14-42
n°1953615
tarnx
Posté le 29-12-2009 à 13:44:19  profilanswer
 

Ah oui, je n'avais pas pensé à partir d'en bas, bien que cela risque d'être plus long.
 
Merci pour cette idée.

n°1953635
Laoo
Posté le 29-12-2009 à 14:15:17  profilanswer
 

Non, comme tu pourras le constater.
 
 La macro détermine en une fraction de seconde quelle est la première cellule occupée en venant du bas, dans chaque colonne, puis conserve la valeur la plus élevée.
 
c'est fait en une seconde.
 
 


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

  [Excel]Connaître la dernière ligne d'un tableau

 

Sujets relatifs
Commandbar sous Excel 2007Effacer une ligne d'une combobox VB6 sous XP
[VBA]- passer la ligne en dessousarguments passés en ligne de commande
Intrepretation du code Html dans Microsoft EXCEL[Excel VBA] Lister les noms de plages de cellules et leurs coordonnées
XLM, XSD, Excel & multiligneExécuter Macro Excel depuis Access
[excel vba] virer les espaces et retour à la lignes[VB/Excel] Différent résultat execution classique/execution pas à pas
Plus de sujets relatifs à : [Excel]Connaître la dernière ligne d'un tableau


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