Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
24.04.2024 17:19:09
Anzeige
Archiv - Navigation
1920to1924
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
Formel in Spalte
22.02.2023 09:12:46
Thomas
Hallo Excelfreunde,
bezugnehmend zur Anfrage von gestern:
https://www.herber.de/forum/messages/1921041.html
Da hat mir Michael diese Formel geschrieben:
https://www.herber.de/forum/messages/1921185.html.
Nun wollte ich mit VBA diese Formel in den Bereich F3: F10 schreiben. Dazu habe ich den Rekorder angeworfen. Dies ist das Ergebnis:

Range("F3").Select
ActiveCell.FormulaR1C1 = _
"=IF(RC[-3]="""","""",IFERROR(INDEX(R3C1:R13C1,AGGREGATE(14,6,ROW(R1C2:R11C2)/(SEARCH(Tabelle1!RC[-3],R3C1:R13C1)^0),1)),""""))"
Selection.AutoFill Destination:=Range("F3:F19"), Type:=xlFillDefault


Dies Funktioniert eigentlich ganz gut. Mein Problem ist aber das die Spaltenangabe, der zu durchsuchenden Spalte, in diesem Fall Spalte a, variabel sein muss.
Dies ist dann immer die Aktive Spalte ( SPnr= ActiveCell.Column)). Welche ich in der Variable SPnr habe.
Aber egal was ich versuche es funktioniert einfach nicht. Wenn ich IFERROR(INDEX("R3" & SPnr benutze, bekomme ich gleich eine Fehlermeldung.
Wenn ich es mit
ActiveCell.FormulaLocal = "=WENN(C3="";"";WENNFEHLER(INDEX($A$3:$A$13;AGGREGAT(14;6;ZEILE($B$1:$B$11)/(SUCHEN(Tabelle1!C3;$A$3:$A$13)^0);1));""))"""
versuche bekomme ich schon ohne den Einsatz einer Variablen die Fehlermeldung " Anwendungsfehler "
Nun weis ich mir kein Rat mehr.
Vielleicht wäre dies sogar besser wenn man das ganze ohne Formel macht und dies gleich mit einem Makro löst. Aber auch das habe ich noch nicht geschafft.
Ich habe alles noch mal im Beispiel dargestellt. Kann sich dies mal jemand anschauen?
https://www.herber.de/bbs/user/157946.xlsb

Kann sich dies jemand von euch mal anschauen?
mfg thomas

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Formel in Spalte
22.02.2023 09:51:14
hary
Moin
Sollte gehen. Hab deine Mappe nicht angesehen.
Dim SPnr As Long
SPnr = ActiveCell.Column
  Range(Cells(3, SPnr), Cells(19, SPnr)).FormulaR1C1 = "=IF(RC[" & SPnr & "]="""","""",IFERROR(INDEX(R3C1:R13C1,AGGREGATE(14,6,ROW(R1C2:R11C2)/(SEARCH(Tabelle1!RC[-3],R3C1:R13C1)^0),1)),""""))"
Zu deiner Local Formel:schau dir mal die Gaensepfoten(muessen gedoppelt sein) an.
ActiveCell.FormulaLocal = "=WENN(C3="""";"""";WENNFEHLER(INDEX($A$3:$A$13;AGGREGAT(14;6;ZEILE($B$1:$B$11)/(SUCHEN(Tabelle1!C3;$A$3:$A$13)^0);1));""""))"
gruss hary
Anzeige
AW: Formel in Spalte
22.02.2023 13:59:04
Thomas
Hallo Harry und Beverly:
habt rechtvielen dank für eure hinweise.
Harry:
dein Vorschlag habe ich versucht um zuschreiben. Derzeit wird sonst die Formel in den Bereich A3 bis A13 eingeschrieben. Sie muss aber in den Bereich F3:F18.
Bis hier bin ich gekommen:
Range("f3:f18").FormulaR1C1 = "=IF(R[" & 0 & "]C[" & -3 & "]="""","""",IFERROR(INDEX( R[" & 0 & "]C[" & -5 & "]:R[" & 13 & "]C[" & -5 & "],AGGREGATE(14,6,ROW(R1C2:R11C2)/(SEARCH(Tabelle1!RC[-3],R3C1:R13C1)^0),1)),""""))"
Aber sobald ich den letzten teil R3C1:R13C1)^0),1)),""""))" anpasse bekomme ich eine Fehlermeldung.
Beverly:
ich habe das Makro jetzt folgendermaßen angepasst:
Dim SPnr 'As Long
'Range("a1").Select
SPnr = 1 'ActiveCell.Column
'
Range("f3:f18").FormulaLocal = "=WENN(C3="""";"""";WENNFEHLER(INDEX(Range(Cells(3,SPnr), Cells(13,SPnr));AGGREGAT(14;6;ZEILE($B$1:$B$11)/(SUCHEN(Tabelle1!C3;Range(Cells(3,SPnr),Cells(13,SPnr)))^0);1));""""))"
Leider bekomme ich immer noch die Fehlermeldung " Anwendungsfehler. ( aber erst beim Makrostart)
Wenn ich dies so lasse:
Range("f3:f18").FormulaLocal = "=WENN(C3="""";"""";WENNFEHLER(INDEX($A$3:$A$13;AGGREGAT(14;6;ZEILE($B$1:$B$11)/(SUCHEN(Tabelle1!C3;$A$3:$A$13)^0);1));""""))"
funktioniert es tadellos. Aber sobald ich Cells benutze bekomme ich diese Fehlermeldung.
Range("f3:f18").FormulaLocal = "=WENN(C3="""";"""";WENNFEHLER(INDEX(Range(Cells(3,SPnr), Cells(13,SPnr));AGGREGAT(14;6;ZEILE($B$1:$B$11)/(SUCHEN(Range(Cells(3,SPnr),Cells(13,SPnr)))^0);1));""""))"
könnt ihr euch dies nochmal anschauen?
https://www.herber.de/bbs/user/157953.xlsb
mfg thomas
Anzeige
AW: Formel in Spalte
22.02.2023 15:04:48
Beverly
Hi Thomas,
Range("f3:f18").FormulaLocal = "=WENN(C3="""";"""";WENNFEHLER(INDEX(" & Range(Cells(3, SPnr), Cells(13, SPnr)).Address & ";AGGREGAT(14;6;ZEILE($B$1:$B$11)/(SUCHEN(Tabelle1!C3;" & Range(Cells(3, SPnr), Cells(13, SPnr)).Address & ")^0);1));""""))"
Bis später
Karin

ja es klappt
22.02.2023 15:16:09
Thomas
Hallo Beverly,
es klappt.
Da hätte ich noch drei Tage suchen können, darauf wäre ich nie gekommen.
Hab riesen dank für deine Hilfe. Nun kann ich weitermachen. Ohne diese Lösung hätte ich das ganze vorhaben stoppen müssen.
Bleib wie du bist und besten dank.
mfg thomas
Anzeige
AW: Formel in Spalte
22.02.2023 09:54:05
Beverly
Hi Thomas,
die Formel in F3 musst du so eintragen:
Range("F3").FormulaLocal = "=WENN(C3="""";"""";WENNFEHLER(INDEX($A$3:$A$13;AGGREGAT(14;6;ZEILE($B$1:$B$11)/(SUCHEN(Tabelle1!C3;$A$3:$A$13)^0);1));""""))"
Bis später
Karin

306 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige