Registriert seit: 12.04.2014
Version(en): Office 365
Hallo
na das machst du dann auf die gleiche Weise wie du es mit deiner Filmdatenbank
mit dem Filminhalt machst
MfG Tom
Registriert seit: 22.10.2017
Version(en): 2016
Ok...ich versuche es mal.
:17:
Registriert seit: 22.10.2017
Version(en): 2016
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?
Registriert seit: 12.04.2014
Version(en): Office 365
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
Registriert seit: 22.10.2017
Version(en): 2016
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?
Registriert seit: 12.04.2014
Version(en): Office 365
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:1 Nutzer sagt Danke an Crazy Tom für diesen Beitrag 28
• MdeJong
Registriert seit: 22.10.2017
Version(en): 2016
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
Registriert seit: 22.10.2017
Version(en): 2016
Ich hab es hinbekommen...ich habe den Call Aufruf nach oben in den Code, vor dem With gesetzt
Registriert seit: 12.04.2014
Version(en): Office 365
Hallo
na siehste
Versuch macht kluch

MfG Tom