Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
432to436
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
432to436
432to436
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Zu importierende Zeilen zählen

Zu importierende Zeilen zählen
24.05.2004 13:46:57
Karin
Hallo zusammen
Ich hoffe das mir jemand helfen kann:
Bevor ein .txt File ins Excel geladen wird sollte die Anzahl der Zeilen ermittelt werden. Wenn es 100 Zeilen sind wird das .txt File geladen. Wenn es aber 105 Zeilen wären müsste im Excel bei Zeile 50 erst noch 5 Zeilen eingefügt werden, und erst dann wird das .txt File geladen.
Möglich? Wenn ja, wie?
Danke und Gruss
Karin

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zu importierende Zeilen zählen
24.05.2004 14:01:17
Oberschlumpf
Hi Karin
Versuch es mal so:

Sub txtImport()
Dim lstrInhalt As String, liZeile As Integer
Open "pfad\deinedatei.txt" For Input As #1
Do While Not Eof(1)
Line Input #1, lstrInhalt
liZeile = lizZeile + 1
Loop
Close
If liZeile >= 100 then
'hier Dein Import-Code - kannst Du mit dem Makro-Recorder aufzeichen, wenn och nicht geschehen
End If
If liZeile >= 105 Then
Rows("51:55").Select
Selection.Insert Shift:=xlDown
'und hier wieder Dein Import-Code
End If
End Sub

Konnte ich helfen?
Ciao
Thorsten
winzige Änderung
24.05.2004 14:11:23
Reinhard
Hi Thorsten,
bei 105 werden beide Ifs ausgeführt, also nicht
If liZeile >=100 sondern
If liZeile <=100 benutzen,
wobei dann das Schicksal von 101,102,103,104 noch zu klären wäre:-)
Btw, ich lese in letzter Zeit häufig diese Variable "liZeile", für was steht denn das "li"?
Danke
Reinhard
Anzeige
AW: winzige Änderung
24.05.2004 14:33:01
Oberschlumpf
upps..
Hallo Reinhard
Vielen Dank für die Korrektur. Du hast Recht. Mit meinem (nicht getesteten) Code werden beide IFs durchgeführt.
Deine Frage:
Ich verwende gern Kürzel in den Var-Namen, damit ich sofort weiß, um welchen Var-Typ es sich handelt, und ob es eine globale oder lokale Variable ist.
ein paar Bsp
Dim liZeile As Integer
Dim ldbBetrag As Double
Public pstrDateiName
usw...
l steht für lokal und p für public
i steht für Integer
db steht für Double
str steht für String
usw...
und alles, was nach diesen Kürzeln steht, ist nur ein für sich sprechender Name, damit ich auch weiß, um was für einen Wert es sich in der jeweiligen Variable handelt (Herkunft/Verwendung)
Ist Deine Frage beantwortet?
Ciao
Thorsten
Anzeige
OT AW: winzige Änderung
24.05.2004 14:42:51
Reinhard
Hallo Thorsten,
danke für die ausführliche Antwort, muss mir irgendwann auch konsequent sprechende Variablen angewöhnen und auch option explizit benutzen usw.ich sehe da schon die Vorteile:-)
Gruß
Reinhard
OT AW: winzige Änderung
24.05.2004 14:54:47
Oberschlumpf
Hallo Reinhard
grins...das mit dem "Angewöhnen" habe auch ICH erst lernen müssen ;-)
Und rate mal, von wem???
Sehr oft habe ich in diesem Forum von Hans W. Herber in diversen Threads gelesen, dass doch bitte vor Verwendung von Variablen diese auch deklariert sein sollen :-)
Na ja, eigentlich arbeitete ich immer OHNE Dim, Public, Def usw :)
Aber ich hab mir dann doch von H.W.H ins Gewissen "reden" lassen, und nun kommt mir jeder Code "komisch" vor, wo Variablen OHNE Deklaration verwendet werden.
So kanns kommen..grins
Ciao
Thorsten
Anzeige
Na, da hab ich ja noch was vor mir *grusel*:-))owT
24.05.2004 15:04:10
Reinhard
.
AW: Zu importierende Zeilen zählen
24.05.2004 16:24:38
Karin
Hallo Thorsten und Reinhard
Vielen Dank für euren Einsatz.
Habe es ausprobiert und würde eigentlich gehen, das Problem ist nur das ich keinen Pfad angeben möchte, da das .txt File immer wieder in einem anderen Ordner zu finden ist.
Auch soll es in eine schon bestehende Tabelle (mit einigen Formeln) geladen werden.
Danke und Gruss
Karin
AW: Zu importierende Zeilen zählen
24.05.2004 19:02:37
Oberschlumpf
Hi Karin
Damit Du keine feste Pfadangabe verwenden musst, tausche in dem schon bestehenden Code diese 2 Zeilen

