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 IIl 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.