eine If anwendung auf ganze spalte?
Hallo, Ich möchte gerne mit einer If... and ... Abfrage eine ganze spalte bis zur Zeile 120 durchführen. Muss ich da jetzt für jede Zeile einmal den ganzen Text schreiben wie im Bild gezeigt oder geht das einfacher?
Es wäre auch super wenn die namen mit den ergebnissen in den Reihen "I" und "J" direkt untereinander stehen würden und ggf schon sortiert nach den Ergebnissen in der Reihe "J" mit dem besten ganz oben, falls das geht.
vielen dank schonmal

1 Antwort
was etwas praktischer als ein Screenshot wäre, wäre der Code direkt als Text, dann könnte man den auch ändern - ich tippe das Bild nicht ab.
Man braucht natürlich nicht die Abfragen 120 Mal zu wiederholen, sondern setzt eine Variable ein, die man in einer Schleife durchgeht. In Deinem Fall jeweils die Zeilenangabe durch die Variable ersetzen:
for i=2 to 120
if sheets...(i,2) = "SK" and sheets...(i,3)="LG" then...
end if
next
das mit dem Sortieren habe ich nicht wirklich verstanden, was genau passieren soll.
Du kannst natürlich auch weitere Zellen kopieren, so wie bislang der (name?) aus Spalte A nach I kopiert wird, wenn die beiden Bedingungen erfüllt sind.
Ist es richtig, dass auch die Inhalte von B und D je Zeile kopiert werden sollen?
Da nicht jede Zeile kopiert wird, würde ich abfragen, welche die letzte benutzte Zeile in Spalte I ist, damit keine Lücken entstehen. Wenn das mit dem Kopieren passt, kann man noch das Sortieren einbauen
Sub Zelle_kopieren()
For i = 1 To 120
If Sheets("Heim").Cells(i, 2) = "SK" And Sheets("Heim").Cells(i, 3) = "LG" Then
letztezeile = Cells(Rows.Count, 9).End(xlUp).Row 'letzte Zeile in Spalte 9 = I wird ermittelt
Sheets("Heim").Cells(i, 1).Copy Destination:=Sheets("Heim").Cells(letztezeile + 1, 9) 'Spalte A nach Spalte I kopieren
Sheets("Heim").Cells(i, 2).Copy Destination:=Sheets("Heim").Cells(letztezeile + 1, 10) ' Spalte B nach Spalte J
Sheets("Heim").Cells(i, 4).Copy Destination:=Sheets("Heim").Cells(letztezeile + 1, 11) ' Spalte D nach Spalte K
End If
Next
End Sub
wenn die Zellen kopiert sind steht in der Reihe "I" nun ein Name und in der Reihe "J" ein Zahlenwert. Es wäre nun praktisch wenn die Spalten "I" und "J" nach dem Zahlenwert hin sortiert werden. Hier wäre es gut wenn der höchste wert mit dem dazu gehörigen Namen oben steht und abfallend weiter geht