Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1788to1792
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA kopieren

VBA kopieren
21.10.2020 08:47:19
Peter
Ich möchte gerne einen Code kopieren und zwar nur solange bis die erste befüllte Zelle kommt.
Die Tabelle wird sortiert sodass alle "Leeren" oben stehen, jetzt soll nur solange befüllt werden solange die Zelle leer ist aber Excel überschreibt mir immer alle Zelle?
Code:
ActiveCell.FormulaR1C1 = _
"=IFERROR(INDEX(Tabelle1!C,AGGREGATE(15,6,ROW(R2C1:R59456C[-7])/((Tabelle1!R2C3:R59456C3=R[1]C4)+(Tabelle1!R2C4:R59456C4=R[1]C3)>0)/(R[1]C5>=Tabelle1!R2C1:R59456C1)/(R[1]C5<=Tabelle1!R2C2:R59456C2),1)),"""""""")"
Dim lngLast As Long
lngLast = Cells(Rows.Count, 1).End(xlUp).Row
'Kopiere die Formel bis zur letzen Zelle die leer ist
Range("G2").AutoFill Destination:=Range("G2:G" & lngLast)
Vielen Dank und Grüße
Peter

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA kopieren
21.10.2020 08:52:54
Werner
Hallo,
die letzte belegte Zelle er mittelst du in Spalte A, die Formel schreibst du dann aber in Spalte G. Ist das so korrekt?
Gruß Werner
AW: VBA kopieren
21.10.2020 09:00:04
Peter
Sorry Nein, muss natürlich die Letze leere in G sein also
lngLast = Cells(Rows.Count, 7).End(xlUp).Row
Danke!!
ich lese gerade...
21.10.2020 09:17:38
Werner
Hallo,
...dass deine "Leerzellen" oben stehen. Somit bringt dich das ermitteln der letzten belegten Zelle von unten nach oben nicht weiter. So bekommst du ja immer die tatsächlich letzte belegte Zelle ganz unten und du überschreibst dir immer die Daten.
Teste mal:
Sub Schaltfläche1_Klicken()
Dim loLetzte As Long
With Worksheets("Tabelle1")
loLetzte = .Cells(.Rows.Count, "G").End(xlUp).End(xlUp).Row
If loLetzte > 1 Then
.Range(.Cells(2, "G"), .Cells(loLetzte - 1, "G")).FormulaR1C1 = _
"=IFERROR(INDEX(Tabelle1!C,AGGREGATE(15,6,ROW(R2C1:R59456C[-7])/((Tabelle1!" _
& "R2C3:R59456C3=R[1]C4)+(Tabelle1!R2C4:R59456C4=R[1]C3)>0)/(R[1]C5>=Tabelle1!" _
& "R2C1:R59456C1)/(R[1]C5
Gruß Werner
Anzeige
AW: ich lese gerade...
21.10.2020 09:25:38
Peter
Hallo Werner,
irgendwas mache ich falsch, es kommt immer "keine Leerzeilen" aber die Spalte G ist von G2 bis G5806
leer und genau das muss mit dem Code befüllt werden. Natürlich kann ich es auch manuell machen, dann funktioniert der Code aber ich würde es gerne in VBA umsetzten um es einfach "durchlaufen" zu lassen.
Danke
Peter
AW: ich lese gerade...
21.10.2020 10:00:18
Werner
Hallo,
versuch mal das hier:
Sub Schaltfläche1_Klicken()
Dim loLetzte As Long
With Worksheets("Tabelle1")
If WorksheetFunction.CountA(.Columns("G")) > 1 Then
If .Cells(2, "G") = "" Then
loLetzte = .Cells(.Rows.Count, "G").End(xlUp).Row
If .Cells(loLetzte - 1, "G")  "" Then
loLetzte = .Cells(.Rows.Count, "G").End(xlUp).End(xlUp).Row
End If
.Range(.Cells(2, "G"), .Cells(loLetzte - 1, "G")).FormulaR1C1 = _
"=IFERROR(INDEX(Tabelle1!C,AGGREGATE(15,6,ROW(R2C1:R59456C[-7])/((Tabelle1!" _
& "R2C3:R59456C3=R[1]C4)+(Tabelle1!R2C4:R59456C4=R[1]C3)>0)/(R[1]C5>=Tabelle1!" _
& "R2C1:R59456C1)/(R[1]C5
Wenn es nicht geht, bitte deine Mappe hier hochladen.
Frage: Sind die Zellen tatsächlich leer oder kann es sein, dass da Formeln drin sind, die Leer ausgeben?
Gruß Werner
Anzeige
AW: ich lese gerade...
21.10.2020 10:13:28
Peter
.. es kommt leider immer derselbe Fehler "Fehler: Keine Leerzellen vorhanden."......
Es steht da nichts drin auch keine Formel, Datei geschlossen und neu geöffnet alles versucht....
Ich sagt trotzdem Danke, ich mach das einfach manuell, da bin ich schneller
Schönen Tag und viele Grüße
Peter

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige