Microsoft Excel

Herbers Excel/VBA-Archiv

schriftfarbe ändern bei workbook_open() | Herbers Excel-Forum


Betrifft: schriftfarbe ändern bei workbook_open() von: joerg
Geschrieben am: 26.01.2010 22:27:53

Hallo nochmals,

Ich bin inzwischen begeisterter neu-VBA-Nutzer, mit den üblichen kleinen Anfangs-Problemchen... jetzt zB würde ich gern mit folgendem Code beim öffnen des workbooks in allen Blättern den Text in den Spalten A bis S schwarz färben:

Private Sub workbook_open()

    Dim sheet As Object
    For Each sheet In ActiveWorkbook.Sheets
    
        Columns("A:S").Select
        With Selection.Font
            .Name = "Calibri"
            .Strikethrough = False
            .Superscript = False
            .Subscript = False
            .OutlineFont = False
            .Shadow = False
            .Underline = xlUnderlineStyleNone
            .ThemeColor = xlThemeColorLight1
            .TintAndShade = 0
            .ThemeFont = xlThemeFontMinor
        End With
    Next
 
End Sub

Die Änderung der Schriftfarbe habe ich vorher als Makro aufgenommen, funktioniert auch, allerdings wird die Schriftfarbe nur im jeweils aktiven Blatt geändert... Woran könnte das liegen?

Danke für Eure Hilfe :)

  

Betrifft: AW: schriftfarbe ändern bei workbook_open() von: Josef Ehrensberger
Geschrieben am: 26.01.2010 22:33:25

Hallo Jörg,

wenn es nur um die Schrifftfarbe geht, dann so.

Private Sub workbook_open()
  Dim objSh As Worksheet
  
  For Each objSh In ThisWorkbook.Worksheets
    objSh.Range("A:S").Font.ColorIndex = xlAutomatic
  Next
  
End Sub



Gruß Sepp



  

Betrifft: AW: schriftfarbe ändern bei workbook_open() von: joerg
Geschrieben am: 26.01.2010 22:54:39

Danke, das funktioniert prima. :)

Noch zwei Kleinigkeiten: Wie setze ich denn von VBA aus den Bildschirmausschnitt so, dass Zeile 1 oben angezeigt wird (wenn ich vorher beispielsweise runtergescrollt hatte)? Und zweitens, kann man den zoom einstellen?
(beides müsste ich vorher speichern, um es später wieder zurücksetzen zu können...)

Danke schonmal, und Gruss,
Jo


  

Betrifft: AW: schriftfarbe ändern bei workbook_open() von: Josef Ehrensberger
Geschrieben am: 26.01.2010 23:12:28

Hallo Jörg,

brauchts dafür wirklich ein Makro?

Zur obersten Zeile kommst du mit STRG+POS1, und den Zoom kann man doch
bei gedrückter STRG-Tadste mit denMouseweehl einstellen,
oder mit dem Schieberegler rechts unten.


Gruß Sepp



  

Betrifft: AW: schriftfarbe ändern bei workbook_open() von: joerg
Geschrieben am: 26.01.2010 23:17:53

Ja, schon... aber es ist doch alles fluffiger wenn's automatisch geht... :)

Das Makro gibt's eh schon, es blendet per Button verschiedene Zellbereiche ein und aus, nun wär's halt noch schick wenn auch der Bildschirm jeweils den relevanten Bereich zeigen würde ohne das man da erst hinscrollen muss...


  

Betrifft: AW: schriftfarbe ändern bei workbook_open() von: Josef Ehrensberger
Geschrieben am: 26.01.2010 23:35:25

Hallo Jörg,

eine Möglichkeit.

Application.Goto Range("A1"), True
Das mit dem Zoom kannst du ja mit dem Rekorder aufzeichnen.


Gruß Sepp



  

Betrifft: AW: schriftfarbe ändern bei workbook_open() von: joerg
Geschrieben am: 27.01.2010 10:46:05

Achja, die Möglichkeit, VBA als Makro aufzuzeichnen vergesse ich zwischendurch gern mal...

Nur eins noch: Wie würde ich denn die vorherige bildschirmposition / Zoomlevel zwischenspeichern, um sie hinterher wiederherzustellen?

Gruss aus Bonn,
Jo


  

Betrifft: AW: schriftfarbe ändern bei workbook_open() von: Josef Ehrensberger
Geschrieben am: 27.01.2010 11:56:37

Hallo Jörg,

das geht z.B. so.

' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit
Private rngOld As Range
Private sngZoom As Single

Sub zoomIn()
  Set rngOld = ActiveWindow.VisibleRange.Cells(1, 1)
  sngZoom = ActiveWindow.Zoom
  
  Application.Goto Range("A1"), True
  ActiveWindow.Zoom = 400
End Sub

Sub zoomOut()
  If Not rngOld Is Nothing Then
    ActiveWindow.Zoom = sngZoom
    Application.Goto rngOld, True
  End If
End Sub



Gruß Sepp



  

Betrifft: AW: schriftfarbe ändern bei workbook_open() von: joerg
Geschrieben am: 27.01.2010 13:46:16

Super, danke Sepp!


  

Betrifft: AW: schriftfarbe ändern bei workbook_open() von: Uduuh
Geschrieben am: 26.01.2010 22:35:23

Hallo,
du müsstest vorher noch ein sheet.Select einbauen. Besser ist aber so:

Private Sub workbook_open()

    Dim sheet As Object
    For Each sheet In ActiveWorkbook.Sheets
    
        With sheet.Columns("A:S").Font
            .Name = "Calibri"
            .Strikethrough = False
            .Superscript = False
            .Subscript = False
            .OutlineFont = False
            .Shadow = False
            .Underline = xlUnderlineStyleNone
            .ThemeColor = xlThemeColorLight1
            .TintAndShade = 0
            .ThemeFont = xlThemeFontMinor
        End With
    Next
 
End Sub

Gruß aus’m Pott
Udo



  

Betrifft: AW: schriftfarbe ändern bei workbook_open() von: joerg
Geschrieben am: 26.01.2010 22:56:29

Hallo Udo,

ich hab jetzt die Lösung von Josef genommen, weil kürzer... aber danke trotzdem, hat mir gezeigt wo der Fehler war. :)


  

Betrifft: hat mir gezeigt wo der Fehler war von: Uduuh
Geschrieben am: 26.01.2010 23:12:36

Hallo,
darum ging es mir

Gruß aus’m Pott
Udo



Beiträge aus den Excel-Beispielen zum Thema "schriftfarbe ändern bei workbook_open()"