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

VBA Fonction première cellule non vide

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 !

tototiti2008

XLDnaute Barbatruc
Bonjour à tous,

j'aimerais déterminer la cellule où se trouve la première cellule non vide (contenant une valeur fixe ou une formule) d'une feuille.
j'ai bien essayé avec les SpecialCells mais justement, il faut choisir entre valeur fixe et formule.

alors j'ai fait la fonction PremCellNonVide (voir fichier joint) qui renvoie l'adresse de la première cellule non vide, mais comme elle est basée sur une boucle, je me demandais s'il n'y avait pas une façon plus simple et plus optimisée de le faire...

Merci d'avance de vos commentaires
 

Pièces jointes

Re : VBA Fonction première cellule non vide

Bonjour tototiti2008,

Essaye le code suivant :

Code:
Sub PremCellNonVide()
  For Each c In Cells
    If c <> "" Then
      MsgBox (c.Address)
      Exit For 'Sortie du boucle si on trouve une cellule non vide
    End If
  Next
End Sub
 
Dernière édition:
Re : VBA Fonction première cellule non vide

Bonjouir Tototiti, Raja, bonjour le forum

une autre propositin :

Code:
Sub Macro2()
MsgBox "Première cellule non vide en " & ActiveSheet.UsedRange.Cells(1).Address(0, 0)
End Sub
 
Re : VBA Fonction première cellule non vide

Bonjour Raja,

merci de ton intérêt. Mon "problème" vient du fait que sur une feuille vide, ma fonction est un peu lente... malheureusement, la tienne encore plus.

je viens d'améliorer la mienne mais si quelqu'un connait une combinaison de SpecialsCells, End ou Find magique qui me donne un résultat rapide, je suis preneur 🙂

ma version améliorée :
 

Pièces jointes

Re : VBA Fonction première cellule non vide

Bonjour Tototiti,

Essaies ceci:

Code:
Function AdressePremiereCelluleNonVide() As String
Dim c As Range
    Set c = Cells.Find(What:="*", After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
        xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
        , SearchFormat:=False)
    If Not c Is Nothing Then AdressePremiereCelluleNonVide = c.Address
End Function

A bientôt
 
- 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
4
Affichages
244
Réponses
3
Affichages
212
wDog66
W
Réponses
1
Affichages
400
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…