Bonjour !
Je souhaite effacer la dernière ligne non vide de la mon tableau sauf la première qui comporte mon entete de tableau.
Je n'arrive pas à trouver le code qui va bien...
La j'utilise celui ci pour l'instant:
Sub SuppDernLigne()
Dim Dl%
Dl = Feuil2.Range("C" & Rows.Count).End(xlUp).Row 'n° de la dernière ligne non vide de la colonne A
Rows(Dl).Delete shift:=xlUp 'Supprime la ligne vers le haut
End Sub
Avez vous une solution ?
En vous remerciant par avance ! Bonnes fêtes à tous !!
Bonjour J@Not,
La macro marche très bien. Si c'est épargner la première ligne alors une proposition :
VB:
Sub SuppDernLigne()
Dim Dl%
Dl = Feuil2.Range("C" & Rows.Count).End(xlUp).Row 'n° de la dernière ligne non vide de la colonne A
If Dl > 1 Then
Rows(Dl).Delete shift:=xlUp 'Supprime la ligne vers le haut
End If
End Sub
Bonjour J@Not,
La macro marche très bien. Si c'est épargner la première ligne alors une proposition :
VB:
Sub SuppDernLigne()
Dim Dl%
Dl = Feuil2.Range("C" & Rows.Count).End(xlUp).Row 'n° de la dernière ligne non vide de la colonne A
If Dl > 1 Then
Rows(Dl).Delete shift:=xlUp 'Supprime la ligne vers le haut
End If
End Sub
ton fichier modifié est joint en fin de post ; ci-dessous, ton nouveau Module4 ;
ça supprime bien la dernière ligne (= 1ère ligne de données si y'en n'a pas
d'autres), et sauf la 1ère ligne d'en-têtes.
n'oublie pas de lire attentivementtoutes les indications de ce post que j'ai
ajoutées sous le code VBA.
VB:
Option Explicit
Sub SuppDernLigne()
If ActiveSheet.Name <> "Retraits enregistrés" Then Exit Sub
Dim Dl&
Dl = Cells(Rows.Count, 1).End(xlUp).Row 'n° dernière ligne, selon colonne A
If Dl > 1 Then Rows(Dl).Delete 'supprime la dernière ligne
End Sub
1) test du nom de feuille : évite que la sub soit exécutée depuis une autre feuille,
si la sub est appelée depuis la fenêtre « Macro » (Alt F8 au lieu de clic / bouton)
2) type de la variable Dl : Long (&) au lieu de Integer (%) car maxi d'un Integer :
32 767 ➯ plantage si n° ligne >= 32 768
3) toute ligne de donnée utilisée doit forcément avoir une date, donc c'est plus logique
de « calculer » la dernière ligne selon la colonne A "DATE" au lieu de la colonne C
"Diamètre du moule Longueur du moule" (même si t'aimes les moules et les huîtres)
4) ton utilisation initiale de Shift:=xlUp est un double non-sens ! voici pourquoi :
a) comme tu n'as pas de 2ème tableau à droite du 1er tableau, c'est inutile de
chercher à préserver des données qui seraient sur le côté droit : tu peux donc
supprimer la ligne entière, sans aucun risque ; d'autre part, s'il y avait eu des
données à préserver côté droit, ça aurait été utile de faire une suppression
avec décalage haut des données non pas sur la ligne entière mais sur A:U.
b) comme tu supprimes la dernière ligne utilisée du tableau, y'a donc aucune
ligne de donnée située en dessous à remonter ➯ désolé si je t'ai fait perdre
tes illusions de croire qu'un décalage haut était utile.
à te lire pour avoir ton avis, si tu reviens sur ce sujet, et que
tu m'en veux pas trop pour mon point 4)a) et b)