Microsoft Excel

Herbers Excel/VBA-Archiv

Suche nach einer Verbesserungmöglichkeit

Betrifft: Suche nach einer Verbesserungmöglichkeit von: Ryu_hoshi
Geschrieben am: 01.09.2004 09:06:06

Hallo ich habe noch eine weitere Frage. Ich habe ein Excelsheet mit Knöpfen. Auf KNopfdruck werden verschiedene Analysen gestartet. Die Analysen sind vom Aufbau fast gleich es gibt nur ein paar Unterschiede. Der Name jedes Excelsheets der zur jeder Analyse erstellt wird ist anders. DIe Überschrift des Excelsheets ist anders und Zum Schluss der Analyse werden aus einem anderen Modul noch 4 Diagramme erzeugt, diese sind bei allen Analysen gleich bis auf die Quellenangabe wo sie erzeugt werden sollen. DIe Quelle bezieht sich jedesmal auf den Namen des neuerstellten Excelsheets. Ich wusste mir bisher nicht naders zu helfen als für jede Analyse den Quelltext der Analyse zu kopieren und dort den Namen zu ändern. Für die Diagramme hatte dementsprechen dasselbe gemacht, aber dadurch wird mein Macro riesengross und wie ich denke auch ziemlich langsam. Weiss einer da eine bessere Lösung?

So siht das ganze aus:

Sub Analyse_letzter_Monat()

.
.
.
Worksheets.Add After:=Worksheets(Worksheets.Count)
Set wks = ThisWorkbook.ActiveSheet
wks.Name = "Analyse des letzten Monats"


Set wksL = ThisWorkbook.Worksheets("excel")
xLastRow = wksL.UsedRange.SpecialCells(xlCellTypeLastCell).Row

wks.Cells(1, 8).Select
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlBottom
End With

With Selection.Font
.Name = "Tahoma"
.Size = 16
End With

Selection.Font.Bold = True
Selection.Font.Underline = xlUnderlineStyleSingle
ActiveCell.FormulaR1C1 = "Analyse für vergangenen Monat"

.
.
.
'und jetzt die Diagramme
Module3.Macro1
Module3.Macro2
Module3.Macro3
Module3.Macro4
Module3.Macro5

Beispiel eines Diagrmms:

Charts.Add
ActiveChart.ChartType = xlCylinderColClustered
ActiveChart.SetSourceData Source:=Sheets("Analyse des letzten Monats").Range( _
"A50:G50,A52:G52"), PlotBy:=xlColumns
ActiveChart.Location Where:=xlLocationAsObject, Name:= _
"Analyse des letzten Monats"
.
.
.

Was würdet ihr da machen?

Gruss
Ryu_Hoshi

  


Betrifft: Nachtrag: Problem leigt woanders von: Ryu_hoshi
Geschrieben am: 01.09.2004 15:01:53

Für die Analyse brauche ich bei einer kleinen Datei etwas mehr als 200 Zeilen eine Minute und davon nur einige Sekunden für diese eigentliche Anlyse. Fast alles geht für Löschung der nicht relevanter Zeilen drauf. Vielleicht könntest du (andere) darauf einen Blick werfen. Ich poste mal als Beispiel den code von Analyse von letzten Monat:

Private Sub But_letzter_Monat_Click()
Dim wksE As Excel.Worksheet
Dim i As Long
Dim dtJahr As Integer
Dim dtMonat As Long

Application.ScreenUpdating = False
Set wksE = ThisWorkbook.Worksheets("excel")
dtJahr = Format(Now, "yyyy")
If Month(Now) > 1 Then
dtMonat = Month(Now) - 1
Else
dtMonat = 12
dtJahr = dtJahr - 1
End If

With wksE

For i = .Cells(Rows.Count, 9).End(xlUp).Row To 2 Step -1
'
If Month(.Cells(i, 9)) <> dtMonat Or Year(wksE.Cells(i, 9)) <> dtJahr Then
.Rows(i).Delete
End If
Next i
End With
Set wksE = Nothing
Application.ScreenUpdating = True

Module1.Analyse_letzter_Monat

End Sub