Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1512to1516
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 Formulalocal mit dynamischen Bezug

VBA Formulalocal mit dynamischen Bezug
04.09.2016 22:37:09
Hermann
Hallo, guten Abend,
komme einfach nicht weiter trotz Archiv Suche.
U.g Formel soll den Wert aus Spalte D dynamisch lesen:
In Spalte E beginnend mit 3 wird folgende Formel x mal kopiert:
Range("E" & MYRow1).Select
ActiveCell.FormulaLocal = _
"=Gesamt!$G3*100/INDIREKT(""Gesamt!$G""&ZEILE(Gesamt!$G3)+ $D3)-100"
Nun soll in Zeile x+1 obige Formel erneut kopiert werden, aber nun mit - ich beschreib es mal so ansattt $D3 mit "$D x+1 "
Habt Ihr eine Idee wie das zu realisieren ist.
Gruß
Hermann

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Formulalocal mit dynamischen Bezug
05.09.2016 06:04:07
Hajo_Zi
Hallo Hermmann,
ohne Testung
Range("E1:E65358").FormulaLocal = _
"=Gesamt!$G3*100/INDIREKT(""Gesamt!$G""&ZEILE(Gesamt!$G3)+ $D3)-100"
Select, Activate usw. ist in VBA zu 99,9% nicht notwendig.
Der Cursor ist kein Hund der überall rumgeführt werden muss.
Hinweise zu select usw. Hajo-Excel.de
Hinweise zu select usw. Online-Excel.de
Hinweise zu select usw. Online-Excel.de

