Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
736to740
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
736to740
736to740
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

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

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

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige