Menschen Wissenschaft Politik Mystery Kriminalfälle Spiritualität Verschwörungen Technologie Ufologie Natur Umfragen Unterhaltung

Excel - SVERWEIS

123 Beiträge, Schlüsselwörter: Matrix, Wert, Excel, Zellen, Sverweis

Excel - SVERWEIS

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


melden
Anzeige

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?


melden

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
YaaCool 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.
YaaCool schrieb:kann es sein, dass es bei der größe der .txt dann ewig dauert?
Beitrag von A38O, Seite 3 ;)
A38O 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
Anzeige

Excel - SVERWEIS

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


melden
273 Mitglieder anwesend
Konto erstellen
Allmystery Newsletter
Alle zwei Wochen
die beliebtesten
Diskussionen per E-Mail.

Themenverwandt
Frage Elektrotechnik70 Beiträge