VBA Fonction première cellule non vide

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

  • Classeur1.xls
    32.5 KB · Affichages: 112
  • Classeur1.xls
    32.5 KB · Affichages: 123
  • Classeur1.xls
    32.5 KB · Affichages: 112

Raja

XLDnaute Accro
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:

Robert

XLDnaute Barbatruc
Repose en paix
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
 

tototiti2008

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

  • Classeur1.xls
    32 KB · Affichages: 133
  • Classeur1.xls
    32 KB · Affichages: 153
  • Classeur1.xls
    32 KB · Affichages: 146
G

Guest

Guest
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
 

Discussions similaires

Statistiques des forums

Discussions
315 096
Messages
2 116 184
Membres
112 677
dernier inscrit
Justine11