Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1628to1632
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 Formel immer über Überschrift kompieren

VBA Formel immer über Überschrift kompieren
02.07.2018 14:35:00
Jan
Hallo,
ich habe ein kleines Problem und komme absolut nicht auf die Lösung.
Ich hoffe hier kann mir einer helfen.
Ich hab eine VBA Formel, mit der ich in eine Tabelle, die in verschiedenen Bereichen (Blöcke) unterteilt sind, jeweils über die überschrift in die erste Spalte, eine Formel kopieren möchte.
Das ist jetzt erst mal noch nicht mein Problem, mein Problem ist, dass die Formel kopiert wird, aber die zugewisenen Zellen un der Formel nicht verändert werden, also die bleiben bei allen gleich.
Ich möchte aber einen Teil davon feststehen lassen, diese hab ich auch mit $ gekenzeichnet. Die anderen sollen jeweils 2 zeilen unter der formel die daten ziehen.
Hier zur erklärung was ich will:
Zelle: A
1 Formel
2 Überschrift
3 Daten
4 Daten
5 Daten
6
7 Formel
8 Überschrift
9 Daten
10 Daten
11
12 Formel
13 Überschrift
14 Daten
15 Daten
16 Daten
17 Daten
18 Daten
19 Daten
20
usw.
Ich möchte jetzt automatisch folgende Formelin die Zellen A1, A7, A12 usw. kopieren lassen: =VERKETTEN($F$466;" ";A3;" ";$F$468;" ";B3;" ";C5;" ";$F$471)
Die Zellen A3, B3 und C3 sollen jeweils pro Block angeglichen werden, also A9, B9, C9 und A14, B14 und C14 usw.
Die Formel hab ich hier in der Zelle hinterlegt und wird daraus genommen, wenn es hilft: A100
So sieht der Teil der Formel gerade aus:
.Range(.Cells(First - 2, 1), .Cells(First - 2, 1)).Value = .Range("A100").Formula
Ich hoffe Ihr versteht was ich vorhab und könnt mir helfen.
schon einmal vielen Dank

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Warum trägst du eine Fml in OriginalNotation als …
02.07.2018 17:50:05
Luc:-?
…Zellwert ein und nicht wieder unter .Formula, Jan?
Wenn sie sich in den relativen Bezügen anpassen soll, wäre es allerdings wohl ohnehin besser, .FormulaR1C1 zu verwenden.
Gruß, Luc :-?
AW: Warum trägst du eine Fml in OriginalNotation als …
03.07.2018 08:12:22
Jan
Hallo,
vielen Dank.
Wenn ich das richtig verstanden habe, soll ich die Formel so erstellen:
.Range(.Cells(First - 2, 1), .Cells(First - 2, 1)).Value = .Range("A100").FormulaR1C1
Das hab ich gemacht, macht auch schon fast das was es soll. Hier wird jetzt aber leider auf folgende Zellen gezeigt:
=VERKETTEN($F$506;" ";XEZ1048205;" ";$F$514;" ";AM1048205;" ";AN1048205;" ";$F$526)
Statt XEZ1048205 und AM1048205 und AN1048205 sollte es auf die Zellen zeigen:
=VERKETTEN($F$466;" ";A5;" ";$F$468;" ";AV5;" ";AW5;" ";$F$471)
Was mach ich falsch?
Vielen Dank
Anzeige
AW: Warum trägst du eine Fml in OriginalNotation als …
03.07.2018 09:08:05
Daniel
Hi
Du musst auf beiden Seiten .FormulaR1C1 verwenden.
.Range(.Cells(First - 2, 1), .Cells(First - 2, 1)).FormulaR1C1 = .Range("A100").FormulaR1C1
Oder nimm Copy-Paste
.Range("A100").copy
.Range(.Cells(First - 2, 1), .Cells(First - 2, 1)).PasteSpecial xlpasteformulas
Gruß Daniel
AW: Warum trägst du eine Fml in OriginalNotation als …
03.07.2018 09:47:17
Jan
Hallo Daniel,
vielen Dank, aber es ist immer noch gleich:
hier der Code:
.Range(.Cells(First - 2, 1), .Cells(First - 2, 1)).FormulaR1C1 = .Range("F498").FormulaR1C1
und dieses schreibt er in die erste überschrift:
=VERKETTEN($F$506;" ";XEZ1048097;" ";$F$514;" ";AM1048097;" ";AN1048097;" ";$F$526)
Danke
Anzeige
Dann .Formula
03.07.2018 09:54:40
Daniel
Hi
dann andersrum.
wenn der Exakte Formeltext übertragen werden soll ohne Anpassung der relativen Zellbezüge, dann eben:
.Range(.Cells(First - 2, 1), .Cells(First - 2, 1)).Formula = .Range("F498").Formula
ansonsten wäre es notwendig zu wissen:
- welche Formel steht in F498?
- in welche Zelle wird die Formel übernommen, dh welchen Wert hat First?
- wie soll die Formel in der Zielzelle aussehen?
btw, wenn du in der Range zweimal die gleiche Zelle angibst, dann kannst du dir die Range auch sparen.
dh statt .Range(.Cells(First - 2, 1), .Cells(First - 2, 1)) reicht auch .Cells(First - 2, 1)

Gruß Daniel
Anzeige
AW: Dann .Formula
03.07.2018 10:03:58
Jan
Hallo Daniel,
ja das stimmt. Also in F498 steht diese Formel: =VERKETTEN($F$506;" ";A3;" ";$F$514;" ";AR3;" ";AS3;" ";$F$526)
Diese soll sich dann je nach block, wo sie hinkopiert werden soll, angleichen. Evtl. gibt es ja so eine Möglichkeit, dass man sagt, die feststehende Elemente: $F$506 und $F$514 und $F$526 bleiben immer gleich und die anderen gibt man mit, in dem man sagt, unter den eingefügten Feld zwei zeilen nach unten in der Spalte A, in der spalte AR und in der Spalte AS die Zelle wählen.
Immer zwei zeilen unter der Formel die er einfügen soll.
Ich hoffe man kann verstehen was ich meine.
Mit den neuen Code von dir, geht es leider nicht, da hier die zellen immer gleich bleiben.
Vielen Dank
Anzeige
AW: Dann .Formula
03.07.2018 11:45:37
Daniel
Hi
nimm mal diese Formel in F496
=VERKETTEN($F$506;" ";$A498;" ";$F$514;" ";$AR498;" ";$AS498;" ";$F$526)
dann müsste .Copy-PasteSpecial oder .FormulaR1C1 = .FormulaR1C1 funktionieren.
die Spalten sind dann beim kopieren absolut.
die Zeilennummer soll sich ja anpassen, die muss relativ sein. Da du in der A1-Adressierungsart keine relativen Bezüge (zwei nach unten, zwei nach oben) angeben kannst, musst du die Zeilennummer immer passen zu der Zeile schreiben, in welcher die Formel steht.
Formel steht in Zeile 496 dann
- zwei zeilen nach unten: 498
- zwei Zeilen nach oben: 494
Gruß Daniel
Anzeige
AW: Dann .Formula
03.07.2018 12:37:09
Jan
Hallo,
nein das geht leider nicht. Es bleibt immer die Formel bei allen gleich: =VERKETTEN($F$666;" ";$A634;" ";$F$698;" ";$AO634;" ";$AP634;" ";$F$746)
er hat sie zwar geändert, zur ausgangsformel von =VERKETTEN($F$506;" ";A3;" ";$F$514;" ";AR3;" ";AS3;" ";$F$526) aber diese wird halt überall reingesertzt, ohne veränderung.
Und da ich verschiedene Blöcke habe, die immer verschieden gross sein können, ist es schwer zu sagen, welche spalte er übernehmen soll.
Die Formel die er kopieren soll, steht immer in der Zelle: F498. Wo er diese zu erst hinsetzt, wechselt immer, daher der gedanke, nimm aus spalte a zwei zeien tiefer inhalt.
Gruß
Anzeige
AW: Dann .Formula
03.07.2018 12:50:51
Daniel
Ohne Beispieldatei wird das nichts.
Erstelle eine Datei mit zwei Blättern
Das erste Blatt sollte zeigen, wie die Daten ursprünglich vorliegen, das zweite dein Wunschergebnis für Blatt 1, von Hand erstellt.
Markiere die relevanten Zellen farblich (Quellzelle die Formel, Zielzelle)
Gruß Daniel
AW: VBA Formel immer über Überschrift kompieren
03.07.2018 09:51:03
Jan
Hallo Daniel,
zu deiner anderen Möglichkeit.
.Range("A100").copy
.Range(.Cells(First - 2, 1), .Cells(First - 2, 1)).PasteSpecial xlpasteformulas
Hier wird dann ein Fehler zum Bezug angezeigt:
=VERKETTEN($F$506;" ";#BEZUG!;" ";$F$514;" ";#BEZUG!;" ";#BEZUG!;" ";$F$526)
Vielen Dank
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige