AW: zufällige Schriftart und Schriftgröße
06.08.2013 17:14:06
Erich
Hi Albert,
es sei mir einmal erlaubt, deinen Code ein wenig "auseinanderzunehmen". Ich will damit nicht meckern oder so,
ich hoffe, du kannst das positiv annehmen.
Hier noch mal dein Code - etwas kommentiert und lauffähig:
Option Explicit ' IMMER zu empfehlen
Sub testntest()
Dim wks As Worksheet ' unbenutzt
Dim Zeile As Long
Dim rngZelleX As Range ' unbenutzt
Dim rngZeileX As Range ' fehlte
With Sheets("Tabelle1")
For Each rngZeileX In Sheets("Tabelle1").Range("C3:C102").Cells
' For Zeile = 3 To 103
' With Selection.Font ' Was ist gerade selektiert?
With rngZeileX.Font
.Name = Range("I9").Value
.Size = Range("J9").Value
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ThemeColor = xlThemeColorLight1
.TintAndShade = 0
.ThemeFont = xlThemeFontNone
End With
' Next ' Warum 2 For-Schleifen?
Next
' SendKeys ("{F9}") ' wofür steht das hier?
End With
End Sub
Option Explicit sollte oben in jedem deiner Module stehen. Dann fällt dir ein Variablen-Schreibfehle
wie mit rngZelleX/rngZeileX sofort auf.
Du hast zwei For-Schleifen im Code stehen, aber die Schleifenvariablen rngZeileX bzw. Zeile kommen
in der Schleife gar nicht vor. Das bedeutet, dass 100*100=10000 mal dasselbe ausgeführt wird.
Innerhalb der Schleifen wird "Selection.Font" bearbeitet. Selection ist die gerade aktuelle Markierung.
Das kann irgend ein Bereich sein - mit deinen Schleifen hat das gar nichts zu tun.
Wofür sollte denn das SendKeys am Ende gut sein?
Jetzt mein Vorschlag. Der nutzt, dass man einem ganzen Bereich zusammen eine Schriftgröße usw. geben kann.
(So macht man es ja auch in Excel - man würde nie jede Zele einzeln bearbeiten.)
So geht's auch:
Option Explicit ' IMMER zu empfehlen
Sub testntest2()
With Sheets("Tabelle1").Range("C3:C102").Font
.Name = Range("I9").Value
.Size = Range("J9").Value
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ThemeColor = xlThemeColorLight1
.TintAndShade = 0
.ThemeFont = xlThemeFontNone
End With
End Sub
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich