Thema Datum  Von Nutzer Rating
Antwort
Rot Excel Macro: In einer Formel mit Zellbezügen eine Zahl steigen lassen
06.10.2015 10:13:22 Malte
NotSolved
07.10.2015 17:40:18 Holger
NotSolved

Ansicht des Beitrags:
Von:
Malte
Datum:
06.10.2015 10:13:22
Views:
1614
Rating: Antwort:
  Ja
Thema:
Excel Macro: In einer Formel mit Zellbezügen eine Zahl steigen lassen

Hallo,

zunächst einmal: Ich bin ganz neu in der VBA-Welt, habe gerade ein Projekt an der Uni und muss dazu 2700 Datensätze auswerten. Ich finde es total Klasse, wie sehr mir Excel die Arbeit erleichtern kann und Versuche, den Prozess noch weiter zu optimieren. Für falsche/schlechte Beschreibungen zum Thema entschuldige ich mich also jetzt schon mal vorab!

Problem: Ich habe 2 Tabellen mit Datensätzen, die auf eine Bestimmte art und weise multipliziert werden müssen. (Jede spalte in tab1 muss mit allen werten von tab2 multipliziert werden, dann muss in tab2 eine summe der werte jeder zeile addiert werden und diese werte sind dann das gesuchte endprodukt, das muss dann in eine 4. tabelle kopiert werden, dabei dann immer um eine spalte verrutschen)

Dazu habe ich bereits ein Makro:

Sub Macro1()
'
' Macro1 Macro
'
' Keyboard Shortcut: Ctrl+y
'
    ActiveCell.Select
    Selection.AutoFill Destination:=ActiveCell.Range("A1:A30"), Type:= _
        xlFillDefault
    ActiveCell.Range("A1:A30").Select
    Selection.AutoFill Destination:=ActiveCell.Range("A1:DU30"), Type:= _
        xlFillDefault
    ActiveCell.Range("A1:DU30").Select
    ActiveWindow.ScrollColumn = 100
    ActiveWindow.ScrollColumn = 99
    ActiveWindow.ScrollColumn = 98
    ActiveWindow.ScrollColumn = 96
    ActiveWindow.ScrollColumn = 94
    ActiveWindow.ScrollColumn = 79
    ActiveWindow.ScrollColumn = 69
    ActiveWindow.ScrollColumn = 65
    ActiveWindow.ScrollColumn = 59
    ActiveWindow.ScrollColumn = 57
    ActiveWindow.ScrollColumn = 53
    ActiveWindow.ScrollColumn = 48
    ActiveWindow.ScrollColumn = 45
    ActiveWindow.ScrollColumn = 43
    ActiveWindow.ScrollColumn = 38
    ActiveWindow.ScrollColumn = 36
    ActiveWindow.ScrollColumn = 35
    ActiveWindow.ScrollColumn = 32
    ActiveWindow.ScrollColumn = 30
    ActiveWindow.ScrollColumn = 27
    ActiveWindow.ScrollColumn = 26
    ActiveWindow.ScrollColumn = 23
    ActiveWindow.ScrollColumn = 21
    ActiveWindow.ScrollColumn = 19
    ActiveWindow.ScrollColumn = 15
    ActiveWindow.ScrollColumn = 14
    ActiveWindow.ScrollColumn = 13
    ActiveWindow.ScrollColumn = 9
    ActiveWindow.ScrollColumn = 8
    ActiveWindow.ScrollColumn = 7
    ActiveWindow.ScrollColumn = 6
    ActiveWindow.ScrollColumn = 5
    ActiveWindow.ScrollColumn = 4
    ActiveWindow.ScrollColumn = 3
    ActiveWindow.ScrollColumn = 2
    ActiveWindow.ScrollColumn = 1
    ActiveCell.Offset(2, -2).Range("A1:A28").Select
    Selection.Copy
    ActiveCell.Offset(0, -1).Range("A1").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Sheet1").Select
    Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=True
    ActiveCell.Offset(1, 0).Range("A1").Select
    Sheets("Sheet3").Select
    ActiveCell.Offset(-2, 3).Range("A1").Select
End Sub

 

Nun muss ich immer nur eine Zahl im ersten Feld meiner kalkulationstabelle ändern, damit ich in tab1 einen datensatz / zeile weiter runter rutsche, der dann mit dem makro oben ausgewertet wird. Ich suche nun nach einer Möglichkeit, das die zahl automatisch nach jeden mal um +1 steigt und sich das makro dann wiederholt, so muss ich nicht 2700 mal eine zahl eingeben und dann auf enter drücken!

 

Hier ist ein weiteres makro, in dem ich die besagte formel-zelle auswähle und den wert ändere:

Sub Macro2()
'
' Macro2 Macro
'
' Keyboard Shortcut: Ctrl+x
'
    Range("D5").Select
    ActiveCell.FormulaR1C1 = "=Sheet1!R7C[38]*Sheet2!RC[-1]"
    Range("D5").Select
End Sub

Die "7" in der Formel
 = "=Sheet1!R7C[38]*Sheet2!RC[-1]" 
soll dann zur 8, dann zur 9 usw. werden, während alles andere gleich bleibt. 

Müsste ich nicht für die zahl eine variable eingeben können und diese so programmieren, das sie pro schleife um 1 steigt, bis 2700 erreicht ist ?

Für eure Hilfe wäre ich echt sehr dankbar!

Viele Grüße, 
Malte

 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:

 
 

  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Excel Macro: In einer Formel mit Zellbezügen eine Zahl steigen lassen
06.10.2015 10:13:22 Malte
NotSolved
07.10.2015 17:40:18 Holger
NotSolved