Formeln per Code / Spalten einfügen und anpassen

Bild

Betrifft: Formeln per Code / Spalten einfügen und anpassen
von: Erich M.
Geschrieben am: 24.04.2005 15:56:42
Hallo EXCEL-Freunde,
eine umfangreiche Datei mit ca. 5 - 6000 Zeilen wird mit bestimmten Grunddaten
immer wieder neu aktualisiert. Durch Formeln in bestimmten Spalten sind sofort die
neuen Ergebnisse aus den neuen Grunddaten ermittelt.
Allerdings wird durhc die Anzahl der Formeln die Datei sehr groß und träge.
Nun beabsichtige ich, die Formeln in den Zellen mit einem Code zu ersetzen -
was mir auch gelungen ist. Allerdings scheitere ich an folgendem Problem:
Die code-Formeln sind auf bestimmte spalten fixiert. Wenn jetzt eine Spalte
eingefügt wird stimmen die Code-Formeln nicht mehr.
Ich habe schon experimentiert, dass eine bestimmte Spalte fixiert wird und
von dieser alles abhängig ist (mit + und -) - aber ohne Erfolg.
Grundsätzlich wäre garamtiert, dass immer erst ab Spalte B eingefügt wird,
so dass Spalte A immer Spalte 1 sein könnte.
Zur besseren Erläuterung habe ich eine Musterdatei hochgeladen, mit Beschreibung.
https://www.herber.de/bbs/user/21621.xls
Besten Dank wer sich die Mühe macht. Dabei kann ich mir vorstellen, dass viele
EXCELianer mit dem Problem zu tun haben - und vielleicht bereits gelöst haben?
mfg
Erich
EXCEL-Shareware und Freeware: http://www.toolex.de
EXCEL und Lottogewinne machen glücklich: http://48678.rapidforum.com

Bild

Betrifft: AW: Formeln per Code / Spalten einfügen und anpassen
von: Herbert
Geschrieben am: 24.04.2005 16:01:25
Hi,
vergib für die Spalten Namen, die bleiben gleich, auch wenn Spalten eingefügt werden.
mfg Herbert
Bild

Betrifft: AW: Formeln per Code / Spalten einfügen und anpass
von: Erich M.
Geschrieben am: 24.04.2005 16:14:46
Hallo Herbert,
danke für den Tipp. Aber wie muss ich Namen bei diesem Code verwenden:
Option Explicit
Sub testen()
Sheets("Grunddaten").Select
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
'18
Cells(6, 18).FormulaR1C1 = "=RC[-12]&RC[-17]"
'19
Cells(6, 19).FormulaR1C1 = _
"=IF(MATCH(RC[-18],C[-18],0)=ROW(),""Original"",""Doppelt"")"
'20
Cells(6, 20).FormulaR1C1 = "=COUNTIF(C[-19],RC[-19])"
'21
Cells(6, 21).FormulaR1C1 = _
"=IF(COUNTIF(C[-20],RC[-20])>0,1/COUNTIF(C[-20],RC[-20]))"
'22
Cells(6, 22).FormulaR1C1 = "=SUMIF(C[-21],RC[-21],C[-18])"
'23
Cells(6, 23).FormulaR1C1 = "=SUMIF(C[-17],RC[-17],C[-19])"
'24
Cells(6, 24).FormulaR1C1 = "=VLOOKUP(RC[-15],Basis!C[-23]:C[-22],2,0)"
Range(Cells(6, 18), Cells(6, 24)).Copy Destination:=Range(Cells(7, 18), Cells(16, 24))
Calculate
Range(Cells(7, 18), Cells(16, 24)).Copy
Range(Cells(7, 18), Cells(16, 24)).PasteSpecial Paste:=xlValues, Operation:=xlNone
Application.CutCopyMode = False
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
Range("A1").Select
End Sub

Code eingefügt mit: Excel Code Jeanie
Besten Dank nochmal!
mfg
Erich
EXCEL-Shareware und Freeware: http://www.toolex.de
EXCEL und Lottogewinne machen glücklich: http://48678.rapidforum.com
Bild

Betrifft: AW: Formeln per Code / Spalten einfügen und anpass
von: Herbert
Geschrieben am: 24.04.2005 16:44:51
Hi,
RC-Schreibweise ist nicht geeignet, habe aber keine Lust das umzubauen.
mfg Herbert
Bild

