Microsoft Excel

Herbers Excel/VBA-Archiv

Abfrage in VBA effizienter gestalten | Herbers Excel-Forum


Betrifft: Abfrage in VBA effizienter gestalten von: Axel
Geschrieben am: 23.01.2010 14:04:00

Hallo,

ich erstelle ein Diagramm mit Excel, allerdings wähle ich vorher Verschiedene Parameter aus, die dann in dem Diagramm dargestellt werden sollen.
Nun muss der Name des Diagramms allerdings an die Auswahl angepasst werden, damit ich immer weiß, was ich mir gerade anzeigen lasse. Bisher sieht mein Code dazu so aus:

'Aussagekräftigen Titel zusammenbauen
----------->Das muss effektiver gehen!!!
If Auswahl_ParameterA <> -1 Then
Diagrammname = Auswahl_ParameterA
End If

If Auswahl_ParameterB <> -1 Then
Diagrammname = Diagrammname & " " & Auswahl_ParameterB
End If

If Auswahl_ParameterC <> -1 Then
Diagrammname = Diagrammname & " " & Auswahl_ParameterC
End If

If Auswahl_ParameterD <> "keine Auswahl" Then
Diagrammname = Diagrammname & " " & Auswahl_ParameterD
End If

If Auswahl_ParameterE <> "keine Auswahl" Then
Diagrammname = Diagrammname & " " & Auswahl_ParameterE
End If
With ActiveChart
.ChartType = xlXYScatterSmooth
.ChartArea.Border.LineStyle = xlNone
.HasTitle = True
.ChartTitle.Text = Diagrammname
End With

Ich finde diesen Aufbau schrecklich. Kennt ihr einen schnelleren und effektiveren Weg?

Gruß und Dank
Axel

  

Betrifft: AW: mit so wenig Information über den Code von: Daniel
Geschrieben am: 23.01.2010 14:08:35

kann man da schlecht was optimieren.
was ist z.B. "Auswahl_ParameteC"
und wie wäre es mit dem Hochladen einer Beispieldatei?
Gruß, Daniel


  

Betrifft: AW: mit Index-Variablen von: Daniel
Geschrieben am: 23.01.2010 14:36:55

Hi

1. IF-Abfrage:
IF-Bedingunen, die nur den TRUE-Pfad haben (kein ELSE) und dieser aus einem Befehl besteht, kann man auch so schreiben:

IF Bedingung 1 Then MachWas

anstelle von:

If Bedingung 1 then
MachWas
End if

wenn du die Auswahlparameter als Index-Variable gestaltets, dann könntest du statt der Einzelabfrage eine Schleife drüber laufen lassen, das würde dann in etwa so aussehen:

For i = 1 to 5
   Select Case AuswahlParameter(i)
      Case -1, "keine Auswahl"
      Case else
         Diagrammtitel = Diagrammtitel & " " & Auswahlparameter(i)
   end select
next 
Diagrammtitel = Mid$(Diagrammtitel, 2)
Gruß, Daniel


  

Betrifft: AW: Abfrage in VBA effizienter gestalten von: Gerd L
Geschrieben am: 23.01.2010 15:02:19

Hallo Axel,
meinst Du so?

Diagrammname = Trim$(Diagrammname & Replace(Replace(" " & Auswahl_ParameterB & " " & Auswahl_ParameterC & " " & Auswahl_ParameterD & " " & Auswahl_ParameterE, " -1", ""), " keine Auswahl", ""))

Gruß Gerd


  

Betrifft: AW: Abfrage in VBA effizienter gestalten von: Axel
Geschrieben am: 25.01.2010 08:28:25

Hallo,



ich werde beides mal ausprobieren.



Danke für eure Antworten.

Bin leider gerade nicht an der Arbeit, daher werde ich die Lösungen erst im Laufe der Woche testen können.



Gruß

Axel


Beiträge aus den Excel-Beispielen zum Thema "Abfrage in VBA effizienter gestalten"