Inhalt einer Textbox als Textdatei speichern
#11
Hallo

na das machst du dann auf die gleiche Weise wie du es mit deiner Filmdatenbank 
mit dem Filminhalt machst


MfG Tom
Top
#12
Ok...ich versuche es mal.

:17:
Top
#13
Hi Tom,

ich hab mal versucht den Code für das Speichern in Textdatei
als normales Modul aufzurufen....irgendwie hab ich da noch einen Denkfehler?

Ich den Aufruf des Moduls in dem Code für das speichern eines neuen Kontaktes mit einbauen wollen.

und zwar so:


Code:
Private Sub cmdDatenSpeichern_Click()

'Schließt das Formular und übernimmt die Daten ins Tabellenblatt
Dim intersteleerzeil As Long

With ActiveSheet

intersteleerezeile = .Cells(Rows.Count, 1).End(xlUp).Row + 1
 
   .Cells(intersteleerezeile, 1).Value = Me.txtNummer.Value
   .Cells(intersteleerezeile, 2).Value = Me.cboAnrede.Value
   .Cells(intersteleerezeile, 3).Value = Me.txtVorname.Value
   .Cells(intersteleerezeile, 4).Value = Me.txtName.Value
   .Cells(intersteleerezeile, 5).Value = Me.txtStraße.Value
   .Cells(intersteleerezeile, 6).Value = Me.txtHausnummer.Value
   .Cells(intersteleerezeile, 7).Value = Me.txtPostleitzahl.Value
   .Cells(intersteleerezeile, 8).Value = Me.txtWohnort.Value
   .Cells(intersteleerezeile, 9).Value = Me.txtFestnetz.Value
   .Cells(intersteleerezeile, 10).Value = Me.txtFax.Value
   .Cells(intersteleerezeile, 11).Value = Me.txthandy.Value
   .Cells(intersteleerezeile, 12).Value = Me.txtGeburtsdatum.Value
   .Cells(intersteleerezeile, 13).Value = Me.txtMailadress.Value
   .Cells(intersteleerezeile, 14).Value = Me.txtWebsite.Value
   .Cells(intersteleerezeile, 15).Value = Me.txtInfoPerson.Value
       
   For Each objControl In Controls  'leert die Textboxen
       Select Case TypeName(objControl)
           Case "TextBox"
           objControl.Text = ""
           End Select
       Next
   cboAnrede.ListIndex = -1
   txtNummer.Value = .Cells(intersteleerezeile, 1).Value + 1
   End With
    Call Text_in_Datei
   MsgBox "Datensatz wurde erstellt und Textdatei gespeichert"
End Sub

in dem neuen Modul diesen:


Code:
Private Sub Text_in_Datei()
  Call WriteFile("D:\AdressBuchDaten\" & txtNummer.Text & ".txt", txtInfoPerson)
 
   MsgBox "Infos wurden als Textdatei gespeichert"
End Sub
warum ist das falsch?
Top
#14
Hallo

wenn eine Sub in einem Modul steht, woher soll die Sub wissen
welche Textbox du meinst?
ist es eine Textbox in einem Tabellenblatt?
ist es eine Textbox in einer Userform?

also schreibst du diese Zeile


Code:
Call WriteFile("D:\AdressBuchDaten\" & txtNummer.Text & ".txt", txtInfoPerson)

in den Code anstatt Call Text_in_Datei
ansonsten müsstest du in die Sub vor die TextBoxen den Namen der Userform schreiben


MfG Tom
Top
#15
habe ich das richtig verstanden? 
in dem Modul muss nur dieses Zeile:


Code:
Call WriteFile("D:\AdressBuchDaten\" & txtNummer.Text & ".txt", txtInfoPerson)


ohne Sub am Anfang und ohne End Sub?

und um Code fürs speichern der Daten, rufe ich diese Zeile mit "Call WriteFile" auf?
Top
#16
nein das hast du nicht richtig verstanden

diese Codezeile gehört in dein cmdDatenspeichern_Click
und zwar genau dahin wo du Call Text_in_Datei stehen hast

MfG Tom
[-] Folgende(r) 1 Nutzer sagt Danke an Crazy Tom für diesen Beitrag:
  • MdeJong
Top
#17
Ok.....das habe ich nun geändert.

Es wird gespeichert....es kommt keine Fehlermeldung.

Nur!....ich habe den dritten Datensatz eingegeben...also platz Nummer 3.

Doch die Textdatei wurde mit der Nummer 4 gespeichert und die Datei ist leer...nicht Nummer 3


Code:
Private Sub cmdDatenSpeichern_Click()

'Schließt das Formular und übernimmt die Daten ins Tabellenblatt
Dim intersteleerzeil As Long
Private Sub cmdDatenSpeichern_Click()

'Schließt das Formular und übernimmt die Daten ins Tabellenblatt
Dim intersteleerzeil As Long

With ActiveSheet

intersteleerezeile = .Cells(Rows.Count, 1).End(xlUp).Row + 1
 
   .Cells(intersteleerezeile, 1).Value = Me.txtNummer.Value
   .Cells(intersteleerezeile, 2).Value = Me.cboAnrede.Value
   .Cells(intersteleerezeile, 3).Value = Me.txtVorname.Value
   .Cells(intersteleerezeile, 4).Value = Me.txtName.Value
   .Cells(intersteleerezeile, 5).Value = Me.txtStraße.Value
   .Cells(intersteleerezeile, 6).Value = Me.txtHausnummer.Value
   .Cells(intersteleerezeile, 7).Value = Me.txtPostleitzahl.Value
   .Cells(intersteleerezeile, 8).Value = Me.txtWohnort.Value
   .Cells(intersteleerezeile, 9).Value = Me.txtFestnetz.Value
   .Cells(intersteleerezeile, 10).Value = Me.txtFax.Value
   .Cells(intersteleerezeile, 11).Value = Me.txthandy.Value
   .Cells(intersteleerezeile, 12).Value = Me.txtGeburtsdatum.Value
   .Cells(intersteleerezeile, 13).Value = Me.txtMailadress.Value
   .Cells(intersteleerezeile, 14).Value = Me.txtWebsite.Value
   .Cells(intersteleerezeile, 15).Value = Me.txtInfoPerson.Value
       
   For Each objControl In Controls  'leert die Textboxen
       Select Case TypeName(objControl)
           Case "TextBox"
           objControl.Text = ""
           End Select
       Next
   cboAnrede.ListIndex = -1
   txtNummer.Value = .Cells(intersteleerezeile, 1).Value + 1
   End With
    Call WriteFile("D:\AdressBuchDaten\" & txtNummer.Text & ".txt", txtInfoPerson)
   MsgBox "Datensatz wurde erstellt und Textdatei gespeichert"
End Sub
Top
#18
Ich hab es hinbekommen...ich habe den Call Aufruf nach oben in den Code, vor dem With gesetzt
Top
#19
Hallo

na siehste
Versuch macht kluch Wink

MfG Tom
Top


Gehe zu:


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