XL 2019 cellule vide

MOmichel

XLDnaute Junior
bonjour
j'aimerai avoir une explication j'ai un tableau avec X lignes ci dessous
lorsque je veux sélectionner la premiere ligne non vide da la colonne E en appliquantt le code

Range("e20000").Select
' Boucle tant que pas vide
Do While (IsEmpty(ActiveCell))
NbLigne = NbLigne - 1
Selection.Offset(-1, 0).Select
Loop
Selection.Offset(1, 0).Select
Range(ActiveCell, ActiveCell.End(xlDown)).Select
Selection.ClearContents
Range("e20000").Select
Selection.End(xlUp).Select

je viens me positionner sur la cellule E,91 et non sur la E79 ?

1608460064011.png




par avance merci pour vos commentaires
 
Solution
Bonjour le fil

Fonctionne chez moi
(toujours sur le fichier demo.xlsm)
VB:
Sub PremièreVideDepuisBas()
Dim LObj As ListObject, premCellVideDepuisBas&
Set LObj = ActiveSheet.ListObjects("Tsource")
With LObj.Range.Columns(5)
premCellVideDepuisBas = .Cells(.Rows.Count).End(xlUp).Row + 1
End With
MsgBox premCellVideDepuisBas, vbInformation, "N°Ligne"
LObj.Range(premCellVideDepuisBas, 5).Select
End Sub

chris

XLDnaute Barbatruc
RE à tous

S'il s'agit d'un tableau structuré
Derligne=range("A" &rows.count).end(xlup).row
ne fonctionne pas contrairement à
FirstLine=range("E1").end(xldown).row
qui fonctionne dans certaines situations mais pas toutes

Il faut tester avec quelque chose comme
VB:
For Each cellule In [NomTableau].ListObject.ListColumns(5).DataBodyRange
ou
With [NomTableau].ListObject.ListColumns(5).DataBodyRange
   For i = .Rows.Count + .Row - 1 To .Row Step -1
       If IsEmpty(.Cells(i, 1)) Then ...
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Bonjour le fil

Avec ce bidule, on peut tendre vers le vide, non?
;)
VB:
Sub DerLig_ListObject()
Dim tlObj As ListObject, Der_Lig_Tableau&
Set tlObj = ActiveSheet.ListObjects(1)
Der_Lig_Tableau = tlObj.ListColumns(1).Range.Rows.Count
MsgBox Der_Lig_Tableau & " (avec l'entête)", 64, "Nombre de ligne d'un Tableau:"
MsgBox tlObj.DataBodyRange.Rows.Count
End Sub
 

Staple1600

XLDnaute Barbatruc
Re

Et c'est là qu'on se demande (ou qu'on peut le faire)
Mais diable, pourquoi le demandeur n'a pas joint de fichier Excel dès son premier message?
Oui, on peut se le demander (en affichant un air las et fatigué , directe conséquence de rabâcher cette rengaine pour la 12729ième fois) ;)
 

soan

XLDnaute Barbatruc
Inactif
Bonjour,

un exemple :
VB:
For Each Cellule In [tsource].ListObject.ListColumns(5).DataBodyRange
  If IsEmpty(Cellule) Then Cellule.EntireRow.Select
Next Cellule
et plus d'erreur de compilation « Next sans For » ! :)

attention : si tu veux supprimer les lignes pour lesquelles Cellule est vide,
tu dois utiliser une boucle qui balaye les lignes de bas en haut, afin que
le compteur de la boucle ne soit pas « perturbé » !


soan
 

Discussions similaires

  • Question
Microsoft 365 Code VBA
Réponses
2
Affichages
311

Statistiques des forums

Discussions
312 177
Messages
2 085 972
Membres
103 073
dernier inscrit
MSCHOE16