Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
556to560
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
556to560
556to560
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Combobox formatieren

Combobox formatieren
01.02.2005 15:41:12
geri
Hallo,
ich habe eine Arbeitsmappe mit mehreren Comboboxen die ganz unterschiedlich in den TabellenSpalten angeordnet sind. Ich sollte nun diese Comboboxen in der Größe so verändern, dass alle ein einheitliches Erscheinungsbild haben.
Die Arbeitsmappe hat mehrere Tabellenblätter, und in fast jedem Tabellenblatt sind solche Comboboxen untergebracht. Auch gilt es z. B. die Comboboxen 2, 12, 9, 11, 13, 16 bei einer Position von 79,5 anzuordnen, die Comboboxen 17, 15, 14, 8, 10 bei einer Position von 326,25 anzuordnen.
Wer kann mir dazu bitte einen Tipp geben. Danke
Gruß Geri

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Combobox formatieren
Galenzo
markierst du alle Combos (mit gedrückter SHIFT-Taste) und stellst die gemeinsamen Eigenschaften (z.B. linker Rand ) ein
AW: Combobox formatieren
01.02.2005 16:30:27
geri
danke für den Tipp, ist für mich aber doch relativ mühsamm, weil in der Arbeitsmappe immer ca. 10 - 15 Tabellenblätter vorhanden sind. Im Netz haben wir mehrere 1.000 solcher Arbeitsmappen liegen. Leider wurde bei der Erstellung nicht sauber gearbeitet, und nun sollte das halt nachbearbeitet werden.
AW: Combobox formatieren
bst
Abend Geri,
versuch mal sowas ähnliches.
HTH, Bernd
--
Option Explicit

Sub Ausrichten()
Dim ws As Worksheet
Dim sh As Shape
Dim mb As MSForms.ComboBox
Dim mbNum As String
For Each ws In ActiveWorkbook.Worksheets
For Each sh In ws.Shapes
If sh.Type = msoOLEControlObject Then
If TypeName(sh.OLEFormat.Object.Object) = "ComboBox" Then
Set mb = sh.OLEFormat.Object.Object
If mb.Name Like "ComboBox*" Then
mbNum = CInt(Val(Mid(mb.Name, 9)))
' Debug.Print mb.Name, mbNum
sh.Height = 60
sh.Width = 100
Select Case mbNum
Case 2, 11, 12 '...
sh.Left = 79.5
Case 1, 3, 5   ' ...
sh.Left = 326.25
End Select
End If
End If
End If
Next
Next
End Sub

Anzeige
AW: Combobox formatieren
Heiko
Hallo Geri,
versuche es mal so,

Private Sub Comboboxen_richten()
Dim objO As OLEObject
Dim hilf As Integer
' Alle OLEObjecte im aktiven Arbeitsblatt durchlaufen.
For Each objO In ActiveSheet.OLEObjects
' Wenn dabei eine Combobox gefunden wird dann darauf die Aktion ausführen.
If TypeName(objO.Object) = "ComboBox" Then
With objO
' Höhe und Breite festlegen.
.Height = 10
.Width = 100
' Nun die Nummer der Combobox rausfinden, funktioniert nur für 2stellige Zahlen.
hilf = Right(CStr(.Name), 1)
If IsNumeric(Right(CStr(.Name), 2)) = True Then
hilf = CInt(Right(CStr(.Name), 2))
Else
hilf = CInt(Right(CStr(.Name), 1))
End If
' Und dann anhand der Nummer die left Position festlegen
Select Case hilf
Case 2, 9, 11, 12, 13, 16
.Left = 79.5
Case 8, 10, 14, 15, 17
.Left = 326.25
End Select
End With
End If
Next objO
End Sub

Das Makro dann z.B. per Button, oder noch besser per Hotkey, starten.

Private Sub CommandButton1_Click()
Comboboxen_richten
End Sub

