Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Berechnung durch VBA-Funktion zur Laufzeit

Forumthread: Berechnung durch VBA-Funktion zur Laufzeit

Berechnung durch VBA-Funktion zur Laufzeit
02.03.2006 18:50:47
Stefan
Hallo,
ich habe folgendes Problem: ich habe untenstehende Datei, in dem ich bestimmte Ausschnitte aus einer Umsatzstatistik zur Laufzeit auf einem separaten Tabellenblatt aufbaue.
Hier die Datei: https://www.herber.de/bbs/user/31583.xls
Nun möchte ich aber in dem Blatt QUELL - in dem ich auch die Ausschnitte festlege - Abweichungsanalysen einbauen bzw. anstoßen können. Habe ich bspw. die Jahre 2002 und 2005 als Auschnitte In QUELL festgelegt, möchte ich dahinter die Anweisung einbauen können 2005/2002. daraufhin soll mir das Programm eine Abweichung der beiden vorangestellten Jahre berechnen, indem 2005/2002 geteilt wird und dann 1 abgezogen also: (Jahr 2005: jahr 2002)-1 und diese dann in ZIEL einfügt!
wie kann ich das so ins makro einbauen, dass die beschriebene Anweisung in QUELL genügt, um die Berechnung dann automatisch zur Laufzeit durchzuführen?
viele grüße
Stefan
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
in 1. post falsche Datei - sorry
02.03.2006 22:27:42
Stefan
hier der richtige anhang: https://www.herber.de/bbs/user/31589.xls
und noch der code:
Option Explicit

Sub BenutzerAuswählen()
Generieren 0, True
End Sub


Sub Generieren(intEmpfänger As Integer, bolAuswahlZeigen As Boolean)
Dim strZelle As String
Dim intLänge As Integer
Dim strReports As String
Dim intAuswahl As Integer
If bolAuswahlZeigen Then
DialogSheets("Choose_Benutzer").Show
intEmpfänger = DialogSheets("Choose_Benutzer").ListBoxes("Liste").ListIndex
End If
Application.ScreenUpdating = False
Application.Calculation = xlManual
If intEmpfänger Then
Dim i%
Dim Spalte_Ziel%
Dim Spalte_Quell%
Dim Spalte_Hier%
Spalte_Quell = 2
Spalte_Ziel = 2
Spalte_Hier = 2
Sheets("Ziel").Range("B2:IV10000").ClearContents
Do
Spalte_Hier = 2
Do
If Sheets("Hier").Cells(2, Spalte_Hier) = Sheets("Quell").Cells(intEmpfänger + 1, Spalte_Quell) Then
Worksheets("Ziel").Activate 'ist erforderlich, weil gleich Verknüpfungen eingefügt werden sollen
For i = 2 To 5 'hier kannst du die Anzahl der Zeilen festlegen, die ein Jahresdatensatz hat
Sheets("Hier").Cells(i, Spalte_Hier).Copy
With Worksheets("Ziel")
.Cells(i, Spalte_Ziel).Select
.Paste 'fügt erst einmal komplett alles ein
.Paste Link:=True 'ersetzt die Einträge durch entsprechende Links(Verweise) auf die Hier-Zelle
End With
Next i
Spalte_Ziel = Spalte_Ziel + 1
Exit Do
End If
Spalte_Hier = Spalte_Hier + 1
Loop Until Sheets("Hier").Cells(2, Spalte_Hier) = "" 'hier wird das Jahr in deiner Liste "Hier" gesucht bis nach rechts nichts mehr steht.
Spalte_Quell = Spalte_Quell + 1
Loop Until Sheets("Quell").Cells(intEmpfänger + 1, Spalte_Quell) = "" 'hier wird solange durchgearbeitet bis in deiner Benutzertabelle keine Jahre rechts rüber mehr auftauchen
End If
Application.Calculation = xlAutomatic
End Sub

Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige