Scanner les colonnes pour trouver la première cellule vide

Bonjour,

J'aurais besoin de "scanner" les colonnes d'une feuille (de la colonne [A] à [BE] pour l'instant...) pour trouver dans chacune la dernière cellule utilisée (afin d'appliquer une mise en forme particulière à chacune en fonction de son contenu).

Je sais faire sur une feuille entière:

lignok = Range("A65536").End(xlUp).Offset(1, 0).Row

Mais je souhaiterais traiter colonne par colonne afin de gagner du temps...

Avez vous une idée ?

Merci

Bonjour

Un manière de faire

Sub test()
Dim I As Integer
Dim lignok as Long

  For I = 1 To 57    ' Colonnes A à BE
    lignok = Cells(Rows.Count, I).End(xlUp).Row
    '
    ' traitement de la colonne I
    '
  Next I
End Sub

Je vais essayer.... Dès que je peux

En fait ça ne fonctionne pas....

Je pense que c'est parce que même si ces cellules sont vides "visuellement", elle contiennent toutes une liaison (copier/coller avec liaison) vers une feuille d'un autre classeur (jusqu'à la ligne 2500)...

Ce qui fait que le code me retourne toujours lignok = 2500 , même si seulement les 10 premières cellules sont remplies.

Y aurait il moyen de contourner ça ?

Merci

Bonjour!

Je ne suis pas expert en excel mais tu peux toujours essayer çà...

Mais si tu dis qu'il y a une formule (du genre =feuille1!H14 ?!) je ne suis pas sûre que ça puisse marcher, a moins peut être de changer le formula par formulaLocal ou Range (je connais pas trop leurs différences)

Dim i, j As Integer
For j = 1 to 57
Do While ActiveSheet.Cells(i , j).formula <> ""
            i = i+1
Loop
MsgBox "la cellule (" & i & ";" & j & ") est vide."
NeXT j

Bonjour

Donc à première vue tu as une formule qui retourne "" si pas de données

Alors tu peux essayer cela

Sub Verif()
Dim I As Integer

  For I = 1 To 57
    lignok = Compte(I)
    '
    ' traitement de la colonne I
    '
  Next I
End Sub

Function Compte(Colonne As Integer) As Long
Dim Tablo
Dim Lg As Long

  Lg = Cells(Rows.Count, Colonne).End(xlUp).Row
  Tablo = Range(Cells(1, Colonne), Cells(Lg, Colonne))
  For Compte = UBound(Tablo) To 1 Step -1
    If Tablo(Compte, 1) <> "" Then Exit For
  Next Compte
  If Compte = 0 Then Compte = 1
End Function

La méthode de Sym est bonne (juste à voir laquelle est plus rapide) mais à ce niveau peut-être pas grand chose

Rechercher des sujets similaires à "scanner colonnes trouver premiere vide"