Microsoft Excel

Herbers Excel/VBA-Archiv

Schriftgröße in Gültigkeitsbereich | Herbers Excel-Forum


Betrifft: Schriftgröße in Gültigkeitsbereich von: Heinz H
Geschrieben am: 02.01.2010 09:26:35

Guten morgen im Forum

Kann man die Schriftgröße für Gültigkeitsbereich "Liste" Quelle L54:L58 ändern ?
Ist doch etwas zu klein für manche Benutzer.

ODER gibt es eine andere Lösung ?

Gruß
Heinz

  

Betrifft: AW: Schriftgröße in Gültigkeitsbereich von: Hajo_Zi
Geschrieben am: 02.01.2010 09:27:52

Hallo Heinz,

Schriftgröße Daten Gültigkeit
Da hast Du wenig Einfluss.
Im Internet Stand mal folgender Tip:
Zomm 200%, Schriftgröße auf die Hälfte reduzieren und Spalten und Zeilenbeschriftung ausblenden

GrußformelHomepage


  

Betrifft: AW: Schriftgröße in Gültigkeitsbereich von: Heinz H
Geschrieben am: 02.01.2010 09:35:06

Guten morgen.Hajo

Habe jetzt deinen Tip getestet. Es funktioniert,ABER das optimale ist es auch nicht.
Trozdem recht herzlichen Dank.

Gruß
Heinz


  

Betrifft: AW: Schriftgröße in Gültigkeitsbereich von: Beverly
Geschrieben am: 02.01.2010 11:04:44

Hi Heinz,

andere Lösung: du könntest anstelle des DropDown-Listenfeldes aus Daten Gültigkeit beim Select auf die betreffende Zelle eine ComboBox aus den ActiveX-Steuerelementen mit den betreffenden Einstellungen "temporär" einfügen, welche beim Verlassen wieder gelöscht wird. Dazu folgenden Code ins Codemodul des Tabellenblattes:

Option Explicit

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim ooElement As OLEObject
    Application.ScreenUpdating = False
    If Target.Address = "$C$2" Then
        Set ooElement = OLEObjects.Add(ClassType:="Forms.ComboBox.1",  _
            Left:=0, Top:=0, Width:=0, Height:=0)
        With ooElement
            .Top = Range("C2").Top
            .Left = Range("C1").Left
            .Width = Range("C2:D2").Width
            .Height = Range("C2:C3").Height
            .ListFillRange = "$L$54:$L$58"
            .LinkedCell = ""
            .Activate
            .Object.Font.Size = 12
            .Object.DropDown
            .Object.ListIndex = 0
        End With
    End If
    Application.ScreenUpdating = True
End Sub

Private Sub ComboBox1_Change()
    Range("C2") = ComboBox1
End Sub

Private Sub ComboBox1_LostFocus()
    Range("C2") = ComboBox1
    ActiveSheet.OLEObjects(1).Delete
End Sub

Die Zelle mit der simulierten Liste ist C2 - musst du an deine Bedingungen anpassen, ebenso die Schriftgröße sowie die Größe der ComboBox.
Voraussetzung für das Funktionieren des Ganzen ist natürlich, dass keine weiteren ComboBoxen im Tabellenblatt vorhanden sind.


GrußformelBeverly's Excel - Inn


  

Betrifft: AW: Schriftgröße in Gültigkeitsbereich von: Heinz H
Geschrieben am: 02.01.2010 11:25:00

Schönen Tag Karin

Das mit der ComboBox wird glaube ich nicht gehen,(Habe selbst schon daran gedacht), Den die ComboBox sollte nicht immer sichtbar sein.
Nur wenn ich auf eine der Zelle L6:L35 klicke. (Siehe Datei)

Schade um Deine Bemühungen.

Recht herzlichen Dank

Gruß
Heinz


https://www.herber.de/bbs/user/66919.xls


  

Betrifft: AW: Schriftgröße in Gültigkeitsbereich von: Beverly
Geschrieben am: 02.01.2010 11:57:22

Hi Heinz,

mir scheint, du hast den Code nicht einmal getestet - die ComboBox wird nur temporär erstellt, denn wenn sie verlassen wird, wird sie wieder gelöscht (hatte ich in meinem vorhergehenden Beitrag schon geschrieben!).

Wenn es mehrere Zellen betriff, dann den gesamten Code wie folgt ändern

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim ooElement As OLEObject
    Application.ScreenUpdating = False
    If Not Intersect(Target, Range("L6:L35")) Is Nothing Then
        Set ooElement = OLEObjects.Add(ClassType:="Forms.ComboBox.1", _
            Left:=0, Top:=0, Width:=0, Height:=0)
        With ooElement
            .Top = Target.Top
            .Left = Target.Left
            .Width = Range(Target, Target.Offset(1, 2)).Width
            .Height = Range(Target, Target.Offset(1, 2)).Height
            .ListFillRange = "$L$54:$L$58"
            .LinkedCell = ""
            .Activate
            .Object.Font.Size = 12
            .Object.DropDown
            .Object.ListIndex = 0
        End With
    End If
    Application.ScreenUpdating = True
End Sub

Private Sub ComboBox1_Change()
    Range(ComboBox1.TopLeftCell.Address) = ComboBox1
    ActiveSheet.OLEObjects(1).Delete
End Sub
Lösche vorher alle Daten Gültigkeit DropDowns in L6:L35.




GrußformelBeverly's Excel - Inn


  

Betrifft: AW: Schriftgröße in Gültigkeitsbereich von: Heinz H
Geschrieben am: 02.01.2010 12:02:54

Hallo Karin

Recht-Recht herzlichen Dank.
Ja du hattest recht

"mir scheint, du hast den Code nicht einmal getestet
Funkt. SUPER

Danke & Gruß
Heinz


  

Betrifft: AW: Schriftgröße in Gültigkeitsbereich von: Willy
Geschrieben am: 03.01.2010 00:33:46

Hallo Karin
super Code, ( der Fachmann staunt und der Laie wundert sich )
der erste funzt super,
beim zweiten geht die Gültigkeitsliste weg, aber die ComboBox bleibt in voller größe stehen.

Gruß Willy


  

Betrifft: ..versuch einmal.. von: robert
Geschrieben am: 03.01.2010 09:05:40

hi,

lösche einmal die boxen per hand, dann sollte es gehen-
zumindest bei mir geht es dann.

gruß
robert


  

Betrifft: AW: Schriftgröße in Gültigkeitsbereich von: Beverly
Geschrieben am: 03.01.2010 09:56:13

Hi Willy,

das kann ich leider nicht nachvollziehen - bei mir bleibt keine ComboBox stehen. Der Code hat auch keinerlei Einfluss auf die Zellen mit der Gültigkeits-Liste, denn es wird nur ein Wert eingetragen. Die Gültigkeits-Listen sollten nur deshalb gelöscht werden weil sie nicht mehr benötigt werden.


GrußformelBeverly's Excel - Inn


  

Betrifft: AW: Schriftgröße in Gültigkeitsbereich von: Willy
Geschrieben am: 03.01.2010 10:54:51

Hallo Robert
löschen, schön und gut, aber wie ???

Hallo Karin
Ich habe es jetzt mehr mal mit neuen leeren Arbeitsmappen probiert und komme immer auf das gleiche Ergebnis. Siehe Anhang.

Gruß Willy

https://www.herber.de/bbs/user/66944.xls


  

Betrifft: AW: Schriftgröße in Gültigkeitsbereich von: Beverly
Geschrieben am: 03.01.2010 14:16:30

Hi Robert,

schalte den Entwurfsmodus ein und dann kannst du sie löschen.

https://www.herber.de/bbs/user/66946.xls


GrußformelBeverly's Excel - Inn


  

Betrifft: ..das sollte wohl an Willy-owT von: robert
Geschrieben am: 03.01.2010 14:20:44




  

Betrifft: AW: Schriftgröße in Gültigkeitsbereich von: robert
Geschrieben am: 03.01.2010 14:24:03

Hi,

hier deine datei nach mehrmaliger auswahl :-)

warum bleiben die stehen ?

gruß
robert

https://www.herber.de/bbs/user/66947.xls


  

Betrifft: AW: Schriftgröße in Gültigkeitsbereich von: Beverly
Geschrieben am: 03.01.2010 14:35:22

Hi Robert,

sorry, meinte im vorhergien Beitrag natürlich Willy.

