ComboBox & Word

Hallo,
ich habe ein Word Dokument mit ca 50 comboboxen. Leider dauert es nun ca 1 Min diese dokument zu öffnen :frowning: gibt es einen Trick es zu beschleunigen ?

Private Sub Document_Open()
ComboBox1.List() = Array(" „, „vermehrt“, „normal“, „vermindert“)
ComboBox2.List() = Array(“ ", „vermehrt“, „normal“, „vermindert“)

End Sub

Hallo Joe,

50 Comboboxen ? Das ist ja straff :wink:
was mir auffaellt ist, das du combox1 und combox2 mit den gleichen Daten füllst. Eine Variante wäre… nur eine zu befuellen und diese dann bei Bedarf verschieben oder nachladen. Das spart schon einmal ein wenig Zeit :smile:

Desweiteren kommt es darauf an, wieviel Eintraege du in den Comboboxen hast. Ein setzen der Eigenschaft Visible auf False beim laden beschleunigt auch den Vorgang ein wenig!

Desweiteren könntest du mal folgendes versuchen.

Option Explicit

Private Declare Function SendMessage Lib "user32" Alias \_
 "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, \_
 ByVal wParam As Long, lParam As Any) As Long

Dim StrItemText as string
Dim lngDataIndex as Long
StrItemText="Dein Wert"
lngDataIndex = SendMessage(C.hWnd, &H143, 0,ByVal strItemText)

Das rentiert sich aber erst ab >50 Eintraegen :s Aber ein Versuch sollte es Wert sein :wink:

PS: Das ist der Code für VB und nicht VBA. Sollte aber eigentlich laufen :smile:

MfG Alex

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hi Alex,

Aber warum dauert es sooo Lange 50 Comboboxen mit inhalt zu füllen ?
das sind 50 Zeilen Quelltext …

mfg joe

Hi Joe,

Aber warum dauert es sooo Lange 50 Comboboxen mit inhalt zu
füllen ?
das sind 50 Zeilen Quelltext …

weil die Comboboxen beim Start des Projekts erst mal erzeugt werden müssen. Eine combobox ist eine Kombination aus Liste (Array) und einem Textfeld, mit allen Editierfunktionen aus dem Notepad. Ein wahrer Ressourcenfresser!

Dazu kommt, daß VBA IMO noch auf das VB4 zurückgeht, also noch interpretiert wird. Da steckt kein Compiler dahinter, der das Projekt zur Laufzeit schnell macht.

Ich würde auch, wie Anno vorgeschlagen hat, mit nur einer Combobox arbeiten und den Anwender nur glauben lassen, es wären mehrere. Ich vermute, daß das erheblich schneller ist und der Anwender bemerkt es nicht, er kann ja immer nur eine Combobox anklicken. Daß da immer die selbe Box verschoben, mit dem passenden Inhalt gefüllt und angezeigt wird, ist nicht zu merken. Der Code wird davon umständlicher, aber schneller und ressourcenschonend.

Gruß, Rainer

Hallo joe,

Aber warum dauert es sooo Lange 50 Comboboxen mit inhalt zu
füllen ?
das sind 50 Zeilen Quelltext …

…die du sehen kannst !

In Wirklichkeit stehen aber hinter jedem einzelnen deiner Aufrufe ein paar 10’000 Zeilen Code in verschiedenen Bibliotheken…

MfG Peter(TOO)

Hallo Joe,

probiere mal folgendes. Entferne mal die Zeilen wo du die Comboboxen füllst. Starte dann mal dein Prog neu. Dauert es immernoch solange?

Wenn ja dann poste mal bitte den kompletten Source wo du die Comboboxen füllst. Nur dann kann man eine Aussage machen.

Richtig ist wie Peter schon sagte, das nicht nur 1 Zeile ausgefuehrt wird :wink: Dennoch kann ich es mir nur schwer vorstellen das es daran liegt, denn auch ich habe mal ein Project geschrieben wo mehr wie nur 100 Steuerelemente drauf waren und das laden hat da auch nicht lange gedauert!

MfG Alex

Hi Anno,

Ich habe nun nochmal ein neues dokument mit 50 comboboxen gemacht … alle leer. Die Ladezeit ist trotzdem grösser als 20 sekunden.
Gibt es eine Alternative zur combobox ?
es soll eine auswahlmöglichkeit + freitext zulassen

mfg joe

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]