Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Userform in Userform lädt lange
#1
15 Hallo zusammen, und frohe Ostern

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

LG
Michael


Angehängte Dateien
.xls   UF in UF.xls (Größe: 49 KB / Downloads: 7)
Antworten Top
#2
Hallo,

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
Antworten Top
#3
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

LG
Michael
Antworten Top
#4
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.


Angehängte Dateien
.xls   UF in UF.xls (Größe: 58,5 KB / Downloads: 2)
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
Antworten Top
#5
Danke. Das ist auch eine gute Lösung. Ich glaub ich werde die übernehmen. Mit dem Klicken ist es halt nur die Performance.

Aber nur zum besseren Verständnis
So sieht eine Zeile aus

Zug 719 Ab Salzburg Über Bischofshofen Über Selzthal An Graz Hbf (und dann kommen die Daten wie Gewicht, Bremse, Wagenanzahl usw.)

Zug 499   blablabla

Lg
Michael
Antworten Top
#6
Hallo Michael,

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:
  • Eizi100
Antworten Top
#7
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. 

LG
Michael


Angehängte Dateien
.txt   mail.txt (Größe: 22,78 KB / Downloads: 5)
Antworten Top
#8
Hallo Michael,

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
Antworten Top
#9
Hallöchen,

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
  
  WSh2.Range(sBer).Copy                         ' Bereich kopieren
'  WSh2.UsedRange.Copy                           ' Oder alles
  On Error GoTo fehlermelden
  With CreateObject("Outlook.Application").CreateItem(0)
      .BodyFormat = 2                           ' 2=HTML-Format, 3=Richtext
      .Subject = Range("s8").Text & " " & Range("S5").Text & " " & Range("s4").Text & " " & Range("S6").Text & Range("S7").Text & " " & Range("S16").Text & " " & Range("S12").Text & " " & Range("S14").Text & " " & Range("S15").Text         'Betreffzeile
      .To = WSh1.Range(strTo).Text                                ' Empfänger
      .CC = ""               ' Kopie
      sMailtext = ""
      iEinf = Len(sMailtext) + 1
      .GetInspector                             ' Signatur holen
      .htmlbody = Replace(sMailtext, vbLf, "<br>") _
                & .htmlbody
      .Display
    
      With .GetInspector.WordEditor.Application.Selection
          .start = iEinf                        ' Grafik Einfügestelle
          .Paste
      End With
      
  End With
fehlermelden:
  
  End
End Sub
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste