Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1244to1248
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
Inhaltsverzeichnis

UserForm Eingaben speichern

UserForm Eingaben speichern
Dirk
Hallo zusammen,
Ich habe in Word ein Userfom mit einer Checkbox und 3 TextBoxen.
wenn ich die Userform an meinem Rechner aufrufe Daten eingebe und das nächste Dokument öffne (ohne word zu schließen) bleiben meine Eingaben erhalten.
Wenn ich das an dem PC von meiner Kollegin mache (Gleiches BS gleiches Office)
verschwinden die Eingaben nach jeder bestätigung (nur Hidden)
Wie kann das denn sein?
kann man eigendlich die Einträge exportieren und beim öffnen der UserForm erneut einlesen?
mit anderer Worten selbst wenn ich Word komplett schließe sollten die einträge wieder d sein wenn ich das Userform aufrufe.
irgendwie export in eine Textdatei oder so
wenn ja wie mach ich das?
Dank im Vorraus
Dirk

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
Es gibt zahlreiche WORD-Foren...
20.01.2012 17:29:33
NoNet
...weshalb stellst Du diese Frage dann in einem EXCEL-Forum, Dirk ?
Das was Du beschreibst ist eher ein Fall für eine Datenbank oder zumindest für eine (Excel-)Datenmaske.
Ich würde mich nicht darauf verlassen, dass WORD (oder ein anderes Programm) das gerade zufällig so handhabt, wie Du das möchtest.
In WORD kann man die Eingaben aus einem UserForm auch auslesen und z.B. in eine TXT-Datei (oder sogar XML-Datei) speichern und beim Öffnen der UserForm diese Daten wieder einlesen. WIE das funktioniert können Dir versierte WORD-Benutzer aber sicherlich besser beantworten. Ich zumindest arbeite zwar auch regelmässig mit WORD, aber nur sehr selten mit WORD VBA, daher steige ich hier aus.
Salut, NoNet
Anzeige
AW: Es gibt zahlreiche WORD-Foren...
20.01.2012 17:44:02
Dirk
Hallo NoNet
..weshalb stellst Du diese Frage dann in einem EXCEL-Forum, Dirk ?
Ich Denke bei UserForm und einer solchen allgemeinen Frage sollte das keinen unterschied machen ob ich das in Word oder Excel habe.
Das Tool was sich hinterher unter dem UserForm verbirgt ist natürlich auf word gemünzt
Das was Du beschreibst ist eher ein Fall für eine Datenbank oder zumindest für eine (Excel-)Datenmaske.

Nein.
In dem ersten Feld wir ein Dateiname eingetragen.
die beiden anderen Felder sind optionale Felder in denen Suchbegriffe eingetragen werden können.
eine Datenbank oder Datenmaske ist hier total übertrieben für, zumal die Datein auch eigendlich nicht mehr groß verarbeitet werden sondern lediglich aus "gedächnissstütze" im nachgang dienen sollen.
(fals man unterbrochen wurde wo war ich was hatte ich zuletzt gemacht)
Gruß
Dirk
Anzeige
AW: Es gibt zahlreiche WORD-Foren...
20.01.2012 17:47:05
Dirk
Export in eine txt Datei klingt gut
ich hab nur keine idee wie das gehen soll
Gruß
Dirk
Ich würde hier schauen...
20.01.2012 17:59:40
NoNet
Hallo Dirk,
wie gesagt : Von WORD VBA habe ICH nur wenig Ahnung - in Excle würde ich die Werte z.B. in ein Worksheet schreiben - was in WORD eben NICHT funktioniert, da es eben keine Tabellenkalkulation ist ;-)
Ich würde mich daher hier schlau machen :
https://www.google.de/#hl=de&q=Word+Export+Userform+Daten+in+TXT-Datei
Viel Erfolg und schönes WE, NoNet
AW: UserForm Eingaben speichern
20.01.2012 19:25:46
Dirk
Ok ich glaub ich hab eine Lösung die aber garantiert verbesserungswürdig ist
wenn einer also noch anregungen hat immer her damit :-D
Gruß
Dirk
Private Sub CommandButton1_Click()                  'Schreiben der .txt
inout = tb1.Value & ";" & tb2.Value & ";" & cb1.Value
F = FreeFile
Open "c:\test.txt" For Output As #F
Print #F, inout
Close #F
'Shell "cmd Echo " & inout & " >c:test.txt", vbNormalFocus
'UF1.Hide
End Sub

Public Function txt_ReadLine(ByVal sFilename As String, _
ByVal LineToRead As Long) As String
Dim F As Integer
Dim sLine As String
Dim lRow As Long
lRow = 0
' Existiert die Datei ?
If Dir$(sFilename)  "" Then
' Datei zum Lesen öffnen
F = FreeFile
Open sFilename For Input As #F
' Solange einlesen, bis entweder Dateiende
' oder gewünschte Zeilennummer erreicht
While Not EOF(F) And lRow 

