• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Textbox opslaan als .text of .doc bestand

Status
Niet open voor verdere reacties.

Revdutchie

Gebruiker
Lid geworden
29 nov 2009
Berichten
645
Hallo,

Ik wil graag een textbox in een userform opslaan als een word of txt bestand.
Nou ben ik al een tijdje aan het zoeken op internet, maar ik kom alleen mega lange code tegen, het lijkt me (maar kan het mis hebben) dat het simpeler kan, zoiets als textbox1.text save as "C:\textbox1(naam).txt" Waarbij naam de text is uit een ander textveld met de naam, naam ;)

Daarnaast wil ik dit bestand dus kunnen blijven openen, bewerken en weer opslaan in dezelfde textbox, is dit mogelijk ?

Het mag dus een word of txt bestand zijn, maar om het zo klein mogelijk te houden volstaat een txt bestand.
 
Code:
Sub klein()
  Open "E:\" & naam.text & ".txt" for output as #1
    Print #1, TextBox1.Text
  Close #1
End Sub
 
Code:
Sub klein()
  Open "E:\" & naam.text & ".txt" for output as #1
    Print #1, TextBox1.Text
  Close #1
End Sub

Dat werkt perfect, maar hoe lees ik het bestand eerst in in textbox1 ?
 
Laatst bewerkt:
Zoiets dan:

Code:
    Open "E:\" & naam.text & ".txt" For Input As #1
    TextBox1.Text = Input(LOF(1), #1)
    Close #1
 
En toen ben je natuurlijk aan het uitzoeken geslagen bij welk element van die regel er iets mis gaat en waarom

Code:
Open "E:\" & naam.text & ".txt" For Input As #1
   c4=Input(LOF(1), #1)
   Textbox1.Text="nieuwe tekst"
    TextBox1.Text = Input(LOF(1), #1)
Close #1
 
En toen ben je natuurlijk aan het uitzoeken geslagen bij welk element van die regel er iets mis gaat en waarom

Code:
Open "E:\" & naam.text & ".txt" For Input As #1
   c4=Input(LOF(1), #1)
   Textbox1.Text="nieuwe tekst"
    TextBox1.Text = Input(LOF(1), #1)
Close #1

snb, geloof me dat voordat ik een vraag stel ik meestal al uren heb besteed met het zoeken van een oplossing danwel in bestanden die ik eerder heb gemaakt, danwel op internet. Het probleem is dat ik zelfstudie doe vwb VBA en soms dingen gewoon niet snap, netzoals de code hierboven, waarvan ik de c4 en LOF niet snap. Zodra ik wat meer tijd en geld heb wil ik ook een begeleide cursus excel gaan doen. Tot die tijd moet ik het doen met veel proberen, zoeken testen en dit forum.

Goed dat gezegd hebbende, jouw code geeft hetzelfde probleem "Ongeldige bestandsmodus"

Nou weet ik dat mijn path namen bevat met spaties, maar volgesn wat ik heb gevonden op internet maakt dat bij absolute verwijzingen niet uit, het wegschrijven gaat dan ook prima.
 
Gebruik F8 (stapsgewijze uitvoering)
Ga met de cursor boven een variabele hangen (i.e. c4) kijk welke waarde wordt getoond.
Kijk ook in welke regel de fout optreedt.

PS. Mijn code was geen oplossingssuggestie, maar een oplossingsstrategiesuggestie. Daarbij is het juist de bedoeling dat de foutmelding blijft optreden.
 
Gebruik F8 (stapsgewijze uitvoering)
Ga met de cursor boven een variabele hangen (i.e. c4) kijk welke waarde wordt getoond.
Kijk ook in welke regel de fout optreedt.

PS. Mijn code was geen oplossingssuggestie, maar een oplossingsstrategiesuggestie. Daarbij is het juist de bedoeling dat de foutmelding blijft optreden.

snb, dat doe ik allemaal, en c4 = "" oftewl leeg, dat had ik al gedaan voor mijn vorige reply.
Inmiddels ook een bijdrage van jouw op office forum gelezen wat c4 inhoud, als ik het goed begrijp de eerste lege cel van een kolom.
en uiteraard ook LOF opgezocht in de VB help, dat geeft dus de groote in bytes van een bestand aan (wat ik daarmee moet snap ik dus niet, en de (1) is de integer voor bestandsnummer, wat ik daarvan begrijp is dat dat opzich elk nummer tussen 1 en 255 mag zijn.

Voor de rest snap ik je F8 suggestie wel, maar dan kom ik dus op de regel uit die ik hierboven omschrijf en dan dus niet weet wat ik er mee aan moet.
 
Nou, ik heb tot nu geprobeerd uit te pluizen wat er nou fout gaat met het inladen van het txt file in de textbox, I am out of Ideas.

EDIT: het is nu 5:42, voor vannacht geef ik het op. bijna 8 uur lopen zoeken naar de hints van snb maar ik vind ze niet.
 
Laatst bewerkt:
Revdutchie,

Dit is een klein stukje uit de help van Exel (in de VBA omgeving)

Voorbeeld van de functie LOF
Dit voorbeeld maakt gebruik van de functie LOF om de grootte van een geopend bestand te bepalen. Dit voorbeeld gaat ervan uit dat TESTBSTD een tekstbestand is met proefgegevens.
Code:
Dim FileLength
Open "TESTBSTD" For Input As #1    ' Open file.
FileLength = LOF(1)    ' Get length of file.
Close #1    ' Close file.
 
Code:
Open "E:\" & naam.text & ".txt" For Input As #1
   c4=Input(LOF(1), #1)
   Textbox1.Text="nieuwe tekst"
    TextBox1.Text = Input(LOF(1), #1)
Close #1

Als de variabele c4 leeg blijft ( "" ), betekent dat dat het bestand leeg is:
remedie: zet eerst gegevens in het bestand (met kladblok, met Wordpad of met Word (opslaan als Dos tekstbestand))

Als de regel Textbox1.Text="nieuwe tekst" een foutmelding geeft betekent dat, dat het object weliswaar de naam Textbox1 heeft, maar geen TextBox is. Remedie: controleer dat
Het kan ook zijn dat je de naam van het object verkeerd hebt geschreven.
Omdat ik niet weet van waaruit je de macro draait: als de textbox op blad 1 staat: Blad1.textBox1.Text, als de textbox in een userform staat Userform1.Textbox1.Text.
Is het wel een Textbox uit de werkset besturingselementen ?

Als de voorgaande regels goed lopen en de regel TextBox1.Text=Input(LOF(1),#1) geeft een foutmelding:
- controleer of je de code goed hebt overgenomen
 
Laatst bewerkt:
Code:
Open "E:\" & naam.text & ".txt" For Input As #1
   c4=Input(LOF(1), #1)
   Textbox1.Text="nieuwe tekst"
    TextBox1.Text = Input(LOF(1), #1)
Close #1

Als de variabele c4 leeg blijft ( "" ), betekent dat dat het bestand leeg is:
remedie: zet eerst gegevens in het bestand (met kladblok, met Wordpad of met Word (opslaan als Dos tekstbestand))

Als de regel Textbox1.Text="nieuwe tekst" een foutmelding geeft betekent dat, dat het object weliswaar de naam Textbox1 heeft, maar geen TextBox is. Remedie: controleer dat
Het kan ook zijn dat je de naam van het object verkeerd hebt geschreven.
Omdat ik niet weet van waaruit je de macro draait: als de textbox op blad 1 staat: Bald1.textBox1.Text, als de textbox in een userform staat Userform1.Textbox1.Text.
Is het wel een Textbox uit de werkset besturingselementen ?

Als de voorgaande regels goed lopen en de regel TextBox1.Text=Input(LOF(1),#1) geeft een foutmelding:
- controleer of de je code goed hebt overgenomen

En als het nou GEEN van bovenstaande is ?? de code stopt op het laatste en voor mij dus onbegrijpelijke stukje " Input(LOF(1), #1) "

ik heb nu dus


Code:
 [COLOR="Red"]Dit werkt[/COLOR]
Private Sub fileopslaan_Click()
Open "C:\Daelzicht\" & Naam.Text & "\algemene.txt" For Output As #1
    Print #1, TextAlgemene.Text
  Close #1
  TextAlgemene.Text = "nieuwe tekst" [COLOR="YellowGreen"]'test om schrijven naar textbox te checken, is OK[/COLOR]
End Sub

[COLOR="Red"]En dit werkt niet (knoppen staan in hetzelfde frame van hetzelfde userform)[/COLOR]
Private Sub fileopenen_Click()
Open "C:\Daelzicht\" & Naam.Text & "\algemene.txt" For Input As #1
   c4 = Input(LOF(1), #1)
      TextAlgemene.Text =[COLOR="Red"] Input(LOF(1), #1)[/COLOR]   <-- hier gaat het fout en krijg ik  "invoer na einde van bestand"
Close #1
End Sub
 
Laatst bewerkt:
OK,

Opgelost :D snb mijn hartelijke dank weer, en een heleboel geleerd dus.

Code:
 c4 = Input(LOF(1), #1)
     TextAlgemene.Text = c4
 
Is overbodig Jacques.

Code:
   c4=Input(LOF(1), #1)
   TextBox1.Text = Input(LOF(1), #1)

Gaat altijd fout, omdat slechts 1 keer gegevens uit het bestand gelezen kunnen worden.
Dit kan daarom wel:

Code:
Open "E:\" & naam.text & ".txt" For Input As #1
    TextBox1.Text = Input(LOF(1), #1)
Close #1

PS. Heb ik zonder Forum moeten leren (kostte nog iets meer tijd dan het jou nu kost)

@Rudi
Dank voor de 'over de schouder' blik
 
Laatst bewerkt:
Is overbodig Jacques.

Code:
   c4=Input(LOF(1), #1)
   TextBox1.Text = Input(LOF(1), #1)

Gaat altijd fout, omdat slechts 1 keer gegevens uit het bestand gelezen kunnen worden.
Dit kan daarom wel:

Code:
Open "E:\" & naam.text & ".txt" For Input As #1
    TextBox1.Text = Input(LOF(1), #1)
Close #1

PS. Heb ik zonder Forum moeten leren (kostte nog iets meer tijd dan het jou nu kost)

@Rudi
Dank voor de 'over de schouder' blik

Ok, ik heb nog wel wat aanvullende vragen denk ik, maar ga eerst kijken of ik die zelf kan uitvogelen zoniet zal er vanavond rond 10 uur wel weer een vraag staan van mij :D

En ja @Rudi, jij natuurlijk ook weer bedankt.
 
En dan kijken we nu even terug naar post # 4 in deze topic... :eek:
 
En dan kijken we nu even terug naar post # 4 in deze topic... :eek:


Ohhhh sorry, het beste paard van stal vergeten, duizend maal excuses Wigi !:o:o

ok en Hoornvan ook bedankt, alhoewel verwijzen naar de hulp van excel bij mij niet echt nodig is, dat is de meest versleten knop op mijn keyboard :D

Kortom allemaal bedankt
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan