Hej, Spelade in ett makro och modifierade det till detta. Tack för ditt svar Thommy. Det första exemplet färgade varsin serie Tack skall du ha Thommy,Excel och knappar / toggleswitch
Önskar hjälp med följande:
Steg 1
har fixat ett formulär där jag matar inn 2 värden och sen kan visa dessa som ett stapeldiagram.
Steg 2
Vill definera 1 toggleswitch som byter färg varje gång jag trycker på den ( röd/grön).
Steg 3
Definera ytterligare en toggelswitch som gör samma sak, men oberoende av varandra.
Steg 4
Beroende på färg på toggleswitch #1 så kommer den första stapeln i stapeldiagrammet att byta till samma färg som sw #1.
Sw#2 sin färg kommer då på samma vis att påverka stapel nr 2 i samma diagram, men oberoende av varandra.
Hur gör jag detta?
/janSv: Excel och knappar / toggleswitch
Knapp 1 kollar värdet i cell 1 på bladet
Om cellvärdet är 1 sätter den färgen på första
serien i diagrammet till röd och ändrar värdet
i cell 1 till 0.
Om cellvärdet är 0 sätter den färgen på första
serien i diagrammet till grön och ändrar värdet
i cell 1 till 1
Motsvarande för knapp 2
Finns antagligen elegantare lösningar om man letar.
Private Sub BytFarg1_Click()
If Cells(1, 2).Value = 1 Then
Cells(1, 2).Value = 0
ActiveSheet.ChartObjects("Diagram 1").Activate
ActiveChart.SeriesCollection(1).Select
With Selection.Format.Fill
.Visible = msoTrue
.ForeColor.RGB = RGB(255, 0, 0) ' Röd
.Transparency = 0
.Solid
End With
Else
Cells(1, 2).Value = 1
ActiveSheet.ChartObjects("Diagram 1").Activate
ActiveChart.SeriesCollection(1).Select
With Selection.Format.Fill
.Visible = msoTrue
.ForeColor.RGB = RGB(0, 176, 80) ' Grön
.Transparency = 0
.Solid
End With
End If
Cells(1, 1).Select
End Sub
Private Sub BytFarg2_Click()
If Cells(1, 3).Value = 1 Then
Cells(1, 3).Value = 0
ActiveSheet.ChartObjects("Diagram 1").Activate
ActiveChart.SeriesCollection(2).Select
With Selection.Format.Fill
.Visible = msoTrue
.ForeColor.RGB = RGB(255, 0, 0) ' Röd
.Transparency = 0
.Solid
End With
Else
Cells(1, 3).Value = 1
ActiveSheet.ChartObjects("Diagram 1").Activate
ActiveChart.SeriesCollection(2).Select
With Selection.Format.Fill
.Visible = msoTrue
.ForeColor.RGB = RGB(0, 176, 80) ' Grön
.Transparency = 0
.Solid
End With
End If
Cells(1, 1).Select
End Sub
Sv:Excel och knappar / toggleswitch
Jag är total novis på macro och Visual Basic programmering.
Jag har gjort följande:
gick upp i utvecklare, väljer infoga och väljer förmulärkontroller och knapp.
Knappen får automatisk ett namn "Knapp 1".
Det kommer upp ett nytt fönster där jag skriver in din kod.
Fråga :
Är det i " If Cells(1, 2). val.. . ser att denna refererar till den fysiska placeringen i arket och byter mellan 1 och 0. samtidig som båda staplarna i diagrammet byter samtidigt.
Jag tror att jag måste byta något (en referens) i diagrammets eller koden din som gör att jag kan få enbart den ena stapel att ändra färg.
Värdet som jag skriver in ligger i D20 och E20. Det är dessa värden som skall spegla sig i staplarna i diagrammet. och var för sig ändra färg om jag trycker på knapp1 eller knapp2.
Tacksam för hjälp / Jan
mvh
JanSv: Excel och knappar / toggleswitch
Detta exempelk färgar stapel ett eller två i
samma serie
Private Sub Bytfarg3_Click()
If Cells(1, 2).Value = 1 Then
Cells(1, 2).Value = 0
ActiveSheet.ChartObjects("Diagram 2").Activate
ActiveChart.SeriesCollection(1).Points(1).Select
' SeriesCollection = Serienr Points = Stapel nr
With Selection.Format.Fill
.Visible = msoTrue
.ForeColor.RGB = RGB(255, 0, 0) ' Röd
.Transparency = 0
.Solid
End With
Else
Cells(1, 2).Value = 1
ActiveSheet.ChartObjects("Diagram 2").Activate
ActiveChart.SeriesCollection(1).Points(1).Select
With Selection.Format.Fill
.Visible = msoTrue
.ForeColor.RGB = RGB(0, 176, 80) ' Grön
.Transparency = 0
.Solid
End With
End If
Cells(1, 1).Select
End Sub
Private Sub Bytfarg4_Click()
If Cells(1, 3).Value = 1 Then
Cells(1, 3).Value = 0
ActiveSheet.ChartObjects("Diagram 2").Activate
ActiveChart.SeriesCollection(1).Points(2).Select
With Selection.Format.Fill
.Visible = msoTrue
.ForeColor.RGB = RGB(255, 0, 0) ' Röd
.Transparency = 0
.Solid
End With
Else
Cells(1, 3).Value = 1
ActiveSheet.ChartObjects("Diagram 2").Activate
ActiveChart.SeriesCollection(1).Points(2).Select
With Selection.Format.Fill
.Visible = msoTrue
.ForeColor.RGB = RGB(0, 176, 80) ' Grön
.Transparency = 0
.Solid
End With
End If
Cells(1, 1).Select
End Sub
Sv:Excel och knappar / toggleswitch
Fungerar ypperligt, trots att jag inte har den blekasta aning om vad som sker och vad alla kommandon gör :-)