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

Staple1600

XLDnaute Barbatruc
Re

[Pour infos]
Tous les commentaires ont été constructifs.
(Dont le mien, puisque tu vas joindre un fichier exemple, mais ce n'est pas utile d'ouvrir une nouvelle discussion puisque celle-ci existe)
Et tu ne peux pas fermer une discussion.
Une fois, une question posée, elle vit sa vie de question sans limites
(autre que celle la validité de l'enregistrement du nom de domaine d'XLD ;))
 

MOmichel

XLDnaute Junior
Re

[Pour infos]
Tous les commentaires ont été constructifs.
(Dont le mien, puisque tu vas joindre un fichier exemple, mais ce n'est pas utile d'ouvrir une nouvelle discussion puisque celle-ci existe)
Et tu ne peux pas fermer une discussion.
Une fois, une question posée, elle vit sa vie de question sans limites
(autre que celle la validité de l'enregistrement du nom de domaine d'XLD ;))
Re

MOmichel
J'avais cru que tu allais joindre un fichier Excel (en guise d'exemple)
Pour qu'on puisse faire des tests sur nos PC afin de mieux te répondre.

NB: N'oublie pas de rendre anonyme avant de l'envoyer sur le forum.
 

Pièces jointes

  • demo.xlsm
    952 KB · Affichages: 20

Staple1600

XLDnaute Barbatruc
Re

C'est cela que tu veux faire?
VB:
Sub test()
Dim t, x&, rVide As Range
t = Split(Range("Tsource[[#ALL],[REF_MNF]]").SpecialCells(2, 2).Address, "$")
x = t(UBound(t)) + 1
Set rVide = Range("Tsource[[#ALL],[REF_MNF]]").Item(x)
MsgBox rVide.Address
rVide.Select
End Sub
NB: Renommer Colonne1 en REF_MNT avant de lancer la macro
 

MOmichel

XLDnaute Junior
Re

C'est cela que tu veux faire?
VB:
Sub test()
Dim t, x&, rVide As Range
t = Split(Range("Tsource[[#ALL],[REF_MNF]]").SpecialCells(2, 2).Address, "$")
x = t(UBound(t)) + 1
Set rVide = Range("Tsource[[#ALL],[REF_MNF]]").Item(x)
MsgBox rVide.Address
rVide.Select
End Sub
NB: Renommer Colonne1 en REF_MNT avant de lancer la macro
Bonjour
quand je mets le code suivant tes indications
1608568937146.png
 

MOmichel

XLDnaute Junior
Re

C'est cela que tu veux faire?
VB:
Sub test()
Dim t, x&, rVide As Range
t = Split(Range("Tsource[[#ALL],[REF_MNF]]").SpecialCells(2, 2).Address, "$")
x = t(UBound(t)) + 1
Set rVide = Range("Tsource[[#ALL],[REF_MNF]]").Item(x)
MsgBox rVide.Address
rVide.Select
End Sub
NB: Renommer Colonne1 en REF_MNT avant de lancer la macro


le code que tu m'as donné est OK et donc me donne la premier cellule en partant du haut de colonne mais si je le veux en partant du bas de colonne comment j'adapte ton code bien sur si j'ai bien compris ton code
 

Staple1600

XLDnaute Barbatruc
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
 

MOmichel

XLDnaute Junior
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
bonjour
merci à vous tous pour cette derniere solution
 

Discussions similaires

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

Statistiques des forums

Discussions
312 024
Messages
2 084 722
Membres
102 638
dernier inscrit
TOTO33000