Wert einfügen mit Bedingungen

Geschlossen
tobias - 5. April 2011 um 18:01
 dinos - 6. April 2011 um 12:24
Guten Tag,

ich habe Probleme ein macro zu erstellen:
Meine Spalte F hat nur Texte: z.B : Warrant; Equities, Deposit, Clif Loan, XL-Loan, Term Loan, Cash, overdraft...
ich möchte dass das Wort " LOAN" in Spalte G erscheint, wenn es in Spalte F "loan" auftaucht und das in der jeweiligen Zeile.
z.B : ( der Text beginn ab Zeile 7, es ist blank bevor )

Expected Result:
H | G
Warrant |
Equities |
Deposit |
Clif Loan | loan
XL-Loan | loan
ma tentative:
Sub CashvsCashSUBCATEGORY()
Sheets("Valuation").Activate
ActiveSheet.Range("F:F").AutoFilter Field:=6, Criteria1:= _
"=*loan*", Operator:=xlAnd
With Selection.Interior
.Pattern = xlNone
.TintAndShade = 0
.PatternTintAndShade = 0
End With
Range("G7:G" & End_Of_Table).Select
ActiveCell.FormulaR1C1 = "LOAN-TEST"
Selection.FillDown
End Sub

Der Filter scheint in Spalte F zu laufen, aber er kopiert nicht "loan" in Spalte G
Ich bekomme die Fehlermeldung : Error 1024
und die Zeile Range("G7:G" & End_Of_Table).Select wird in gelb angzeigt
Kann jemand das Problem lösen ?

Danke !!!!

1 Antwort

Hallo,

es reicht nicht eine Variable zu definieren , man muss auch ihr einen Wert zuweisen. Das Problem i Tabellenprogramme ist es, einen sichtbaren Feld zu selektieren. Man muss also die erste sichtbare Zelle vom Feld suchen und dann die letzte benutzte Zelle i der Bezugsspalte (hier F)

In falle von einem einzigen Kriterium, ersetzen Sie folgende Zeilen:

Range("G7:G" & End_Of_Table).Select
ActiveCell.FormulaR1C1 = "LOAN-TEST"
Selection.FillDown

mit :

Range("G7").Select
Dim cellule As Range
Set cellule = ActiveCell
' nächste sichtbare Zelle holen
Do
Set cellule = cellule.Offset(1, 0)
Loop Until cellule.EntireRow.Hidden = False
cellule.Select
ActiveCell.FormulaR1C1 = "LOAN-TEST"
Selection.Copy
Range("G" & ActiveCell.Row & ":G" & Range("F65536").End(xlUp).Row).Select
ActiveSheet.Paste

Diese Code ist nicht ganz sauber,aber er sollte gehen.

Die Variable End_Of_Table kann gelöscht werden, falls sie nicht wo anders verwendet wäre.