Trouver la première cellule vide (mais avec formule)

Bonjour à tous,

Dans le code suivant :

Sub CopyColors1()
Dim ws As Worksheet
Dim sText As String
Dim r As Range 
Dim f As Range 
Dim lRow As Long
Dim sAddress As String
Dim lColor As Long
Dim iFirstLine As Integer
Dim i As Integer

Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual

Set ws = Worksheets("BLOCKS")

iFirstLine = ws.Range("K3").End(xlDown).Row

For i = 3 To iFirstLine

    sText = ws.Cells(i, 11).Value
    lColor = ws.Cells(i, 11).DisplayFormat.Interior.Color

        With Worksheets("Sys_Customer_DB").Range("K5:CN999")
            Set r = .Find(What:=sText, LookIn:=xlValues) 'lookat:=xlWhole)
            If Not r Is Nothing Then
                    sAddress = r.Address
                Do
                    r.Interior.Color = lColor
                    Set r = .FindNext(r)

                Loop While r.Address <> sAddress
            End If

        End With
Next

Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
End Sub

Je viens tout d'abord chercher la première cellule vide dans la colonne K de la feuille BLOCKS.

En suite je balaye la colonne K de la ligne 3 à la première cellule vide (non comprise), je récupère la valeur et la couleur.

Dans la feuille Sys_Customer_DB, je cherche toutes les correspondances dans la plage K5:CN999 et recopie la couleur correspondante à la valeur.

La partie qui cherche la première cellule vide de la colonne K est celle qui me pose problème.

En effet, toute la colonne K contient la formule du type : =SI(OU(E3="";G3="");"";CONCATENER(E3;"_";G3))

Donc les cellules VIDES ne le sont pas vraiment car elles contiennent la formule.

Je ne sais pas comment faire remonter la première cellule vide en apparence.

Est-ce qu'il serait possible d'utiliser quelque chose du type ".DisplayFormat" ?

Je ne pourrais malheureusement pas partager mon fichier.

Merci par avance

Bonjour,

Une solution beaucoup plus simple est de structurer tes données en tableau excel. Ainsi la formule n'est présente que sur les lignes du tableau, et pas de soucis elle se transmet sur les nouvelles lignes.

Bonjour Steelson,

Je suis désolé mais je ne suis pas sur de comprendre ta réponse....

As-tu un fichier ? simplifié et anonymisé ? ce sera plus facile pour répondre (et peut-être comprendre un détail que je n'ai pas perçu).

J'ai bien essayé, mais même allégé le fichier reste trop lourd pour être envoyé

14test.xlsm (20.16 Ko)

20ko

ce que je démontre par là, c'est que c'est inutile de mettre une formule colonne K jusqu'en bas si elle n'est pas utile, il suffit de la mettre dans un tableau et elle s'appliquera aux nouvelles lignes en cas de besoin

Effectivement c'est une solution merci !

Trop compliqué à mettre en place dans mon cas (en tout cas avec mes connaissances) étant donné comment la feuille block est construite.

Sinon, j'ai trouvé une solution très simple : rajouter If Not sText = "" Then avant mon with, et sText ne prend plus .Value mais .Text.

Merci !

Rechercher des sujets similaires à "trouver premiere vide formule"