Wenn es wirklich 1000sende von Tabellen sind, solltest du dich mit den VBA Vorschlägen hier beschäftigen.
Mache dir eine extra Tabelle in der du dieses Makro kopierst mit einem Hotkey belegst und dann der Hotkey in den einzelnen Blättern der Tabelle startest.
Du mußt den Code bestimmt hier und da noch anpassen, aber wenn du genau beschreibst was noch gehen soll, läßt sich da auch bestimmt was tun.
Gruß Heiko
PS: Das Forum lebt auch von den Rückmeldungen der Frager!
Anzeige
AW: Combobox formatieren
03.02.2005 15:12:23
geri
Hallo Heiko,
danke, das Makro funktioniert so wie ich es brauche. Vielleicht könnte man noch einen weiteren Schritt automatisieren. Wir haben viele Arbeitsmappen mit mehr als 30 Tabellenblätter. Also 30 mal den Hotkey ausführen, das müsste doch auch noch zu automatisieren sein.
Bitte, kannst du mir nochmals helfen. DAnke
Gruß Geri
AW: Combobox formatieren
Heiko
Hallo Geri,
so sollte es für alle Blätter laufen. Dein Dank gilt dann übrigens nicht nur mir, sondern auch Bernd, habe mir da den kurzen Code für Combobox.Nummer auslesen entliehen.

Private Sub Comboboxen_richten()
Dim objO As OLEObject
Dim hilf As Integer
Dim ws As Worksheet
For Each ws In ActiveWorkbook.Worksheets
' Alle OLEObjecte im aktiven Arbeitsblatt durchlaufen.
For Each objO In ws.OLEObjects
' Wenn dabei eine Combobox gefunden wird dann darauf die Aktion ausführen.
If TypeName(objO.Object) = "ComboBox" Then
With objO
' Höhe und Breite festlegen.
.Height = 10
.Width = 100
' Nun die Nummer der Combobox rausfinden.
hilf = CInt(Val(Mid(.Name, 9)))
' Und dann anhand der Nummer die left Position festlegen
Select Case hilf
Case 2, 9, 11, 12, 13, 16
.Left = 79.5
Case 8, 10, 14, 15, 17
.Left = 326.25
End Select
End With
End If
Next objO
Next ws
End Sub

Gruß Heiko.
PS: Das Forum lebt auch von den Rückmeldungen der Frager!
Anzeige
AW: Combobox formatieren
04.02.2005 08:58:05
geri
Vielen herzlichen Dank für die tolle Unterstützung. Das klappt nun hervorragend. Nun habe ich in einem Excel Buch einen Fortschrittsbalken gesehen. Diesen möchte ich ganz gerne einbinden. Folgenden Code habe ich aus dem Buch erstellt.

Private Sub cmd1_Click()
Dim i As Integer
Dim iMax
lbl1.Width = 0
iMax = 1000
For i = 1 To iMax
lbl1.Width = (i + 1) / 10
lbl1.TextAlign = fmTextAlignCenter
lbl1.Caption = Int(i / 10) & " %"
lbl1.Font.Bold = True
lbl1.ForeColor = RGB(256, 256, 256)
DoEvents
Call AlleBlaetter
Call ChangePropertysOfWorkbookCombobox
Call Comboboxen_richten
Next
End Sub

Frage: wo soll ich nun deinen Code einbauen, damit der Fortschrittsbalken auch funktionert. Verschiedene Möglichkeiten habe ich schon versucht. Leider Fehlanzeige. Ist das überhaupt möglich. Danke für die Rückmeldung.
Gruß Geri
Anzeige
AW: Combobox formatieren
Heiko
Hallo Geri,
ich würde es lassen, denn erstens macht es die Sache nur langsamer und zweitens müßtes du voher immer zählen wieviele Blätter drin sind um abzuschätzen wie lange es dauert.
Wenn du das wirklich machen willst, sieht zwar schön aus bringt aber sonst nichts, dann eröffne einen neune Thread.
Gruß Heiko
AW: Combobox formatieren
geri
Danke für die Rückmeldung.
Ich möchte mich nochmals für die Lösung bedanken.
Gruß Geri

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige