Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Identification de la première ligne vide

  • Initiateur de la discussion Initiateur de la discussion Valafar
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

V

Valafar

Guest
Bonjour,

Je suis à la recherche d'un code me permettant d'identifier la première ligne vide d'un fichier Excel afin de pouvoir y rentrer des données via des controls sur un userform.

J'ai un code qui fonctionne, mais qui n'est pas adapté à mon cas. En effet, dans ma ligne toutes les cellules ne sont pas remplies.
Exemple : j'ai 6 colonnes pouvant être remplies,
ma première saisie va remplir les 2 premières et la dernière
une autre saisie va remplir les 2 premières mais aussi la colonne 5 et 6

Voilà mon code :
Code:
Range("A65536").End(xlUp).Offset(1, 0).Select

Je souhaite donc avec un code pouvoir identifier la première ligne entièrement vide.

Cordialement.
Valafar.
 
Re : Identification de la première ligne vide

Bonjour.

La 1ère ligne entièrement vide ? Pas très courant dans ce contexte … Parce que la 1ère ligne qui suit la dernière non vide, ça oui !
J'utilise beaucoup ces fonctions :
VB:
Function PlgUti(ByVal PlageDép As Range, Optional ByVal PlagExam As Range = Nothing) As Range
Rem. Cherche la partie utilisée d'une plage, c'est à dire celle qui s'étend jusqu'à la dernière cellule renseignée de plus qu'une chaîne vide.
'    PlageDép: Plage de départ. Seule la 1ère cellule spécifiée est prise en compte pour la déterminer, et suffit donc pour une utilisation VBA.
'            Pour utilisation en formules, il est néanmoins nécessaire de spécifier la plage depuis celle ci jusqu'au reste des colonnes entières.
'    PlageExam: Plus grande plage susceptible de contenir la plage cherchée.
'            Facultatif: UsedRange assumé par défaut.
Dim LMax As Long, CMax As Long, NbL As Long, NbC As Long
On Error GoTo RienTrouvé
If PlagExam Is Nothing Then Set PlagExam = PlageDép.Worksheet.UsedRange
LMax = PlagExam.Find("*", PlagExam.Cells(1, 1), xlValues, xlWhole, xlByRows, xlPrevious).Row
CMax = PlagExam.Find("*", PlagExam.Cells(1, 1), xlValues, xlWhole, xlByColumns, xlPrevious).Column
On Error GoTo 0
NbL = LMax - PlageDép.Row + 1: If NbL < 1 Then GoTo CEstToutVide
NbC = CMax - PlageDép.Column + 1: If NbC < 1 Then GoTo CEstToutVide
Set PlgUti = PlageDép.Resize(NbL, NbC)
Exit Function
RienTrouvé: Resume CEstToutVide
CEstToutVide: Set PlgUti = Nothing
End Function
'

Function ColUti(ByVal PlageDép As Range) As Range
Rem. Comme PlgUti, mais la plage rendue se limitera aux colonnes couvertes par la plage de départ spécifiée
Set ColUti = PlgUti(PlageDép, Intersect(PlageDép.Worksheet.UsedRange, PlageDép.EntireColumn))
End Function

Edit: Bonjour VDAVID
 
Dernière édition:
Re : Identification de la première ligne vide

Bonjour Valafar,

Peut-être comme ceci:

Code:
MsgBox Cells.Find("*", , , , xlByRows, xlPrevious).Row + 1

Bonne journée

EDIT: Bonjour Danreb, on s'est croisé !
 
Re : Identification de la première ligne vide

bonjour,
peut-être

Code:
Sub test()
Dim i, a
For i = 1 To 65000
a = Application.WorksheetFunction.CountA(Rows(i).EntireRow)
If a = 0 Then
MsgBox i
Cells(i, 1).Select
Exit Sub
End If
Next i
End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
10
Affichages
625
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…