Collapse column

Beiträge anzeigen

Diese Sektion erlaubt es dir alle Beiträge dieses Mitglieds zu sehen. Beachte, dass du nur solche Beiträge sehen kannst, zu denen du auch Zugriffsrechte hast.


Nachrichten - André H.

Seiten: [1]
1
Excel / Office 2007: VBA - Checkbox_Click Funktion zuweisen
« am: Dezember 10, 2014, 10:53:07 Vormittag »
Hallo alle miteinander,

ich habe folgendes Problem.
Nach der automatischen Erstellung eines Tabellenblattes mit Diagramm habe ich zusätzlich über VBA 5 Checkboxen einfügen lassen um die einzelnen Datenreihen des Diagramms ein-/ ausschalten zu können.

Beispielhaft für eine Checkbox sieht das ganze so aus:



Sub Add_Checkboxes()
    ActiveSheet.OLEObjects.Add(ClassType:="Forms.CheckBox.1",  Link:=False, _
        DisplayAsIcon:=False, Left:=27.75, Top:=83.25, Width:=108, Height:=21 _
        ).Select
End Sub


Private Sub CheckBox1_Click()
 If Sheets("Auswertung Kanal1").CheckBox1.Value = True Then
   Worksheets("Kanal1").Columns(2).Hidden = False
   Else
   Worksheets("Kanal1").Columns(2).Hidden = True
End If
End Sub


Die Funktion des Objektes Checkbox1_Click() habe ich aber in ein Modul geschrieben. Somit fehlt die Verknüpfung auf das eigentliche Tabellenblatt. Es funktioniert zumindestens nicht.
Ich würde mich über euere Hilfe freuen. Danke

Gruß

André

2
Excel / Antw:Office 2007: VBA variabler Diagrammbereich???
« am: November 30, 2014, 15:02:22 Nachmittag »
Danke für deine Hilfe, so funktioniert es ;-).
ibt es zusätzlich noch einen Befehl über den ich einzelne Datenreihen ausblenden bzw. einblenden kann??

3
Excel / Office 2007: VBA variabler Diagrammbereich???
« am: November 29, 2014, 14:56:48 Nachmittag »
 Hallo,

 

ich hoffe ihr könnt mir weiter helfen. Ich habe folgendes Makro erstellt (funktionsfähig).

Ich habe alle Datenreihen einzeln erstellt da später vereinzelte Datenreihen nach Wunsch ausgeblendet werden sollen.

Mit dem unten geschriebenen Makro wird das Diagramm leider nur über einen festen Bereich erstellt. In dem Fall von Zeile 2- Zeile 36. Die Anzahl der Zeilen kann aber von Fall zu Fall variieren und ich würde deshalb gerne eine Variable "i" einsetzen.

Den Zähler dafür habe ich bereits. Dieser zählt alle beschriebenen Zeilen.

   
Sub DiagrammNeuesBlattErstellen()
Dim i As Integer
 
 
For i = 2 To 30
    If Sheets("Kanal1").Cells(i, 1).Value = "" Then
     i = i - 1
