Farbe der Linien in Excel ändern

  • #1
R

Rayden

Guest
??? 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

  • Desktop Symbol 2.jpg
    Desktop Symbol 2.jpg
    45,6 KB · Aufrufe: 28
  • #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
 
  • #11
Hi Rayden,

hab jetzt auch eine Version mit Farbauswahl-Dialog fertig. Bei Bedarf schicke mir eine kurze mail. Dann schicke ich sie dir als Datei.

Gruß Matjes :D
 
  • #12
@ Matjes,

Das wäre echt klasse. Ich werde es dann gleich ausprobieren. Danke Dir vielmals. Dadurch wird mir ein Haufen Arbeit erspart. Ich warte auf Deine Mail

Rayden
------------------------------------------------------------------------------------------
PS: Schade, daß das Board keinen Downloadbereich für solche Kunstwerke hat. Der fleißige Programmierer könnte sich präsentieren und der Nutzer würde sich sowieso freuen. Wäre doch ne tolle Sache?
 
  • #13
@ Matjes,

Hi ich wollte Dein Makro ausprobieren. Ich kamm mir echt blöd vor... aber irgendwie komme ich nicht damit zurecht. Wenn ich die Datei mit einem Doppelklick öffne wird mir eine kleine dreizeilige Tabelle angezeigt worin die Version 1 und 2 beschrieben ist. Unter dieser Tabelle befindet sich noch eine kleinere an deren Ecken doppelte Buchstaben eingetragen sind. Tja so weit bin ich jetzt aber wie mache ich weiter :-[ ???.


Rayden
 
  • #14
Hi Rayden,

das war schon der richtige Weg.

a) die Makro-Datei öffnen
b) eigene Datei öffnen
(zu beachten ist die Reihenfolge, damit deine Datei die aktive ist.)
c) mit Alt+F8 Makroauswahl öffnen
(alternativ Extras->Makro-Makros)
d) Makro auswählen und starten

Gruß Matjes :>>>
 
  • #15
Hallo liebe Mitmenschen ;)

Ich brauche eure Hilfe. Es geht um Folgendes:

Anfang Januar habe ich mir einen neuen Desktop-PC bei Saturn gekauft. Habe das System erfolgreich installiert (Win7-CD war nicht vorhanden) und ihn fertiggestellt. Danach konnte ich ihn fehlerfrei starten und habe zunächst Firefox heruntergeladen, sowie AntiVirus, VLC Media Player, iTunes etc... Alles hat ohne Probleme geklappt. Windows hat seine Updates selbstständig installiert und dort sind ebenfalls keine Fehler aufgetreten. Dann etwa nach 1 1/2 Monaten hat sich mein PC plötzlich aufgehangen und ist kurz danach mit dem berüchtigten "Bluescreen" abgestürzt. Zuerst dachte ich es war nur eine kleine Überhitzung oder etwas anderes und startete den PC neu. Nach etwa 10-15 Minuten kam dasselbe wieder: System hängt sich auf und stürzt ab. Dann war ich schon etwas verzweifelt. Ich habe nun bei Google nach einer Lösung gesucht und dort habe ich in öffentlichen Foren mehrmals gelesen, dass es eventuell an den Updates liegen könnte und ich die Einstellung auf "Updates manuell installieren" ändern sollte. Das habe ich dann getan, doch nachdem ich das erste Update manuell installiert habe, stürzte er schon wieder ab. Und das geht nun etwa 4 Wochen so. Ich habe echt keinen Plan davon und würde mich freuen, wenn ihr Lösungen für mich habt oder wisst wie ich meinen PC wieder in den Griff bekomme.


PC-Angaben:

Prozessor: Intel Core i5 processor 650
Festplatte: 1,5 TB Hard Drive
Arbeitsspeicher: 6GB DDR3
Grafikkarte: NVIDIA GeForce GT320 1024 MB
System: Windows 7 Home Premium 64-Bit

Liebe Grüße,

theDOME
 
  • #16
Ähm was steht den immer auf den Bluescreens? Kannst du ein Foto davon machen?


Gruß Rossy
 
  • #17
Ich mache ein Foto wenn mein PC das nächste mal abstürzt ;)
 
  • #18
Dieser Bluescreen erscheint bei jedem Absturz. Ich hoffe man kann es einigermaßen gut lesen...
 

Anhänge

  • FILE0986.JPG
    FILE0986.JPG
    2 MB · Aufrufe: 66
  • #19
Nun irgend ein Prozess sorgt dafür. Schaue mal in der Ereignisanzeige nach Fehler öffne diese und mache ein Screen davon.


Gruß Rossy
 
  • #20
Zuerst mal, wie komme ich dorthin und ich hab noch ne frage. Schadet das eigentlich meinem pc wenn er sich immer aufhängt und dann abstürzt?
 
Thema:

Farbe der Linien in Excel ändern

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.840
Beiträge
707.963
Mitglieder
51.494
Neuestes Mitglied
Flensburg45
Oben