Microsoft Excel

Herbers Excel/VBA-Archiv

Makro anpassen

Betrifft: Makro anpassen von: Swen
Geschrieben am: 28.08.2014 17:15:49

Hallo an das Forum,

hier mein erster Beitrag, seid also bitte nachsichtig wenn auf Anhieb nicht alles richtig ist ;)

Hier zu meinem kleinen Problem, ich habe folgenden Beitrag im Excel Forum Archiv gefunden:

https://www.herber.de/forum/archiv/1232to1236/1235812_GanttDiagramm_per_Makro_anpassen.html

Durch eher bescheidene VBA Kenntnisse habe ich aber durch "rumprobieren" den target Bereich ändern können und meinen eigenen Bedürfnissen anpassen können, ich schaffe es aber nicht das Ganze so anzupassen, das es automatisch abläuft bzw auf Knopfdruck. Momentan ändert er die Farben nur bei Eingabe, das ganze Soll aber auf einmal passieren, kann mir wer helfen? Vielen Dank im Voraus

  

Betrifft: AW: Makro anpassen von: Hajo_Zi
Geschrieben am: 28.08.2014 17:17:41

ich würde vermuten in dem Link steht nicht Dein Code und da ist auch nicht Deine Datei verlinkt. Oder sehe ich das falsch?

GrußformelHomepage


  

Betrifft: AW: Makro anpassen von: Swen
Geschrieben am: 28.08.2014 17:20:27

Hajo, ich habe die Datei in dem Link einfach nur nach eigenen Bedürfnissen angepasst, d.h. ich habe diesen 1:1 übernommen und gerade mal den Range Bereich an meine Tabelle angepasst.
Gruss Swen, P.S. die eigentliche Datei kann ich nicht uploaden weil es hier um personelle Dinge geht. Danke wegen der Nachsicht


  

Betrifft: AW: Makro anpassen von: Hajo_Zi
Geschrieben am: 28.08.2014 17:22:45

Hallo Swen,

Gut dann habe ich es wohl falsch verstanden, Das Du Deinen Code angepasst haben möchtest. Ich kann Dir da leider nicht Helfen, was wohl daran liegt das ich ihn nicht sehe. Ich bin dann raus.

Gruß Hajo


  

Betrifft: AW: Makro anpassen von: Swen
Geschrieben am: 28.08.2014 17:26:11

Das sollte nicht das Problem sein:

Private Sub Worksheet_Change(ByVal Target As Range)
  'untersuchter Bereich: Tabelle1!E4:E15
  Dim z As Integer
  z = Target.Row
  Set Target = Intersect(Target, Range("E10:E21"))
  If (Not (Target Is Nothing)) Then Call Farbe_Aendern(z - 9) ' mit z wird der target bereich  _
bestimmt, bei Zeile 43 ist z-43, erste zeile des target bereichs wird abgefragt
End Sub

----------------------------------------------------------
Und hier ist der Teil, der dafür da ist, die farben zu ändern.
Sub Farbe_Aendern(z As Integer)
  '
  Dim Farbe, i As Integer
  Dim Text As String
  Dim Texte, Farben As Variant
  Texte = Array("320011", "320028", "320050")
  Farben = Array(3, 45, 4) 'rot, orange, grün
  
  'Farbe bestimmen
  Text = Cells(z + 9, 5) 'aktuellen Text auslesen
  For i = 0 To 2
    If Texte(i) = Text Then Farbe = Farben(i)
  Next i
  
  'Farbe für den aktuellen Datenpunkt einstellen
  ActiveSheet.ChartObjects("Diagramm 8").Activate
  ActiveChart.SeriesCollection(2).Points(z).Select
  Selection.Interior.ColorIndex = Farbe
  
  ActiveSheet.Cells(z + 9, 5).Select
End Sub



  

Betrifft: AW: Makro anpassen von: schauan
Geschrieben am: 29.08.2014 20:51:29

Hallo Sven,

ich habe Deine Frage mal auf offen gesetzt - das ist neben dem Passwort das Kontrollkästchen. Wenn Hajo raus ist, antwortet Dir sonst vielleicht keiner mehr :-(


Hoffe geholfen zu haben, Grüße von André (schauan) aus Gera - Excel-97-2013


  

Betrifft: AW: Makro anpassen von: Gerold
Geschrieben am: 30.08.2014 17:34:46

Hallo Swen

Meinst du das vieleicht so?


Private Sub Worksheet_Change(ByVal Target As Range)
  'untersuchter Bereich: Tabelle1!E4:E15
  If Not Intersect(Target, Range("E10:E21")) Is Nothing Then Call Farbe_Aendern(Target)
End Sub

Sub Farbe_Aendern(ByVal Target As Range)
  Dim Farbe, i As Integer
  Dim Text As String
  Dim Texte, Farben As Variant
  
  Texte = Array("320011", "320028", "320050")
  Farben = Array(3, 45, 4) 'rot, orange, grün
  
  'Farbe bestimmen
  Text = Target.Text  'aktuellen Text auslesen
  For i = 0 To 2
    If Texte(i) = Text Then Farbe = Farben(i)
  Next i
  
'  Farbe für den aktuellen Datenpunkt einstellen
  ActiveSheet.ChartObjects("Diagramm 8").Activate
  ActiveChart.SeriesCollection(2).Points(Target.Row - 9).Select
  Selection.Interior.ColorIndex = Farbe
  
  Target.Select
End Sub

Gruß Gerold

Rückmeldung wäre nett.


 

Beiträge aus den Excel-Beispielen zum Thema "Makro anpassen"