VBA: Cellule vide mais avec formule

Bonjour,

J'ai ce code:

            For I = 2 To Sheets("Traitement").Range("BJ" & Rows.Count).End(xlUp).Row
                Set Fonc_1 = Sheets("Traitement").Range("$BJ" & I)
                If Fonc_1 <> "" Then
                Set Fonc_2 = Fonc_1.Offset(0, -35)
                    If Fonc_2.Offset(0, 0) = Fonc_2.Value Then
                            Sheets("Recherche").Range("$O" & K).Value = Fonc_2.Offset(0, 0)
                            Sheets("Recherche").Range("$P" & K).Value = Fonc_2.Offset(0, 1)
                            Sheets("Recherche").Range("$Q" & K).Value = Fonc_2.Offset(0, 2)
                            Sheets("Recherche").Range("$R" & K).Value = Fonc_2.Offset(0, 5)
                            Sheets("Recherche").Range("$S" & K).Value = Fonc_2.Offset(0, 6)
                            Sheets("Recherche").Range("$T" & K).Value = Fonc_2.Offset(0, 7)
                            Sheets("Recherche").Range("$U" & K).Value = Fonc_2.Offset(0, 8)
                            Sheets("Recherche").Range("$V" & K).Value = Fonc_2.Offset(0, 9)
                            Sheets("Recherche").Range("$W" & K).Value = Fonc_2.Offset(0, 10)
                            Sheets("Recherche").Range("$X" & K).Value = Fonc_2.Offset(0, 11)
                            Sheets("Recherche").Range("$Y" & K).Value = Fonc_2.Offset(0, 12)
                            Sheets("Recherche").Range("$Z" & K).Value = Fonc_2.Offset(0, 13)
                            K = K + 1
                        End If
                    End If
            Next I

Il me permet de faire une boucle jusqu’à la dernière cellule non vide.

dans les cellules en question il y à des formules ( =Traitement!E6 pour donné un exemple)

Sauf que tout ne retourne pas une valeur car la cellule E6 de Traitement peut être vide. ( E6 et incrémenter E7 E8 E9...)

Mais il considère que la cellule est quand même non vide.

Donc ma question comment faire pour lui dire que tu vas que jusqu’à la dernière case "non-vide" mais avec une formule dedans

merci à vous

NI3

Bonjour,

Merci de joindre ton fichier pour qu'on voie plus clair.

Bonsoir,

Une piste serait de demander à VBA de chercher une cellule vide dans la colonne BJ de la feuille Traitement. Ce qui donnerait

            For I = 2 To Sheets("Traitement").Columns("BJ").Find(What:="",Lookin:=xlFormulas,Lookat:=xlWhole).Row - 1
                Set Fonc_1 = Sheets("Traitement").Range("$BJ" & I)
                If Fonc_1 <> "" Then
                Set Fonc_2 = Fonc_1.Offset(0, -35)
                    If Fonc_2.Offset(0, 0) = Fonc_2.Value Then
                            Sheets("Recherche").Range("$O" & K).Value = Fonc_2.Offset(0, 0)
                            Sheets("Recherche").Range("$P" & K).Value = Fonc_2.Offset(0, 1)
                            Sheets("Recherche").Range("$Q" & K).Value = Fonc_2.Offset(0, 2)
                            Sheets("Recherche").Range("$R" & K).Value = Fonc_2.Offset(0, 5)
                            Sheets("Recherche").Range("$S" & K).Value = Fonc_2.Offset(0, 6)
                            Sheets("Recherche").Range("$T" & K).Value = Fonc_2.Offset(0, 7)
                            Sheets("Recherche").Range("$U" & K).Value = Fonc_2.Offset(0, 8)
                            Sheets("Recherche").Range("$V" & K).Value = Fonc_2.Offset(0, 9)
                            Sheets("Recherche").Range("$W" & K).Value = Fonc_2.Offset(0, 10)
                            Sheets("Recherche").Range("$X" & K).Value = Fonc_2.Offset(0, 11)
                            Sheets("Recherche").Range("$Y" & K).Value = Fonc_2.Offset(0, 12)
                            Sheets("Recherche").Range("$Z" & K).Value = Fonc_2.Offset(0, 13)
                            K = K + 1
                        End If
                    End If
            Next I
 

A tester.

Si cela ne va pas, comme l'a signalé Raja, un fichier nous aiderait à y voir plus clair.

Rechercher des sujets similaires à "vba vide formule"