XL 2013 Atteindre la 1ère cellule vide d'une plage

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 !

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonjour à toutes et à tous,

Toujours sur mon classeur de travail de plus de 50.000 lignes, je voudrais, pour éviter des "promenades" atteindre la ligne dans laquelle une cellule n'aurait pas été remplie.

Mes recherches m'ont permis de trouver un code que j'ai légèrement modifié (mais pas assez LOL) et qui fonctionne bien ou presque pour moi :
forum excel-pratique.com par Banzai64 » 22 Décembre 2011, 16:57 que je remercie au passage.
Code:
Private Sub Worksheet_SelectionChange(ByVal R As Range)
If Not Intersect(R, Range("i7:t10000")) Is Nothing And R.Count = 1 Then
Dim L As Integer
Application.ScreenUpdating = False
With Sheets("Feuil1")
     .Range("i7:t10000").Find("", .Range("i7"), xlValues, , 1, 1, 0).Select
End With
End If
ActiveCell.Select
'R.Offset(0, 0).Select
'ActiveWindow.ScrollRow = Selection.Row
Application.ScreenUpdating = True
End Sub

Voici mon souci :
Mon besoin
Atteindre la 1ère cellule vide de la plage I7:T10000 = ici I14

Ce que fait le code
Atteint la 1ère cellule vide en ligne 7 = ici J7

Le fichier test en pièce jointe complètera, je l'espère, mon explication.

Si vous aviez la solution, ça m'arrangerait bien 😉

Avec mes remerciements, je vous souhaite à toutes et à tous un très bon WE pas trop froid,
Amicalement,
Lionel,
 

Pièces jointes

Dernière édition:
Bonjour le fil, le forum

@arthour973
Déjà mieux vaut dimer en Long
Dim L As Integer
Dim L As Long

Et un petit exemple qui peut toujours servir
VB:
Sub PremiereVide(Plage As Range)
Plage.End(xlDown).Offset(1, 0).Select
End Sub
Sub xtest()
On Error Resume Next
PremiereVide Range("A1")
End Sub
 
Dernière édition:
Re

@arthour973
Je n'ai jamais dit que cela changerait quelque chose
Je disais juste qu'il vaut mieux déclarer en Long
(notamment si on dispose des dernières version d'Excel)
(Je te laisse chercher pourquoi cela est conseillé 😉 )

By the way, j'ai ajouté des choses dans l'édition de mon précédent message
 
Re-JM,

Code:
Sub PremiereVide(Plage As Range)
Plage.End(xlDown).Offset(1, 0).Select
End Sub

Sub xtest()
On Error Resume Next
PremiereVide Range("A1")
End Sub

J'ai du mal comprendre 😕
J'ai créé une plage nommée "Plage",
J'ai ajouté tes codes en modules standard
Quand j'exécute xtest il ne se passe rien.
 
Re

Je n'ai jamais écrit que tu devais mon exemple dans ton classeur.

Cette macro était un exemple à tester dans un classeur vierge dans lequel tu auras mis quels données en a1:a50 par exemple
Ensuite efface une cellule dans cette plage puis lance ma macro.

C'est bien la première cellule vide qui est alors sélectionnée 😉
 
Re

@arthour973
No comment !!!😱😳🙄
VB:
Sub PremiereVide(Plage As Range)
Plage.Select '.End(xlDown).Offset(1, 0)
End Sub
Dans ma macro, ce que tu as mis en commentaire ne l'est pas chez moi, non !!!!

Pourquoi ne pas avoir simplement fait exactement le test décrit dans mon précédent message ?
 
Dernière édition:
Effectivement, tu as raison 🙂

J'ai remis ton code en modifiant juste A1 en I1 et ça fonctionne pour la colonne I
Mais il atteint toujours le colonne I et pas la colonne de la 1ère ligne vide de la plage.
Voir fichier joint.

je continue à chercher.
 

Pièces jointes

Re

@arthour973
Tu as édité ton message et changé de fichier!!!😡🙄
Et ce n'est pas J22 mais K17 !
(tu vas finir par m'énerver 😵 et c'est mauvais pour ma digestion)

Et avec cette macro?
VB:
Sub Le_Neant_Est_Il_Vide()
On Error GoTo Staple
Range("I7:T45").SpecialCells(xlBlanks)(1).Select
MsgBox "Première cellule vide: " & ActiveCell.Address
Exit Sub
Staple:
MsgBox "La plage de cellule: " & Range("I7:T45").Address(0, 0) & "ne contient aucune cellule vide!", vbInformation
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

Discussions similaires

  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
479
  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
649
Réponses
2
Affichages
500
Retour