Private Sub UserForm_Initialize()           'einlesen der txt
On Error Resume Next
inout = txt_ReadLine("C:\test.txt", 1)
io = inout
i = InStrRev(inout, ";")                    'zerlegen in einzellne Variablen
s = i - 1
in1 = Right(inout, (Len(inout) - i))
inout = Left(inout, s)
i = InStrRev(inout, ";")
s = i - 1
in2 = Right(inout, (Len(inout) - i))
inout = Left(inout, s)
i = InStrRev(inout, ";")
s = i - 1
in3 = Right(inout, (Len(inout) - i))
inout = Left(inout, s)
If in1 = "Wahr" Then                        'ausfüllen der UserForm
cb1.Value = True
Else
cb1.Value = False
End If
tb2.Value = in2
tb1.Value = in3
End Sub

Anzeige
Lösungsmöglichkeit
20.01.2012 19:48:37
Dirk

Private Sub CommandButton1_Click()                  'Schreiben der .txt
inout = tb1.Value & ";" & tb2.Value & ";" & cb1.Value
F = FreeFile
Open "c:\test.txt" For Output As #F
Print #F, inout
Close #F
UF1.Hide
MsgBox (tb1.Value & ";" & tb2.Value & ";" & cb1.Value)
End Sub

Public Function txt_ReadLine(ByVal sFilename As String, _
ByVal LineToRead As Long) As String
Dim F As Integer
Dim sLine As String
Dim lRow As Long
lRow = 0
' Existiert die Datei ?
If Dir$(sFilename)  "" Then
' Datei zum Lesen öffnen
F = FreeFile
Open sFilename For Input As #F
' Solange einlesen, bis entweder Dateiende
' oder gewünschte Zeilennummer erreicht
While Not EOF(F) And lRow 

Private Sub UserForm_Initialize()           'einlesen der txt
On Error Resume Next
inout = txt_ReadLine("C:\test.txt", 1)
io = inout
i = InStrRev(inout, ";")                    'zerlegen in einzellne Variablen
in1 = Right(inout, (Len(inout) - i))
inout = Left(inout, (i - 1))
i = InStrRev(inout, ";")
in2 = Right(inout, (Len(inout) - i))
inout = Left(inout, (i - 1))
i = InStrRev(inout, ";")
in3 = Right(inout, (Len(inout) - i))
inout = Left(inout, (i - 1))
If in1 = "Wahr" Then                        'ausfüllen der UserForm
cb1.Value = True
Else
cb1.Value = False
End If
tb2.Value = in2
tb1.Value = in3
End Sub

für Verbesserungsvorschläge bin ich offen
Gruß
Dirk
Anzeige
AW: Lösungsmöglichkeit
20.01.2012 23:07:47
JoWe
Hallo Dirk,
vllt. so:

Sub schreiben_in_textdatei()
' Die Textdatei muss schon existieren, vorhandener Text wird überschrieben
' Der Inhalt aller Textboxen (tb1 bis tbnn) wird zeilenweise in die txt-Datei geschrieben
' die geschriebenen Daten stehen in einer Zeile
' und sind durch Kommas getrennt.
Dim c As MSForms.Control
Open "c:\temp\wdText.txt" For Output As #1 'Dateiname und Pfad anpassen
With UserForm1
For Each c In UserForm1.Controls
If TypeOf c Is MSForms.TextBox Then
x = x + 1
If c.Name = "TextBox" & x Then
Write #1, c
c = ""
End If
End If
Next c
End With
Close #1
MsgBox "Speicherung ist erfolgt!", vbOKOnly, "Hinweis"
End Sub

Sub lesen_aus_textdatei()
Dim c As MSForms.Control
Dim a(10) As Variant, i, x As Long, t As String
Open "c:\temp\wdText.txt" For Input As #1 'Dateiname und Pfad anpassen
i = 1
Do While Not EOF(1)
Line Input #1, t
a(i) = Replace(t, """", "")
i = i + 1
Loop
Close #1
For Each c In UserForm1.Controls
If TypeOf c Is MSForms.TextBox Then
x = x + 1
If c.Name = "TextBox" & x Then
c = a(x)
End If
End If
Next c
End Sub

Achtung ich habe keine Fehlerroutinen eingebaut.
Die Makros gehen davon aus, das die Textboxen in linearer Reihenfolge aus der
Textdatei gefüllt werden.
Gruß
Jochen
Anzeige
AW: Lösungsmöglichkeit
21.01.2012 16:25:56
Dirk
Hallo JoWe,
Danke erstaml für deine Hilfe
Dein Makro sieht echt gut aus funktioniert aber leider nur bei den Textboxen.
die Checkbox übernimmer er leider nicht.
Du hast mich aber auf einen guten gedanken gebracht das ganze zu optimieren
ich werd das auch einfach in ne schleife setzten und zeilenweise schreiben und einlesen
das sollte dann auch Fehlerfreier sein
Gruß
Dirk

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige