exzivi
Goto Top

Excel Datei durchsuchen

Guten Morgen zusammen,

ich hab ein kleines Proble mit Excel und VBS. Ich versuche eine Excel Datei nach einem Benutzernamen zu durchsuchen, dann soll er mir, wenn er diesen gefunden hat, in der gleichen Zeile, in der zweiten Spalten den passenden Eintrag in eine Variable schreiben. Leider klappts nicht, er wirft mir immer nur den Wert in der falschen Zeile aus. Eine Idee? Danke Euch schon mal...Hier ist mein Code:

Set objExcel = CreateObject("Excel.Application")
Set objWorkbook = objExcel.Workbooks.Open(filename)
Username = "ExZivi"
intRow = 2
objExcel.Cells(intRow,1).Value = "&username&"
Wscript.Echo "Zertifikat: " & objExcel.Cells(intRow, 2).Value
intRow = intRow + 1
objWorkbook.Close False
objExcel.Quit

Content-Key: 82684

Url: https://administrator.de/contentid/82684

Printed on: April 24, 2024 at 11:04 o'clock

Member: bastla
bastla Mar 10, 2008 at 10:48:09 (UTC)
Goto Top
Hallo exzivi und willkommen im Forum!

Das müsste eher so aussehen:
Set objExcel = CreateObject("Excel.Application")  
Set objWorkbook = objExcel.Workbooks.Open(filename)
Username = "ExZivi"  
intRow = 2
For i = intRow To 65536
    If LCase(objExcel.Cells(i,1).Value) = LCase(Username) Then
        WScript.Echo "Zertifikat: " & objExcel.Cells(i, 2).Value  
        Exit For
    End If
Next
objWorkbook.Close False
objExcel.Quit

Durch die "For"-Schleife (oder ein alternatives Konstrukt mit "Loop") erreichst Du, dass nur bis maximal Zeile 65536 gesucht wird.

"LCase()" sorgt dafür, dass die Groß-/Kleinschreibung beim Vergleich der Benutzernamen keine Rolle spielt.

"Exit For" bewirkt schließlich, dass die Schleife sofort verlassen wird, nachdem der Benutzername gefunden werden konnte.

Grüße
bastla

[Edit] Schleifenvariable i an den nötigen Stellen eingesetzt. [/Edit]
Member: exzivi
exzivi Mar 10, 2008 at 11:06:06 (UTC)
Goto Top
Hallo Bastla!
Super heißen Dank für Deine Antwort
und danke für die Willkommens-Grüße.

Nur leider funktioniert es nicht ganz,
er startet zwar Excel, zu sehen im Taskmanager,
es wird nur kein Wert ausgegeben, obwohl der
Username in der Excel Tabelle vorhanden ist.
Es tut sich sozusagen gar nichts... ich verzweifel
noch... ahh... hilfe face-wink

Funktioniert es bei Dir?

Viele Grüße der "Neue" face-wink
Member: misterdemeanor
misterdemeanor Mar 10, 2008 at 11:56:03 (UTC)
Goto Top
Hallo ExZivi,

auch ein Willkommen von mir face-smile

Was bastla geschrieben hat:

WScript.Echo "Zertifikat: " & objExcel.Cells(intRow, 2).Value

Also innerhalb des If´s in der For-Schleife. Das intRow müsste dann durch i ersetzt werden.
Was, wie ich gerade sehe, natürlich auch in der If Bedingung ausgetauscht werden müsste face-smile

BG, Felix -misterdemeanor-
Member: bastla
bastla Mar 10, 2008 at 12:07:02 (UTC)
Goto Top
@exzivi
Sorry - trotz einer Menge Text war's leider gerade so zwischen Tür und Angel (noch nicht einmal "ungetestet" habe ich dazugeschrieben, fällt mir gerade auf *kopfschüttel*) - ich korrigiere das dann mal besser da oben ...

@misterdemeanor
Danke für's Aufräumen. face-smile

Grüße
bastla
Member: exzivi
exzivi Mar 10, 2008 at 14:08:19 (UTC)
Goto Top
Mensch Jungs ihr seit einfach spitzen klasse. Ihr habt mir den Tag
gerettet! :o) Das war das letzte Puzzelteil für mein VBS Script! Vielen
Dank noch mal für Eure geniale Hilfe.

Wünsche Euch eine fantastische Woche.

Viele Grüße,
der ExZivi