Das folgende Projekt habe ich aus dem Netz geklaut. Danke an den unbekannten Spender:) Mit einem Doppelklick öffne ich in einer Userform eine andere Userform und trage bestimmte Daten in die andere Userform ein. Das funktioniert auch sehr gut. Leider lädt das dann sehr lange, wenn ich die Daten eintrage. Vielleicht hat wer einen Tipp für mich, was ich falsch gemacht habe
mal abgesehen davon, dass ich es für Blödsinn halte, bei so wenig Objekten mit zwei UserForms zu arbeiten, wäre es schön, wenn du etwas genauer beschreiben würdest, wo der Doppelklick erfolgen soll. (Welches Formular).
Viele Grüße Klaus-Dieter Der Erfolg hat viele Väter, der Misserfolg ist ein Waisenkind Richard Cobden
04.04.2021, 12:10 (Dieser Beitrag wurde zuletzt bearbeitet: 04.04.2021, 12:12 von Eizi100.)
Hallo Klaus Dieter
Das ist eine abgespeckte Version. Ich habe die für dieses Forum gekürzt. Im Original sind in der ersten UF ca 20 Textboxen und in der zweiten UF ca. 50 Checkboxen.
Es geht um eine Bahnspezifische Datei. Mit einem Doppelklick öffnet sich die 2.UF mit der ich die Bahnhöfe in die Textbox eintragen kann. Sobald ich aber in der Exceldatei umblättere oder was anders mache (z.B.: UF neu laden), und später wieder auf die UF gehe lädt die Funktion dann so lange. Ganz schlimm ist es, wenn ich die UF von einer anderen Seite (z.B.: Daten aufrufe) Ich habe aber den Verdacht, dass es an meinem Rechner liegen könnte
04.04.2021, 12:23 (Dieser Beitrag wurde zuletzt bearbeitet: 04.04.2021, 12:34 von Klaus-Dieter.)
Hallo Michael,
es ist natürlich immer besser, wenn man den tatsächlichen Umfang kennt. Trotzdem bleibe ich bei meiner Meinung, dass zwei Userforms Blödsinn sind. Das würde jetzt heißen, ich fülle Textbox 1, mache einen Doppelklick, wähle einen Bahnhof aus, bei der nächsten Textbox die gleich Prozedur, dass dann zwanzig Mal? Hallo Michael,
habe mal einen alternativen Vorschlag erstellt.
Viele Grüße Klaus-Dieter Der Erfolg hat viele Väter, der Misserfolg ist ein Waisenkind Richard Cobden
anhand der vorliegenden Datei kann ich nicht feststellen, warum das so langsam ist. Da ist im Beispiel sicher auch nicht alles vorhanden, was es in der richtigen Datei an Makros gibt. Da können schon ordentliche Bremsen drin sein. Kann ich so aber nicht beurteilen.
Viele Grüße Klaus-Dieter Der Erfolg hat viele Väter, der Misserfolg ist ein Waisenkind Richard Cobden
Folgende(r) 1 Nutzer sagt Danke an Klaus-Dieter für diesen Beitrag:1 Nutzer sagt Danke an Klaus-Dieter für diesen Beitrag 28 • Eizi100
Mit den Makros könntest du recht haben. Alleine die Buttons zum Mailen (und das sind einige), und da hab ich schon abgespeckt, ist sehr ausfüllend. Die Mailadresse wird aus bestimmten Zellen ausgelesen.
bei groben Hinsehen, sieht das aus, wie zehn Mal der gleiche Quelltext. Das kann man doch bestimmt mit Variablen für die paar Unterschiede auf einen Quelltext eindampfen. Obwohl ich aber nicht glaube, dass da die Laufzeit herkommt, die werden ja wohl nicht alle durchlaufen?
Viele Grüße Klaus-Dieter Der Erfolg hat viele Väter, der Misserfolg ist ein Waisenkind Richard Cobden
das Einkürzen könnte so aussehen. Das E-Mail-Erzeugen brauchst Du nur 1x, und wohin das Ganze geht, übergibst Du diesem Makro als Variable. Du kannst den Aufruf dann auch gleich in die Click-Makros einfügen ...
Das Kopieren kann mit der Zeit relativ lange dauern. Du brauchst ja nur mal copy und paste auszukommentieren und zu schauen, wie lange es da dauert. Wenn es das ist, könnte man schauen, wie man das anders hin bekommt.
Code:
Sub Mail_Graz_Word_Sonderzug() Call Mail_Alle "B3" End Sub
Sub Mail_Alle(byVal strTo as String) ' Sendet Mail mit integriertem Bereich als Bereich mit Signatur Dim WSh1 As Worksheet, WSh2 As Worksheet Dim sMailtext As String, sBer As String, iEinf As Integer
sBer = "A1:J50" ' Kopierbereich Set WSh1 = ThisWorkbook.Sheets("Emailadressen") ' Blatt mit Maildaten Set WSh2 = ThisWorkbook.Sheets("Telegramm") ' Datenblatt