Exit For
End If
Next i
     
    ThisWorkbook.Charts.Add Before:=Worksheets("Kanal2")
         
    With ActiveChart
        .ChartType = xlLineMarkers
        .Name = "Diagramm1"
         
        .SeriesCollection.NewSeries
        .SeriesCollection(1).Name = "='Kanal1'!$B$1"
        .SeriesCollection(1).Values = "='Kanal1'!$B$2:$B$36"
        .SeriesCollection(1).XValues = "='Kanal1'!$A$2:$A$36"
         
        .SeriesCollection.NewSeries
        .SeriesCollection(2).Name = "='Kanal1'!$C$1"
        .SeriesCollection(2).Values = "='Kanal1'!$C$2:$C$36"
        .SeriesCollection(2).XValues = "='Kanal1'!$A$2:$A$36"
         
        .SeriesCollection.NewSeries
        .SeriesCollection(3).Name = "='Kanal1'!$D$1"
        .SeriesCollection(3).Values = "='Kanal1'!$D$2:$D$36"
        .SeriesCollection(3).XValues = "='Kanal1'!$A$2:$A$36"
         
        .SeriesCollection.NewSeries
        .SeriesCollection(4).Name = "='Kanal1'!$F$1"
        .SeriesCollection(4).Values = "='Kanal1'!$F$2:$F$36"
        .SeriesCollection(4).XValues = "='Kanal1'!$A$2:$A$36"
         
        .SeriesCollection.NewSeries
        .SeriesCollection(5).Name = "='Kanal1'!$G$1"
        .SeriesCollection(5).Values = "='Kanal1'!$G$2:$G$36"
        .SeriesCollection(5).XValues = "='Kanal1'!$A$2:$A$36"
         
         
        .SeriesCollection(2).AxisGroup = 2
        .SeriesCollection(5).AxisGroup = 2
        .DisplayBlanksAs = xlInterpolated
        .ClearToMatchStyle
        .ChartStyle = 42
        .Legend.Position = xlTop
         
                 
    End With
     
End Sub

 
 
Am liebsten würde ich die Variable "i" einfach anstatt der letzten Zeile (G36) in den unten vorgegeben Bereich schreiben.
Das ganze würde dann so aussehen.

   
Sub DiagrammNeuesBlattErstellen()
Dim i As Integer
 
 
For i = 2 To 30
    If Sheets("Kanal1").Cells(i, 1).Value = "" Then
     i = i - 1
Exit For
End If
Next i
     
    ThisWorkbook.Charts.Add Before:=Worksheets("Kanal2")
         
    With ActiveChart
        .ChartType = xlLineMarkers
        .Name = "Diagramm1"
         
        .SeriesCollection.NewSeries
        .SeriesCollection(1).Name = "='Kanal1'!$B$1"
        .SeriesCollection(1).Values = "='Kanal1'!$B$2:$B$"i""
        .SeriesCollection(1).XValues = "='Kanal1'!$A$2:$A$"i""
         
        .SeriesCollection.NewSeries
        .SeriesCollection(2).Name = "='Kanal1'!$C$1"
        .SeriesCollection(2).Values = "='Kanal1'!$C$2:$C$"i""
        .SeriesCollection(2).XValues = "='Kanal1'!$A$2:$A$"i""
         
        .SeriesCollection.NewSeries
        .SeriesCollection(3).Name = "='Kanal1'!$D$1"
        .SeriesCollection(3).Values = "='Kanal1'!$D$2:$D$"i""
        .SeriesCollection(3).XValues = "='Kanal1'!$A$2:$A$"i""
         
        .SeriesCollection.NewSeries
        .SeriesCollection(4).Name = "='Kanal1'!$F$1"
        .SeriesCollection(4).Values = "='Kanal1'!$F$2:$F$"i""
        .SeriesCollection(4).XValues = "='Kanal1'!$A$2:$A$"i""
         
        .SeriesCollection.NewSeries
        .SeriesCollection(5).Name = "='Kanal1'!$G$1"
        .SeriesCollection(5).Values = "='Kanal1'!$G$2:$G$"i""
        .SeriesCollection(5).XValues = "='Kanal1'!$A$2:$A$"i""
         
         
        .SeriesCollection(2).AxisGroup = 2
        .SeriesCollection(5).AxisGroup = 2
        .DisplayBlanksAs = xlInterpolated
        .ClearToMatchStyle
        .ChartStyle = 42
        .Legend.Position = xlTop
         
                 
    End With
     
End Sub


 

Leider ist die Sache nicht so einfach. Ich bin im Umgang mit Visual Basic blutiger Anfänger und würde mich über einige Denkanstöße freuen.

Danke im voraus

Gruß André

Seiten: [1]