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.

VBA - Daten von Userform schneller übertragen
#1
Hallo Liebe Excel-Freunde,

ich benötige mal wieder eure Hilfe.

Ich habe ein Userform mit einigen Textfeldern.
Nach der Eingabe der Daten und Bestätigung über einen Button werden
die Daten jeweils in die dazu gehörige Zelle im Tabellnblatt übertragen.

Es müssen nicht zwingend alle Felder befüllt werden.

Grundsätzlich klappt auch alles mit den Code, es dauert einfach nur ewig, bis alle Daten
übertragen wurden.

Der Code dazu ist simpel gehalten:


Code:
Range("B50").Value = Text1VonUW.Value
Range("B51").Value = Text2VonUW.Value
Range("B52").Value = Text3VonUW.Value
Range("B53").Value = Text4VonUW.Value
Range("B54").Value = Text5VonUW.Value
Range("B55").Value = Text6VonUW.Value

'und so weiter....


Aber selbst, wenn man nur wenige Felder ausfüllt, dauert die Übertragung ewig, da er anscheinend auch leere Felder überträgt.

Gibt es da eine Möglichkeit das zu beschleunigen, bzw. nur die Textfelder bei der Übertragung zu beachten, in denen auch wirklich Daten sind???

Liebe Dank für eure Hilfe.
Antworten Top
#2
Hallo,

ein VBA Code wäre hilfreich ...
Hast Du in deinem Code so etwas wie Application.Screenupdating=false stehen? Zum Einschalten wieder auf true setzen.

Lg
Marcus

Wissen ist Macht - es ist aber nicht schlimm nicht alles zu wissen.
Man muss nicht alles wissen - man muss nur wissen wo es steht, oder wo man Hilfe bekommt.
Antworten Top
#3
Hallo,

teste es mal so:
Sub aaa()
Dim i As Long
Dim varTexte(1 To 6, 1 To 1) As Variant

For i = 1 To UBound(varTexte, 1)
varTexte(i, 1) = Me.Controls("Text" & i & "VonUW").Text
Next i

Range("B50").Resize(UBound(varTexte, 1)).Value = varTexte
End Sub
Du musst nur die 6 (rot gekennzeichnet) entsprechend der tatsächlichen Anzahl ändern.

Gruß Uwe
Antworten Top
#4
(12.11.2019, 15:01)marose67 schrieb: Hallo,

ein VBA Code wäre hilfreich ...
Hast Du in deinem Code so etwas wie Application.Screenupdating=false stehen? Zum Einschalten wieder auf true setzen.

Lg
Marcus

Geht schonmal etwas schneller. Danke für den Tipp Marcus.

@Uwe
Das mit der Schleife teste ich mal zusätzlich. Auch dir schonmal Danke.

Melde mich nach dem Test nochmal, ob ich noch Hilfe benötige.


EDIT:
Mega :05: ganz lieben Dank euch beiden, jetzt flitzt die Dateneingabe förmlich durch und es ist eine Sache von Sekunden, statt Minuten ^^
Antworten Top


Gehe zu:


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