Betrifft: AW: Formeln per Code / Spalten einfügen und anpass
von: Erich M.
Geschrieben am: 24.04.2005 17:24:36
Hallo Herbert,
die Mühe des umbauens würde ich schon selber übernehmen; als Hilfestellung wie müsste
diese Formel umgebaut werden:
meine Version bisher:
Cells(6, 18).FormulaR1C1 = "=RC[-12]&RC[-17]"
entspricht auch:
Cells(6, 18) = Cells(6, 6) & Cells(6, 1)
aber hier wird nicht die Formel eingetragen, sondern sofort das Ergebnis.
Wie müsste die Umschreibung lauten, damit ich Namen verwenden kann und zunächst die
Formel in die Zelle eingetragen wird.
Besten Dank nochmal!
mfg
Erich
EXCEL-Shareware und Freeware: http://www.toolex.de
EXCEL und Lottogewinne machen glücklich: http://48678.rapidforum.com
Bild

Betrifft: AW: Formeln per Code / Spalten einfügen und anpass
von: Herbert
Geschrieben am: 24.04.2005 17:30:46
Cells(6, 18).Formula = Cells(6, 6) & Cells(6, 1)
mfg Herbert
Bild

Betrifft: leider nicht
von: Erich M.
Geschrieben am: 24.04.2005 17:57:12
Hallo Herbert,
da wird bereits das Ergebnis als Wert eingetragen; ebenso bei Cells.Value
Noch eine Idee?
mfg
Erich
EXCEL-Shareware und Freeware: http://www.toolex.de
EXCEL und Lottogewinne machen glücklich: http://48678.rapidforum.com
Bild

Betrifft: AW: leider nicht
von: Herbert
Geschrieben am: 24.04.2005 18:32:37
Hi,
wozu das Ganze eigentlich? Du wandelst die Formeln doch sowieso in Werte um.
mfg Herbert
Bild

Betrifft: AW: leider nicht
von: Erich M.
Geschrieben am: 24.04.2005 18:44:59
Hallo Herbert,
das Problem ist, dass die Formeln für ca. 5 - 6000 Zeilen gelten und deshalb die
Datei aufblähen. Da aber zum Teil Abhängigkeiten in den Formeln bestehen muss
folgendes passieren:
1. alle Formeln in eine Zeile (6) eintragen
2. dann alles nach unten kopieren
3. dann berechnen
4. umwandeln in Werte
Ich habe das bisher mit einer For i 6 To ... Schleife gelöst, aber das dauert sehr lange.
Über das Forum habe ich nun diese Kopiermöglichkeit erhalten; jetzt habe ich nur noch
das Problem mit der variablen Spalte.
Besten Dank nochmal!
mfg
Erich
EXCEL-Shareware und Freeware: http://www.toolex.de
EXCEL und Lottogewinne machen glücklich: http://48678.rapidforum.com
Bild

Betrifft: AW: Formel oder Wert in Zelle?
von: Luc:-?
Geschrieben am: 24.04.2005 19:24:01
Hallo Erich,
für das erwähnte Beispiel Cells(6, 18).Formula = Cells(6, 6) & Cells(6, 1) würde ein Formeleintrag wie folgt lauten:
Cells(6, 18).Formula = "=" & Cells(6, 6).Address(0, 0) & "&" & Cells(6, 1)).Address(0, 0) unter der Voraussetzung, dass es sich hierbei wirklich um eine Verkettung der Werte in den beiden genannten Zellen F6 und A6 handelt und die Zellen als relativer Bezug anzugeben sind. In Zelle R6 würde so die
Formel =F6&A6 erzeugt wdn.
Gruß Luc :-?
Bild

Betrifft: AW: Formel oder Wert in Zelle?
von: Erich M.
Geschrieben am: 24.04.2005 23:26:21
Hallo Luc,
besten Dank - das wäre wohl der Ansatz für die variable Darstellung der Spalten.
Dein Vorschlag funktioniert.
Jetzt bräuchte ich noch die Lösung, die Spalten mit Namen zu ersetzen, da dann
auch bei Einfügen einer Spalte der relative Bezug erhalten bliebe. Allerdings
habe ich bisher in dieser Form noch nicht mit Namen gearbeitet.
Wenn der Name für die Spalte 18 = Kunde; wie wäre dann die Formel?
Besten Dank für eine weitere Hilfe!
mfg
Erich
EXCEL-Shareware und Freeware: http://www.toolex.de
EXCEL und Lottogewinne machen glücklich: http://48678.rapidforum.com
Bild

Betrifft: Range("Kunde").Formula=... -- owT
von: Luc:-?
Geschrieben am: 25.04.2005 00:14:56

Bild

Betrifft: Danke Luc - o.T.!
von: Erich M.
Geschrieben am: 25.04.2005 06:37:00
mfg
Erich
EXCEL-Shareware und Freeware: http://www.toolex.de
EXCEL und Lottogewinne machen glücklich: http://48678.rapidforum.com
 Bild

Beiträge aus den Excel-Beispielen zum Thema "Formeln per Code / Spalten einfügen und anpassen"