Thema Datum  Von Nutzer Rating
Antwort
Rot Variablen übergeben
16.12.2014 21:48:27 Hannes
NotSolved
17.12.2014 08:57:41 Gast45795
NotSolved

Ansicht des Beitrags:
Von:
Hannes
Datum:
16.12.2014 21:48:27
Views:
1900
Rating: Antwort:
  Ja
Thema:
Variablen übergeben

Guten Tag,

ich habe mir in VBA für Excel eine Funktion geschreiben, die mir Diagramme erstellt. Da ich jetzt aber verschiede Diagramme erstellen muss mit einem Userformular will ich gerne die Funktion so allgemein schreiben, das ich in einem Sub für einen Button nur noch die Varablen definieren muss und so nicht jedes mal neu die Funktion für Diagramm erstellen schreiben muss.

Dim startm As Integer
Dim endm As Integer
Dim startf As Integer
Dim endf As Integer
Dim Path As String
'Momentan habe ich es darüber gelöst, aber ich bin mir nicht sicher ob das der richtige Weg ist.

Public Function DiaErstellen()
    Dim chDiagramm As ChartObject

If CBM.Value = True Then
    If CoBvonMann.ListIndex = -1 Then Exit Function
    If CoBbisMann.ListIndex = -1 Then Exit Function
    End If
     
    If CBF.Value = True Then
    If CoBvonFrau.ListIndex = -1 Then Exit Function
    If CoBbisFrau.ListIndex = -1 Then Exit Function
    End If
'Ich habe mehrere Checkboxen, mit den ich auswähle welche Datenreihen dargestellt werden sollen und dass der Datenbereich (also der Zeitraum in meinem Beispiel) verändert werden kann

Set chDiagramm = ActiveSheet.ChartObjects.Add(50, 100, 500, 350)
    chDiagramm.Chart.ChartType = xlXYScatterLines
    chDiagramm.Name = "Einwohner"
    'Allgemeine Daten über das Diagramm

    If CBM.Value = True Then
    If CoBvonMann.ListIndex = -1 Then Exit Function
    
    With chDiagramm.Chart.SeriesCollection.NewSeries
        .XValues = "=Tabelle1!A" + CStr(startm) + ":A" + CStr(endm)
        .Values = "=Tabelle1!B" + CStr(startm) + ":B" + CStr(endm)
        .Name = "Männer"
    End With
    End If
'Wenn der Hacken bei Männer gemacht wurde, wird der Datenbereich jewalige Datenbereich dargestellt    


    If CBF.Value = True Then
    Cgetpath_Click
    Path = Mid(Path, 1, InStrRev(Path, "\")) & "[" & Mid(Path, InStrRev(Path, "\") + 1, Len(Path) - InStrRev(Path, "\"))
    With chDiagramm.Chart.SeriesCollection.NewSeries
        .XValues = "='" + Path + "]Tabelle1'!A" + CStr(startf) + ":A" + CStr(endf)
        .Values = "='" + Path + "]Tabelle1'!B" + CStr(startf) + ":B" + CStr(endf)
        .Name = "Frauen"
    End With 
    End If
'Das selbe bei den Frauen, nur das die Daten für die Frauen in einer anderen Mappe liegen. Ich kann die Daten NICHT in die eigentliche Mappe verschieben und muss deswegen den umweg über eine Path Funktion machen.

    Set chDiagramm = Nothing
End Function

Public Sub CErstellen_Click()
'Das ist die eigentliche Funktion für den Button um das Diagramm zu erstellen
    startm = CoBvonMann.ListIndex + 2
    endm = CoBbisMann.ListIndex + 2
    startf = CoBvonFrau.ListIndex + 2
    endf = CoBbisFrau.ListIndex + 2
'Das sind Comboboxen in denen das Jahr ausgelesen wird.
    DiaErstellen
End Sub

Ich hoffe ihr könnt mir helfen.

Beste Grüße

Hannes


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 Variablen übergeben
16.12.2014 21:48:27 Hannes
NotSolved
17.12.2014 08:57:41 Gast45795
NotSolved