Dim lstrInhalt As String, liZeile As Integer
Open "pfad\deinedatei.txt" For Input As #1

gegen diese 4 Zeilen aus:

Dim lDatName, lstrInhalt As String, liZeile As Integer
lDatName = Application.GetOpenFilename("Textdateien (*.txt), *.txt", , "txt-Datei für Import auswählen")
If lDatName = False Then Exit Sub
Open lDatName For Input As #1

Jetzt öffnet sich beim Start dieses Makros zuerst der Datei-Öffnen-Dialog, in dem Du eigentlich aus jedem Verzeichnis die gewünschte txt-Datei auswählen kannst.
So entfällt dann die Vorgabe eines Pfades.
Nachdem eine Datei ausgewählt wurde, wird der Code normal weiter abgearbeitet.
Was allerdings Deine 2. Frage betrifft, kann ich Dir leider nicht weiterhelfen.
Ich kenne wohl das Problem, dass beim Einfügen neuer Zeilen in ein Tabellenblatt schon vorhandene Formeln nicht angepasst werden. Aber ein VBA-Code, der dagegen "steuert", ist mir so auf die Schnelle nicht bekannt.
Vielleicht ist es hilfreich, wenn Du eine Bsp-Datei mit allen notwendigen Erklärungen auf den Server speicherst.
Ich hoffe aber, dass ich zumindest schon mal Deine 1. Frage beantworten konnte.
Ciao
Thorsten
Anzeige
AW: Zu importierende Zeilen zählen
25.05.2004 09:52:52
Karin
Hallo Thorsten
Besten Dank für deine Hilfe, ein kleines Problem besteht jedoch noch:
Die von dir angegebene Schlaufe liefert mir unabhängig der zu importierenden Zeilen immer den Wert 1 für liZeile.
Ich habe zwei Beispiel Dateien auf dem Server gespeichert, einmal die Excel Datei in die das .txt File geladen werden soll, und einmal das .txt File.
https://www.herber.de/bbs/user/6713.xls

Die Datei https://www.herber.de/bbs/user/6714.txt wurde aus Datenschutzgründen gelöscht

Das Ziel ist es das in Spalte B der Inhalt des .txt steht. Ich konnte meine 2. Frage lösen und habe dies im Code auch so eingebaut.
Gruss
Karin
Anzeige
AW: Zu importierende Zeilen zählen
25.05.2004 10:14:08
Reinhard
Hi Karin,
wenn möglich kopier dir Code und nicht per Hand, oder noch besser, mach ein Häkchen im VB-Editor unter extras--Optionen Variablendeklaration erforderlich, dann erscheint immer ein Option Explizit und es wäre eine fehlermeldung gekommen bei:
liZeile = lizZeile + 1
und du hättest das überzählige z sofort gesehen.
Gruß
Reinhard
AW: Zu importierende Zeilen zählen
25.05.2004 10:24:58
Reinhard
Hallo Karin,
ich bekam dann noch 2mal fehlermeldungen und musste folgendes abändern
.TextFilePlatform = xlMSDOS
und musste
'.TextFileTrailingMinusNumbers = True auf Remark setzen, wollte mein xl2000 wohl nicht
danach lief das Makro durch.
Allerdings habe ich nicht geprüft ob es auch das tut wie verlangt.
Deshalb die Frage wieder auf offen gesetzt.
Gruß
Reinhard
Anzeige
AW: Es klappt! :-)
25.05.2004 11:48:31
Karin
Vielen Dank für eure Hilfe!
Gruss
Karin

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige