Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1164to1168
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

Textdatei auslesen, hochzählen mit Absätze

Textdatei auslesen, hochzählen mit Absätze
urmila
Hallo zusammen,
ich bin auf der Suche nach einer komplexeren Auslesen von Textdatei mit Hochzählfunktion.
Und zwar, habe ich eine txt Datei "C:\Test\Zaehler.txt"
Im Excel Sheet habe ich mehrere Optionsfelder, die mit der Zelle A7 verknüpft ist (geben folgende Werte aus: Auto, Garten, Büro, Sonstiges...)
Die Textdatei ist so aufgelistet:
Auto
253
Garten
114
Büro
256
usw.
Nun will ich die Nummer zur ausgewählten Kriterium auslesen, d.h. wähle ich Auto aus, soll er mir gleich die aktuelle Nummer in der Zelle C1 eintragen (gedacht ist sowas wie ein Formular) Gleichzeitig soll er dann (beim Beenden am Besten) die betroffene Zahl um 1 erhöhen, also aus 253 wird 254 (imn txt Datei)
Ich hoffe es ist möglich und ihr könnt mir weiterhelfen.
Danke und LG
Urmila

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

Betreff
Benutzer
Anzeige
GetPrivateProfileString, WritePrivateProfileString
01.07.2010 10:08:48
Tino
Hallo,
ich könnte mir gut vorstellen dies mit einer ini Datei zu machen.
Schau mal hier.
http://www.vbarchiv.net/api/api_getprivateprofilestring.html
Damit wäre es sehr einfach die entsprechende Sektion und das entsprechende Fach auszulesen.
Die Ini wäre danach in etwa so aufgebaut.
[Auto]
VW=2
Opel=5
[Obst]
Birne=4
Apfel=8
Dies kann man sehr einfach lesen und schreiben.
Gruß Tino
AW: GetPrivateProfileString, WritePrivateProfileString
01.07.2010 11:24:40
urmila
Hallo Tino
danke für den Linlk, doch leider kann ich damit GAAAAARNIX anfangen.........ich wüsste nicht mal wie ich das aufstellen soll bzw wo ich anfangen soll...da ich bisher noch nie mit sowas gearbeitet habe....
Könntest du mir da vll weiterhelfen....?
Danke und LG
Urmila
Anzeige
AW: Textdatei auslesen, hochzählen mit Absätze
01.07.2010 12:03:32
Rudi
Hallo,
test mal:
Sub GetZaehler(sSuch As String)
Dim sText, i
Const sDatei As String = "c:\test\zaehler.txt"
Open sDatei For Input As #1
sText = Split(Input(LOF(1), 1), vbCrLf)
Close #1
i = Application.Match(sSuch, sText, 0)
If Not IsError(i) Then
Range("C1") = sText(i)
sText(i) = sText(i) + 1
Open sDatei For Output As #1
Print #1, Join(sText, vbCrLf)
Close #1
Exit Sub
End If
Range("C1") = "#NV"
End Sub

Sub Zaehler()
GetZaehler Range("A7")
End Sub

Gruß
Rudi
Anzeige
AW:
01.07.2010 12:33:43
urmila
Hallo Rudi, Tino
habe eben beides ausversucht und klappt einfach suuuuuuuuuper......
vielen lieben dank und sommerliche grüße
Urmila
AW: brauche da noch was
01.07.2010 14:46:14
urmila
Hallo Rudi,
ich verwende im Moment den Code den du gepostet hast. Nun wollte ich bisschen erweitern und folgendes einbinnden, was ich nicht hinkriege.
Ich würde gerne den Code einen Button zuweisen. Es soll zunächst die Nummer eintragen und _ gleichzeitig das Dialog

Application.Dialogs(xlDialogSaveAs).Show
erscheinen, vorgegeben Speichername soll die neue vergebene Nummer sein. Klickt man auf Speichern, speichert es mit der vergebenen Nummer ab und erhöht die Nummer in der txt-File, sollte man abbrechen oder auf (oben rechts) "X" drücken, soll es nichts machen, Nummer kann er Ruhig anzeigen, jedoch sol txt-File nicht mit erhöhtem Nummer abspeichern.
Ist das möglich?
Danke und LG
Urmila
Anzeige
AW: brauche da noch was
02.07.2010 10:10:51
fcs
Hallo Urmila,
hier die erforderlichen Anpassungen (Pfad, Name der Textdatei ggf. anpassen).
Verwende eine Schaltfläche aus der Formular-Symbolleiste. Dieser weist du dann das Makro "Speichern_mit_Zaehler" zu.
Gruß
Franz
Sub GetZaehler(sSuch As String)
'Zählernummer aus Textdatei holen und Speichern-Unter-Dialog anzeigen
Dim sText, i, Aktion
Const sDatei As String = "c:\lokale daten\test\zaehler.txt" '"c:\test\zaehler.txt"
Open sDatei For Input As #1
sText = Split(Input(LOF(1), 1), vbCrLf)
Close #1
i = Application.Match(sSuch, sText, 0)
If Not IsError(i) Then
Range("C1") = sText(i)
If IsNumeric(sText(i)) Then
Aktion = Application.Dialogs(xlDialogSaveAs).Show(arg1:=Format(CLng(sText(i)), "0000"))
' oder ohne führende Nullen
'      Aktion = Application.Dialogs(xlDialogSaveAs).Show(arg1:=sText(i))
If Aktion = False Then
'do nothing
Else
'nächst höhere Nr. in Textfile speichern
sText(i) = sText(i) + 1
Open sDatei For Output As #1
Print #1, Join(sText, vbCrLf)
Close #1
End If
Else
MsgBox "Der für """ & sSuch & """ gefundene Zählerwert ist nicht numerisch" & vbNewLine  _
_
& "Bitte Inhalt von Datei """ & sDatei & """ prüfen!"
End If
Else
Range("C1") = "#NV"
End If
End Sub
Sub Speichern_mit_Zaehler()
GetZaehler Range("A7")
End Sub

Anzeige
Danke dir Franz :)
02.07.2010 10:25:49
urmila
LG
Urmila

336 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige