Helpdesk
Menschen Wissenschaft Politik Mystery Kriminalfälle Spiritualität Verschwörungen Technologie Ufologie Natur Umfragen Unterhaltung
weitere Rubriken
PhilosophieTräumeOrteEsoterikLiteraturAstronomieHelpdeskGruppenGamingFilmeMusikClashVerbesserungenAllmysteryEnglish
Diskussions-Übersichten
BesuchtTeilgenommenAlleNeueGeschlossenLesenswertSchlüsselwörter
Schiebe oft benutzte Tabs in die Navigationsleiste (zurücksetzen).

Excel - SVERWEIS

123 Beiträge ▪ Schlüsselwörter: Matrix, Wert, Excel ▪ Abonnieren: Feed E-Mail

Excel - SVERWEIS

17.08.2012 um 11:49
der hat problem mit meinem
If Left(strZeile, 35) = " Verzeichnis von \\***************\" Then
:O

Anzeige
melden

Excel - SVERWEIS

17.08.2012 um 11:52
Ist eigentlich richtig. Gibt es dazu noch das End If?


melden

Excel - SVERWEIS

17.08.2012 um 11:53
klar, ich hab alles eingerückt, um es übersichtlicher zu machen
das sollte doch kein problem sein?


melden

Excel - SVERWEIS

17.08.2012 um 11:55
Ist richtig - einrücken sollte man das sogar.

Da muss vorher irgendwas sein. Guck mal, was in strZeile steckt, indem Du den Mauszeiger über das Wort strZeile hältst (nach dem Klick auf "Debuggen").


melden

Excel - SVERWEIS

17.08.2012 um 11:59
er sagt
strZeile = " Datentr,,ger in \\*************\d$: ist Drive_D"


melden

Excel - SVERWEIS

17.08.2012 um 12:07
Hm, das müsste auch durchlaufen.

Da müssen wir mal tricksen.

Setze mal vor das End Sub folgende Zeilen:

FEHLER:
msgbox err.description

Und vor die Zeile If Left(strZeile, 35) = " Verzeichnis von \\***************\" Then

on error goto fehler

Dann müsste eine Meldung gebracht wreden. Wie lautet die?


melden

Excel - SVERWEIS

17.08.2012 um 12:10
Mehrfachdeklaration im aktuellen Gültigkeitsbereich
(vor dem End sub)


melden

Excel - SVERWEIS

17.08.2012 um 12:17
Dann guck mal, ob irgendwas mit

Dim …

doppelt ist, also eine Variable hinter Dims mehrfach vorkommt.

Bin erstmal weg …


melden

Excel - SVERWEIS

17.08.2012 um 12:32
nee die dims sind alle normal
hat er ein problem mit meinem angegebenen verzeichnis?


melden

Excel - SVERWEIS

17.08.2012 um 12:41
kann es sein dass etwas damit
lngz = lngz + 1
nicht stimmt?
die variable wurde vorher gar nicht bekannt gemacht?


melden

Excel - SVERWEIS

17.08.2012 um 12:43
ok, spukt trotzdem fehler aus


melden

Excel - SVERWEIS

17.08.2012 um 13:02
Hm, ich schätze, da wirst Du mal den kompletten Code posten müssen. Allerdings bin ich nur noch kurz da und später gar nicht mehr …


melden

Excel - SVERWEIS

17.08.2012 um 13:11
Sub Dateiauslesen() Dim lngDateiNummer As Long, lngZ As Long Dim strZeile As String, strPfad As String strPfad = "Pfad" If Dir(strPfad) "" Then lngDateiNummer = FreeFile Open strPfad For Input As #lngDateiNummer Do While Not EOF(lngDateiNummer) Line Input #lngDateiNummer, strZeile If strZeile "" Then FEHLER: MsgBox Err.Description If Left(strZeile, 35) = " Verzeichnis von \\******\" Then lngZ = lngZ + 1 Cells(lngZ, ints) = strZeile End If End If Loop Close #lngDateiNummer End If FEHLER: MsgBox Err.Description End Sub


melden

Excel - SVERWEIS

17.08.2012 um 13:21
OK, erstmal die oberen beiden Zeilen

FEHLER:
MsgBox Err.Description

rausnehmen, das darf nur einmal unten stehen. Dafür muss dort rein:

on error goto fehler

Und dann muss die Spalte noch angegeben werden, zum Beispiel gleich nach den Dims

intS = 1


melden

Excel - SVERWEIS

17.08.2012 um 13:38
Muss ich intS dann auch mit Dim und so?

kann es sein, dass es bei der größe der .txt dann ewig dauert?


1x zitiertmelden

Excel - SVERWEIS

17.08.2012 um 13:40
eben ist mir dabei der rechner gestorben, ich glaube, wenn ich das nochmal mache ist er wieder tot :D


melden

Excel - SVERWEIS

17.08.2012 um 13:40
@yaacool
Zitat von yaacoolyaacool schrieb:Muss ich intS dann auch mit Dim und so?
Müssen nicht und in diesem Fall ist es auch nicht so wichtig. Es reserviert nur Speicher für eine Variable, was aber hier nicht notwendig ist.
Zitat von yaacoolyaacool schrieb:kann es sein, dass es bei der größe der .txt dann ewig dauert?
Beitrag von A38O (Seite 3) ;)
Zitat von A38OA38O schrieb:Auf jeden Fall musst Du darauf vorbereitet sein, dass die Verarbeitung der Textdatei eine Weile dauern kann.
Ja, das kann ewig dauern.


melden

Excel - SVERWEIS

17.08.2012 um 13:40
ja, gut, wenn ich dann nebenbei noch was anderes machen könnte wär das wohl nicht so schlimm


melden

Excel - SVERWEIS

17.08.2012 um 13:46
Probiere das mal:

Sub Dateiauslesen() Dim lngDateiNummer As Long, lngZ As Long Dim strZeile As String, strPfad As String dim datBeginn as date, datEnde as date datbeginn = now strPfad = "Pfad" If Dir(strPfad) "" Then lngDateiNummer = FreeFile Open strPfad For Input As #lngDateiNummer Do While Not EOF(lngDateiNummer) Line Input #lngDateiNummer, strZeile If strZeile "" Then If Left(strZeile, 35) = " Verzeichnis von \\******\" Then lngZ = lngZ + 1 'Cells(lngZ, ints) = strZeile End If End If Loop Close #lngDateiNummer End If datende = now msgbox format(datende - datbeginn, "hh:nn:ss") exit sub FEHLER: MsgBox Err.Description End Sub

Die Zeile mit der Ausgabe ist auskommentiert, es wird also nur die Textdatei durchlaufen. Am Ende kommt eine Meldung mit der Dauer.

Wenn es so schneller geht, kann man die Bildschirmaktualisierung mit

application.screenupdating = false

ausschalten (am Anfang der Routine) und mit

application.screenupdating = true

wieder einschalten. Das spart ggf. mächtig Zeit. Wenn man aber vegisst, es wieder einzuschalten, kann man ein Problem haben. :D


melden

Excel - SVERWEIS

17.08.2012 um 13:48
00:00:20
:)


Anzeige

melden