J’ai utilisé un Vlookup pour renvoyer des valeurs dans la colonne I,cependant, seule la moitié des cellules de cette colonne ont renvoyé une valeur (les autres sont vierges). "J'aimerais que ma macro entre" "dans toutes les cellules vlookup vides plutôt que de conserver l'équation Vlookup dans la cellule. Je souhaite archiver toutes les valeurs de la colonne, puis modifier les cellules vides en =" "
Mon but ultime est d’afficher une note sur chaque ligne.selon que la cellule I a une valeur ou un blanc. Si la cellule I pour une ligne donnée est vide, la cellule de la colonne K de cette ligne remplira automatiquement "Traitée non encore payée". S'il existe une valeur dans la cellule I, la cellule K remplira automatiquement "Paide"
Mon problème est que je ne sais pas écrire unéquation qui évite les cellules cachées (cachées du filtre) et ne change que les valeurs des cellules affichées après le filtre. Mes en-têtes de colonne sont à la ligne 4 et mon code est présenté ci-dessous:
Dim Lastrow As Long
Lastrow = Cells(Rows.Count, "C").End(xlUp).Row
Range("A4:K" & Lastrow).Select
Selection.AutoFilter
ActiveSheet.Range("$A$4:$K" & Lastrow).AutoFilter Field:=9, Criteria1:="="
Range("I4").Offset(1, 0) = " "
Selection.AutoFill Destination:=Range("Range("I4").Offset(1, 0):I" &
Lastrow)
Réponses:
2 pour la réponse № 1Vous pouvez résoudre votre problème de plusieurs manières. Tout d'abord, vous pouvez simplement mettre une formule dans la colonne K pour vérifier si les cellules de la colonne I sont vides:
=IF(I4<>"","Paid","Processed Not Yet Paid")
Ou si vous êtes vraiment recherchez une solution macro, descendez cellule par cellule et vérifiez les valeurs:
Sub WhoDidntPay()
Dim lastrow As Long, i As Long
lastrow = Cells(Rows.Count, "C").End(xlUp).Row
For i = 4 To lastrow
If ActiveSheet.Range("I" & i).Value <> "" And _
ActiveSheet.Range("G" & i).Value = <> 0 Then
ActiveSheet.Range("K" & i).Value = "Processed Not Yet Paid"
Else
ActiveSheet.Range("K" & i).Value = "Paid"
End If
Next i
End Sub
Encore une fois, je suggère d'ajouter un IFERROR
à ton VLOOKUP
s afin que vous puissiez renvoyer une valeur cohérente si vous obtenez des erreurs, ou s’ils renvoient réellement des blancs, vous pouvez simplement utiliser ""
comme dans l'exemple ci-dessus.