Anzeige
AW: VBA Formulalocal mit dynamischen Bezug
05.09.2016 11:57:36
Hermann
Hallo Hajo,
danke für den Tip zu Select, werde ich beherzigen zumal wahrscheinlich einige tausend Datensätze zu verarbeiten sind!
Der Wert aus Spalte D wird nun dynamisch übernommen, da aber die Zeilen kopiert werden müssen, weil andere nicht dynamische Berechnungsformeln kopiert werden müssen, steht nun z B. in Zelle E11:
=Gesamt!$G4*100/INDIREKT("Gesamt!$G"&ZEILE(Gesamt!$G4)+ $D11)-100
....anstatt $G3.
Zur Verdeutlichung folg Tabelle:
Bei Wechsel von Delta soll in Spalte E immer beginnend bei $G3 in Tabelle "Gesamt!" und mit dynamischen Wert aus Spalte D die Berechnung erfolgen.
  • Date Wert HAT Delta Veränderung Berech 1 Berech 2 Berech 3
    26.08.2016 125 8 2 0,806451613 1 #DIV/0! 0
    25.08.2016 123 7 2 0,819672131 1 #DIV/0! 0
    24.08.2016 124 6 2 3,333333333 1 #DIV/0! 0
    23.08.2016 122 5 2 -2,4 0 #DIV/0! 0
    22.08.2016 120 4 2 -3,225806452 0 #DIV/0! 0
    19.08.2016 125 3 2 1,62601626 1 #DIV/0! 0
    20.07.2016 124 2 2 #DIV/0! 0 #DIV/0! 0
    19.07.2016 123 1 2 #DIV/0! 0,5 #DIV/0! 0
    26.08.2016 125 8 3 2,5 1 #DIV/0! 0
    25.08.2016 123 7 3 -0,8 1 #DIV/0! 0
    24.08.2016 124 6 3 -1,612903226 1 #DIV/0! 0

  • Gruß
    Hermann
    Anzeige
    Bezüge
    05.09.2016 15:57:02
    Michael
    Hi,
    das liegt an dem fehlenden $-Zeichen.
    In Deinem Beispiel
    
    =Gesamt!$G4*100/INDIREKT("Gesamt!$G"&ZEILE(Gesamt!$G4)+ $D11)-100
    ^^^                                       ^^^   ^^^^
    

    wird Zeilennr. bei D erhöht, was wohl erwünscht ist, aber wenn Du IMMER G3 haben möchtest, muß vor die 3 auch ein $, also zweimal: $G$3.
    Schöne Grüße,
    Michael
    AW: Bezüge
    05.09.2016 17:04:03
    Hermann
    Hallo Michael,
    ich möchte nicht immer G3 haben, sondern immer bei G3 beginnen !!
    Zeile3 : "=Gesamt!$G3*100/INDIREKT(""Gesamt!$G""&ZEILE(Gesamt!$G3)+ $D3)-100"
    Zeile 4: "=Gesamt!$G4*100/INDIREKT(""Gesamt!$G""&ZEILE(Gesamt!$G4)+ $D4)-100"
    weitere x mal (z. B. insges. 8 mal)kopieren
    .
    Zeile 10: : "=Gesamt!$G10*100/INDIREKT(""Gesamt!$G""&ZEILE(Gesamt!$G10)+ $D10)-100"
    Zeile 11: : "=Gesamt!$G3*100/INDIREKT(""Gesamt!$G""&ZEILE(Gesamt!$G3)+ $D11)-100"
    zeile 12: : "=Gesamt!$G4*100/INDIREKT(""Gesamt!$G""&ZEILE(Gesamt!$G4)+ $D12)-100"
    ..weiß aber nicht wie statische ( G3 bis G10 (= x mal)und dynamische Variablen (D) in einer VBA Formel zu vereinbaren sind ?
    Viele Grüße
    Hermann
    Viele Grüße
    Hermann
    Anzeige
    Beispieldatei?
    05.09.2016 18:45:00
    Michael
    Hi,
    weißt Du was? Das ist mir alles zu abstrakt!
    Hajo hat es zwar nicht ausgesprochen, aber sich sicher auch gedacht, daß ne Beispieldatei ganz sinnvoll wäre: lade bitte eine hoch...
    Ich habe heute & morgen keine Zeit, aber vielleicht springt Hajo ja nochmal ein.
    Schöne Grüße,
    Michael
    AW: mit Datei
    06.09.2016 21:46:11
    Hermann
    Hallo Michael,
    nun mit Datei.
    Auf Blatt "Tabelle2" ist dargestellt wie es mit VBA aussehen soll.
    Die Sprünge sind gelb markiert und die Anzahl der "Durchläufe" mit Delta ist variabel.
    https://www.herber.de/bbs/user/108058.xlsm
    Gruß
    Hermann
    Anzeige
    AW: mit Datei
    08.09.2016 14:53:27
    Michael
    Hi Hermann,
    das könnte dann so gehen:
    Option Explicit
    Sub Kopieren()
    Const abZ = 3
    Dim bisZ&, z&, i&, nZ& ' nZ wie neue/nächste Zeile beim Schreiben
    Dim MA, W ' W wie Werte
    Dim MAz&
    Dim gemerkt
    bisZ = Range("D" & Rows.Count).End(xlUp).Row
    MA = Range("D1:f" & bisZ + 1) ' bis 1 mehr, weil leer
    MAz = 1
    For z = abZ To bisZ + 1
    If MA(z, 1)  MA(z - 1, 1) Then
    MAz = MAz + 1
    MA(MAz, 1) = MA(z, 1)
    MA(MAz, 2) = z
    MA(MAz - 1, 3) = z - 1
    End If
    Next
    Range("j3").Resize(MAz, 3) = MA ' Ausgabe; ggf. auskommentieren
    For z = 2 To MAz - 1
    Range("E" & MA(z, 2) & ":E" & MA(z, 3)).FormulaLocal = _
    "=Gesamt!$G3*100/INDIREKT(""Gesamt!$G""&ZEILE(Gesamt!$G3)+ $D" & MA(z, 2) & ")-100"
    Next
    End Sub
    
    Datei: https://www.herber.de/bbs/user/108083.xlsm
    Schöne Grüße,
    Michael
    Anzeige

    301 Forumthreads zu ähnlichen Themen

    Anzeige
    Anzeige
    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige