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

Atteindre la première cellule vide d'une liste de données [ RESOLU]

  • Initiateur de la discussion Initiateur de la discussion jsl72
  • 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 !

jsl72

XLDnaute Junior
Bonjour à tous,

A la recherche d'un code VBA.

Je souhaite atteindre la première cellule vide d'une liste de données.

La cellule vide atteinte doit devenir une cellule active.

J'ai enregistré le code suivant comme base de réflexion.

Sub Macro5()
ActiveCell.Select
Range(Selection, Selection.End(xlDown)).Select
ActiveCell.Offset(5, 0).Rows("1:1").EntireRow.Select
End Sub

"5"correspond à la cellule vide que j'ai sélectionnée manuellement.
Lors de mon essai il n'y avait que 4 cellules pleines.

La première cellule vide n'est jamais à la même place.

Merci de votre contribution.
Bonne soirée.

Joël
 
Dernière édition:
Re : Atteindre la première cellule vide d'une liste de données

Bonsoir Joel,

Essaie comme ceci :

Code:
Sub Macro5()
Cells(Rows.Count, ActiveCell.Column).End(xlUp).Offset(1, 0).EntireRow.Select
End Sub
Mais attention, ta liste ne doit pas contenir de ligne vide intermédiaire.

Cordialement.
 
Re : Atteindre la première cellule vide d'une liste de données

Bonjour,


Je propose le bloc d'instructions suivant :

Code:
on error resume next
ActiveCell.EntireColumn.SpecialCells(xlCellTypeBlanks).Areas(1).item(1).select


Vu comment les données sont organisées, le code ci-dessous est plus approprié.
Code:
Sub XLD_1228117()
Dim SecondEmptyBlock  As Range
Dim FirstFullBlock As Range
Dim StartBlock As Range

On Error Resume Next

Range("B1").Activate

Set SecondEmptyBlock = ActiveCell.EntireColumn.SpecialCells(xlCellTypeBlanks).Areas(2).Item(1)
Set FirstFullBlock = ActiveCell.EntireColumn.SpecialCells(xlCellTypeConstants, 23).Areas(1).Cells

If Not SecondEmptyBlock Is Nothing Then
    Set StartBlock = SecondEmptyBlock
Else
    Set StartBlock = Range(FirstFullBlock.Item(FirstFullBlock.Cells.Count).Address)
    Set StartBlock = StartBlock.Offset(IIf(StartBlock.Row = Rows.Count, 0, 1))
End If

Range(StartBlock, Cells(Rows.Count, StartBlock.Column)).EntireRow.Select

'Selection.delete  ' pour effacer les lignes
End Sub
 
Dernière édition:
Re : Atteindre la première cellule vide d'une liste de données

Bonsoir Papou-net,
Bonsoir STephane,

Merci pour vos codes.
Bonne piste, mais ils ne fonctionnent pas vraiment comme il faudrait.

Pour Papou-net le code envoi à la fin de la liste de données et ne voit pas la première cellule vide.

Pour STepane le code envoi à la première cellule en haut de la colonne.

Plutôt que de longues explications je vous joints un fichier qui facilitera la compréhension de la problématique rencontrée.

Regarde la pièce jointe T14308296.xls

Merci pour votre aide.
Bonne soirée
Joël
 
Dernière édition:
Re : Atteindre la première cellule vide d'une liste de données

Bonjour

peut-être

Code:
Sub e()
With Worksheets(1).Range("a:a")
    Set c = .Find("-----", LookIn:=xlValues)
    If Not c Is Nothing Then
        firstAddress = c.Address
            Set c = .FindNext(c)
            If Not c Is Nothing Then
                MsgBox ("ligne " & c.Row)
            Else
                MsgBox "pas de doublon"
            End If
    Else
        MsgBox "pas de ---- détecté"
    End If
End With
End Sub
 
Re : Atteindre la première cellule vide d'une liste de données

Bonsoir,
se placer en B6 et lancer cette macro obtenue à partir de l'enregistreur de macro :
Code:
Sub Macro1()
    Selection.End(xlDown).Offset(1, -1).Select
    Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Clear
End Sub
A+
 
Re : Atteindre la première cellule vide d'une liste de données

Bonsoir à tous,

Pour Papou-net le code envoi à la fin de la liste de données et ne voit pas la première cellule vide.

C'est bien ce que je te disais en fin de mon message.

C'est aussi vrai qu'avec un fichier on y voit tout de suite plus clair.

Voici donc un exemple de macro réduite à sa plus simple expression :

Code:
Sub Macro5()
With Feuil1
  .Rows(.Range("B6").End(xlDown).Row + 2 & ":" & Rows.Count).Delete
End With
End Sub

La macro repère la dernière ligne remplie en colonne B, en descendant à partir de B6, et en ajoute 2 à la valeur trouvée puis supprime les lignes du dessous. Difficile de faire plus simple à mon humble avis.

Cordialement.
Code:
 
Re : Atteindre la première cellule vide d'une liste de données

Bonjour ERIC S,
Bonjour david 84,
Bonjour Papou-net,

Merci de vous être impliqués.

Conjuguées, vos propositions m'ont permis de trouver une solution à ma problématique.

Soyez fiers de contribuer à l'enrichissement de ce FORUM, tous mes remerciements.


PROBLÈME RÉSOLU
 
Re : Atteindre la première cellule vide d'une liste de données

Bonsoir Papou-net,
Pour STepane le code envoi à la première cellule en haut de la colonne.

C'était à cause de la structure de ton fichier.
Sinon cela renvoye bien la première cellule vide d'une liste de données pour une liste commençant en A1 ;-).

Le nouveau code que j'ai proposé plus haut fonctionne correctement sur ta liste, sans se soucier que les données commencent en B6 mais en analysant la colonne B, ses cellules vides et pleines.
 
- 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

Discussions similaires

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