Du musst die ComboBox verlassen indem du etwas auswählst - wenn nichts eingetragen werden soll dann den leeren "Eintrag".

Wenn die ComboBox auch gelöscht werden soll wenn man sie ohne etwas auszuwählen verlässt, dann musst du den Code so wie in meinem ersten Post noch um das LosFocus-Ereignis ergänzen:

 Private Sub ComboBox1_Change()
     Range(ComboBox1.TopLeftCell.Address) = ComboBox1
     ActiveSheet.OLEObjects(1).Delete
 End Sub
 
  Private Sub ComboBox1_LostFocus()
     ActiveSheet.OLEObjects(1).Delete
 End Sub


GrußformelBeverly's Excel - Inn



  

Betrifft: Danke Karin :-) owT-Gruß von: robert
Geschrieben am: 03.01.2010 14:52:22




  

Betrifft: AW: Danke Karin :-) von: Willy
Geschrieben am: 03.01.2010 18:58:09

Hi Karin und Robert
Das löschen im Entwurfmodus habe ich hin bekommen.
Die Gültigkeitliste funzt nach langen testen jetzt auch, aber den ersten Wert L54 wird nicht übernommen.
In L54 bis L58 steht was und im Code

.ListFillRange = "$L$54:$L$58"

ist der Bereich auch festgelegt, habe den Bereich erweitert.
.ListFillRange = "$L$53:$L$59"

Habt ihr dieses Phänomen auch ???

Danke
Gruß aus der Uckermark
Willy


  

Betrifft: AW: Danke Karin :-) von: Beverly
Geschrieben am: 03.01.2010 20:06:39

Hi Willy,

also irgendwie verstehe ich nicht was du meinst - ListFillRange weist den Wertebereich zu und was in diesen Zellen steht, wird dann auch in der ComboBox zur Auswahl angeboten. Wenn eine der Zellen leer sein sollte, dann ist diese Zeile in der ComboBox natürlich auch leer. Und eine Zeile sollte auch leer sein, weil du andernfalls keinen Eintrag mehr "gelöscht" (besser: überschrieben durch nichts) bekommst.

https://www.herber.de/bbs/user/66961.xls

Ich habe mal den Bereich im Tabellenblatt gelb markiert, der in der ComboBox dargestellt wird.


GrußformelBeverly's Excel - Inn


  

Betrifft: AW: Danke Karin :-) von: Willy
Geschrieben am: 04.01.2010 10:51:00

Hi Karin,

die Liste sieht doch so aus:
obere Zelle ist leer
Urlaub
Krank
Pflegefreistellung
Bildungsurlaub
AAA
CCC

jetzt schreibe z.B. Urlaub in die obere Zelle, dann wird Urlaub nicht in die Tabelle übernommen, auch bei deiner neuen Datei, jedenfalls so ist es bei mir. Und ich wollte nur wissen ob du auch dieses Phänomen hast oder es nur bei mir ist.
Ansonsten funzt es super. Sorry bin ein schwieriger Kunde.

Danke
Gruß aus der Uckermark
Willy


  

Betrifft: AW: Danke Karin :-) von: Beverly
Geschrieben am: 04.01.2010 11:02:47

Hi Willy,

schreibe den Code im LostFocus so:


Private Sub ComboBox1_LostFocus()
     Range(ComboBox1.TopLeftCell.Address) = ComboBox1
     ActiveSheet.OLEObjects(1).Delete
 End Sub
Da kein Change-Ereignis ausgeführt wird wenn die ComboBox ohne Auswahl eines anderen Eintrages verlassen wird, muss der Eintrag in die Zelle auch beim einfachen Verlassen der ComboBox erfolgen.


GrußformelBeverly's Excel - Inn


  

Betrifft: AW: Danke Karin :-) von: Heinz H
Geschrieben am: 04.01.2010 13:24:43

Hallo Karin

Auch ich möchte mich,bei Dir nochmals recht herzlich bedanken.

Gruß
Heinz


  

Betrifft: Danke Karin :-) owT Gruß Willy von: Willy
Geschrieben am: 04.01.2010 17:45:47




Beiträge aus den Excel-Beispielen zum Thema "Schriftgröße in Gültigkeitsbereich"