Farbe der Linien in Excel ändern

Dieses Thema Farbe der Linien in Excel ändern im Forum "Microsoft Office Suite" wurde erstellt von Rayden, 23. Nov. 2002.

Thema: Farbe der Linien in Excel ändern ??? Hallo, ich habe sehr viele Tabellen in Excel erstellt und möchte nun die Farben der Linien von Schwarz nach...

  1. ??? Hallo,

    ich habe sehr viele Tabellen in Excel erstellt und möchte nun die Farben der Linien von Schwarz nach Blau ändern. Da die Linien unterschiedlich Dick, bzw. teilweise nur gestrichelt sind wäre es sehr umständlich alles einzeln zu ändern. Kann man das wie zB in Word auf einmal ändern?

    THX 4 hlp
     
  2. Ola,

    ich hab keine Variante mit Bordmitteln entdeckt, vieleicht hat ja einer von den VBA-Freaks eine Lösung ???
     
  3. Uff,

    was VBS ist weiß ich in etwa. Zumindest im Zusammenhang mit Word. VBA weniger. Aber unter Excel überhaupt nicht. Ich habe die Frage schon in anderen Foren gepostet. Bisher scheint es diese Funktion nicht zu geben. Verstehe ich gar nicht, das Microsoft nicht an so etwas einfaches denkt. In Word geht das doch auch. Naja, Microdoof halt. Eigendlich hoffe ich schon gar nicht mehr auf eine Lösung. Die Frage steht jetzt insgesamt schon 3-4 Wochen im Inet.

    Trotzdem Danke
     
  4. Ola,

    das Problem ist, dass Du in Excel erst die Linienfarbe bestimmen musst, um sie dann den Zellrändern der Markierung zuzuweisen. Dabei wird aber eine bestehende Linie aufgehoben. Anders herum: Du änderst nicht einen bestehenden Rahmen, sondern musst den Zellen einen blauen Rahmen neu zuweisen. Das machen aber alle Werkzeuge von Excel: Egal ob Du Gruppierte Tabellen, Formatvorlagen oder sonst noch einen Trick versuchst ... Excel ist es sch...egal, was Du für eine Rahemfarbe einstellst. Es bleibt also nur übrig: Alle schwarzen Rahmen löschen und so wie sie waren in blau wieder anfügen ...
     

    Anhänge:

  5. Hi zusammen,

    in VBA muß man halt Zelle für Zelle die Rahmen-Eigenschaften auslesen, dann die Rahmenfarbe ändern und das ganze wieder der Zell-Eigenschaft-Rahmen zuweisen. Werd's demnächst mal versuchen zu programmieren.

    Gruß Matjes :)

    @Rayden:
    - wenn er im ersten Entwurf fertig ist, könntest Du Ihn testen ?
    - welche Farben willst Du setzen - reichen dir die Grundfarben oder muß es eine beliebige RGB-Farbe sein?
     
  6. Danke für eure Antworten.

    @Matjes

    Danke für Dein Angebot. Klar werde ich das Scribt gerne Testen. Die Grundfarbe Blau war das was brauche. Das ist schon mehr als ich erwartet hätte.

    :D Radyen
     
  7. Hi Rayden,

    der erste Wurf ist fertig. Zwar noch kein Auswahldialog der Farbe - RGB-Farben-Setzen ist auch noch nicht berücksichtigt - aber fürs erste sollte es reichen.

    Probiers bitte mal aus.

    Gruß Matjes :)

    Code:
    
    Option Explicit
    Sub BorderColorInMappeErsetzen()
    'Für alle benutzten Zellen in der Arbeitsmappe :
    'Ersetzen der Rahmenfarbe bei vorhandenem Rahmen
    'entsprechend der Konstante c_ColorindexFuerAlleRahmen
    'Farbe kann entsprechend der Farbtafel auf Werte 1-56 gesetzt werden
    '(siehe Sub DemonstrateColorIndex)
    
    Const c_ColorindexForReplace = 5 '5 entspricht blau
    
    'Indexe für Borders()
      '5=xlDiagonalDown, 6=xlDiagonalUp, 7=xlEdgeLeft, 8=xlEdgeTop
      '9=xlEdgeBottom, 10=xlEdgeBottom, 11=xlInsideVertical, 12=xlInsideHorizontal
    'Linien-Staerke Weight-Konstanten (long):
       '0=xlNone, 1=xlHairline, 2=xlThin,-4138=xlMedium, 4=xlThick
    'Linien-Stil  LineStyle-Konstanten (long):
       '1=xlContinuous, -4115=xlDash, 4=xlDashDot, 5=xlDashDotDot
       '-4118=xlDot, -4119=xlDouble, 13=xlSlantDashDot, -4142=xlLineStyleNone
       'für den Wert 11, der beim Auslesen auch vorkommt, gibt es kein Definition
    '.Creator = &h5843454c , long =1480803660 entspr. XCEL
    '.Farbindex   ColorIndex-Konstanten:
       '-4105=xlColorIndexAutomatic,-4142=xlColorIndexNone
       'und Farbtafel (siehe Sub DemonstrateColorIndex)
    'Border.Color = RGB( , , ) nicht benutzt
    
    
      
    Dim ws As Worksheet
    Dim c As Integer, r As Integer, i As Integer
    Dim long_Linienstaerke As Long, long_Linienstil As Long, long_Creator As Long
    Dim int_ColorIndex As Integer
    Dim long_Color As Long
    
    Application.ScreenUpdating = False 'Bildschirm-Aktuallisierung ausschalten
    
    'Für alle Blaetter in der aktiven Mappe
     For Each ws In Worksheets
      ws.Activate
      
      'Für alle benutzten Zellen
      For r = 1 To ws.Cells.SpecialCells(xlCellTypeLastCell).Row
       For c = 1 To ws.Cells.SpecialCells(xlCellTypeLastCell).Column
        For i = 5 To 12 'für alle Border-Indexe
         With ws.Cells(r, c).Borders(i)
          long_Linienstil = .LineStyle
          'Ist eine Rahmen vorhanden ?
          If ( _
            (long_Linienstil = xlContinuous) Or _
            (long_Linienstil = xlDash) Or _
            (long_Linienstil = xlDashDot) Or _
            (long_Linienstil = xlDashDotDot) Or _
            (long_Linienstil = xlDot) Or _
            (long_Linienstil = xlDouble) Or _
            (long_Linienstil = xlSlantDashDot) _
            ) Then
           .ColorIndex = c_ColorindexForReplace
          End If
         End With
        Next
       Next
      Next
     Next
    Worksheets(1).Activate: Worksheets(1).Cells(1, 1).Select
    Application.ScreenUpdating = True 'Bildschirm-Aktuallisierung einschalten
    End Sub
    '--------------------------------------------------------------------------
    
    Sub DemonstrateColorIndex()
    'Darstellung der 56 ColorIndex-Farben
    Dim i As Integer, m As Integer, i_ColorIndex As Integer
     Workbooks.Add
     For i = 0 To 5
      For m = 1 To 10
       i_ColorIndex = i * 10 + m
       With ActiveSheet.Cells(m, i + 1)
        .Value = i_ColorIndex
        .Interior.ColorIndex = i_ColorIndex
        .HorizontalAlignment = xlCenter
       End With
       If i_ColorIndex >= 56 Then Exit Sub
      Next
     Next
    End Sub
    
    
     
  8. @ Matjes, ???

    Ich Danke Dir für Deine Mühe, leider weis ich nicht wie ich das in Excel einbinden oder benutzen soll.
    Bisher kenne ich nur den Makrorecorder von Word :-/. Bis jetzt habe ich deinen Programmcode erst mal in einer  txt Datei gesichert.
     
  9. Hi Rayden,

    eine kleine Beschreibung wie Du den Makro betreiben kannst:

    a) Mit Excel eine neue Arbeitsmappe anlegen
    b) mit Alt+F11 den Visual-Basic-Editor öffnen
    c) im VBE ->Fenster Projekt->Arbeitsmappe mit rechter Maustest selektieren -> Einfügen -> Modul
    ... es öffnet sich ein Modul-Fenster
    d) Makro in dieses Modul-Fenster kopieren
    e) VBE schließen: Datei-> Schließen...
    f) Excel: Datei->Speichern unter ..
    einen sinnigen Dateinamen eingeben (z.B. Makro_BorderColorErsetzen.xls)
    g) Excel schliessen


    Bei neuen Makros, die Du nicht kennst, ist es ratsam eine Kopie der zu bearbeitenden Arbeitsmappe anzulegen. Falls der Makro irgendwelchen Murks verzapft, kannst du dann auf die Kopie zurückkehren.


    Wenn Du nun den Makro auf einer Arbeitsmappe ausführen willst, öffnest Du zuerst die Arbeitsmappe mit dem Makro (z.B.Makro_BorderColorErsetzen.xls) und dann die zu bearbeitende Arbeitsmappe.
    Setzt Du unter Ansicht->Symbolleisten->VisualBasic ein Häkchen, erscheint die Symbolleiste für Visual-Basic.
    Auf dieser Leiste befindet sich ein 'Pfeil nach rechts (entspricht Extras->Makros->Makro alternativ Alt+F8)
    Bei Betätigung öffnet sich das Fenster zum Ausführen der Makros. Dort kannst Du den Makro auswählen und starten.

    Gruß Matjes :)
     
  10. Ola,

    funktioniert tadellos ;D
     
Die Seite wird geladen...

Farbe der Linien in Excel ändern - Ähnliche Themen

Forum Datum
Textfeld Word 97 Farben und Linien ändern? Microsoft Office Suite 19. Sep. 2003
Outlook 2013 Kalender einfärben Microsoft Office Suite 18. Apr. 2016
Fensterfarben unter Windows ändern Windows 10 Forum 14. Jan. 2016
Hintergrundfarbe hinter ausgeblendeten Zellen und Spalten.... Microsoft Office Suite 20. Okt. 2015
Farben Windows 10 Forum 10. Aug. 2015