Connaitre la dernière ligne du tableau en ne tenant pas compte du filtre

sonia123

XLDnaute Nouveau
Bonjour à toutes et à tous.

J'ai un fichier excel dont la feuille est protégée par un mot de passe.
J'ai créé une macro qui ajoute des données à la fin du tableau.
Pour trouver la dernière ligne du tableau, j'utilise le code suivant:
Cells(Rows.Count, 2).End(xlUp).Row

Or si on fait un filtre sur une colonne, le code nous renvoie la dernière ligne de la colonne filtrée. Ce n'est pas la réelle dernière ligne de la colonne!

Du coup, les données ajoutées se font par dessus une ligne déjà existante!

L'idée serait de supprimer le filtre automatique, mais je ne peux pas comme la feuille est protégée!
De même le code ActiveSheet.ShowAllData ne fonctionne pas.

Quelqu'un aurait-il une idée pour connaitre la dernière ligne réelle du tableau, ou pour enlever le filtre sur les colonnes?

Merci à tous!!
 

dra72

XLDnaute Occasionnel
Re : Connaitre la dernière ligne du tableau en ne tenant pas compte du filtre

Bonsoir,

Tu peux utiliser:

Code:
Dim X as String
X = Range("A1:A" & Rows.Count).SpecialCells(xlCellTypeConstants).Address
derlig = Val(Mid(X, InStrRev(X, "$") + 1))

Bonne soirée.
 

dra72

XLDnaute Occasionnel
Re : Connaitre la dernière ligne du tableau en ne tenant pas compte du filtre

En ce qui concerne la protection tu peux utliser dans ton code Unprotect pour déverrouiller puis Protect pour reverrouiller après la modif effectuée.

Et pour éviter toute cette "gymnastique", tu peux employer UserInterfaceOnly dans ton instruction Protect (à insérer dans Private Sub Workbook_Open() , tes macros pourront ainsi modifier sans problème la feuille. Par contre, l'utilisateur ne pourra pas modifier tes cellules verrouillées.
 

sonia123

XLDnaute Nouveau
Re : Connaitre la dernière ligne du tableau en ne tenant pas compte du filtre

Bonjour,

Merci à toi DRA 72 pour tes réponses.

Le code que tu m'as fourni ne fonctionne que si la protection n'est pas activée.
Mais grâce à l'utilisation du code suivant:
Private Sub Workbook_Open()
Sheets(1).Protect Password:="Secret", _
UserInterFaceOnly:=True
End Sub

les macros fonctionnent même si la feuille est protégée.

merci beaucoup de ton aide.
 

Discussions similaires

Réponses
9
Affichages
257

Membres actuellement en ligne

Statistiques des forums

Discussions
312 685
Messages
2 090 946
Membres
104 705
dernier inscrit
Mike72