SERIEUXETCOOL
XLDnaute Occasionnel
Bonjour le Forum,
Pour compter le nombre de lignes utilisées d'une feuille Excel, j'utilise le code suivant :
Ça fonctionne très bien. Mais je rencontre un cas ou je n'arrive pas à compter le nombre de lignes.
Dans une feuille Excel placez les 4 valeurs suivantes :
Range("U5")=50
Range("U6")=1
Range("U12")=0,001
Range("U14")=1
Ensuite placez ce code dans le module "ThisWorkBook"
Voici le code complet ( code à placer dans "ThisWorkBook") :
En gros j'ai un tableau avec des valeurs qui sont injectées dans la feuille Excel. J'ai donc un certain nombre de lignes. Je supprime ensuite quelques lignes, et j'aimerais pouvoir compter le nouveau nombre de lignes présent sur la feuille. Et ben c'est toujours le même nombre de lignes alors que ça ne le devrait pas.
Quelqu'un peut il m'aiguiller à savoir pourquoi le nombre de lignes ne change t'il pas malgré que je supprime des lignes ???
Bien cordialement,
André
Pour compter le nombre de lignes utilisées d'une feuille Excel, j'utilise le code suivant :
Code:
Dim n As Long
n = ActiveSheet.UsedRange.Rows.Count 'Compte le nombre de lignes dynamiques
MsgBox "Le nombre de lignes actuel est de " & n
Ça fonctionne très bien. Mais je rencontre un cas ou je n'arrive pas à compter le nombre de lignes.
Dans une feuille Excel placez les 4 valeurs suivantes :
Range("U5")=50
Range("U6")=1
Range("U12")=0,001
Range("U14")=1
Ensuite placez ce code dans le module "ThisWorkBook"
Voici le code complet ( code à placer dans "ThisWorkBook") :
Code:
Option Explicit
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Application.ScreenUpdating = False 'Désactive l'affichage
Application.DisplayAlerts = False 'Désactive les alertes
Dim n As Long, Début As Long, Fin As Long
If Target.Address = Range("U5").Address Or Target.Address = Range("U6").Address Or Target.Address = Range("U12").Address Or Target.Address = Range("U14").Address Then
Début = (Range("U5") / Range("U12")) + 4
Fin = Début + (Range("U6") * Range("U14") / Range("U12"))
n = ActiveSheet.UsedRange.Rows.Count 'Compte le nombre de lignes dynamiques
MsgBox "Le nombre de lignes actuel est de " & n
Range("B10:Q" & n + 4).Clear
MsgBox "Après suppréssion de certaines lignes, ce nombre vaut maintenant " & n
Dim Tableau() As Variant
Dim i As Long
ReDim Tableau(1 To Fin - Début + 1, 1 To 16) As Variant 'On peut maintenant redimensionner le tableau dynamique (i Lignes et 4 colonnes dans ce cas la)
For i = 1 To Fin - Début + 1 'On parcours maintenant l'intégralité des points se trouvant à l'intérieur de la maille circulaire
Tableau(i, 1) = 10 'On remplit le tableau dynamique comme on l'entends (Pour le maillage circulaire, seule 2 colonnes suffisent)
Tableau(i, 2) = 10
Tableau(i, 3) = 10
Tableau(i, 4) = 10
Tableau(i, 5) = 10
Tableau(i, 6) = 10
Tableau(i, 7) = 10
Tableau(i, 8) = 10
Tableau(i, 9) = 10
Tableau(i, 10) = 10
Tableau(i, 11) = 10
Tableau(i, 12) = 10
Tableau(i, 13) = 10
Tableau(i, 14) = 10
Tableau(i, 15) = 10
Tableau(i, 16) = 10
Next i
Range(Cells(5, 2), Cells(UBound(Tableau, 1) + 4, UBound(Tableau, 2) + 1)) = Tableau 'On transfère les éléments du tableau dans la feuille de calcul
End If
Application.ScreenUpdating = True 'Désactive l'affichage
Application.DisplayAlerts = True 'Désactive les alertes
End Sub
En gros j'ai un tableau avec des valeurs qui sont injectées dans la feuille Excel. J'ai donc un certain nombre de lignes. Je supprime ensuite quelques lignes, et j'aimerais pouvoir compter le nouveau nombre de lignes présent sur la feuille. Et ben c'est toujours le même nombre de lignes alors que ça ne le devrait pas.
Quelqu'un peut il m'aiguiller à savoir pourquoi le nombre de lignes ne change t'il pas malgré que je supprime des lignes ???
Bien cordialement,
André