Excel Datei per VB-Code auslesen

Hallo,
ich will mit vb6 eine Excel Datei auslesen. Das habe ich auch schon hinbekommen. Ich kann eine bestimmte Zelle auslesen.
Nun will ich aber einen bestimmten Bereich auslesen. Z.B von A1 bis B6. Ist das irgendwie möglich, oder muss ich alle Felder in einer Schleife durchgehen?

Danke für jede Info
Gruß
Thomas

Mein bisheriger Code:
Private Sub cmdExcel3_Click()
'Excel-Objekt erzeugen
Dim Excel As Object
Dim Datei As String

Datei = App.Path & „\Test.xls“
Set Excel = CreateObject(„Excel.Application“)

'Sichtbar machen
Excel.Visible = True
Excel.Visible = False

'Datei öffnen (Namen anpassen)
Excel.Workbooks.Open Datei

'Zelle A1 abfragen
txtExcel3.Text = Excel.Range(„A1“).Value

'Excel-Objekt zerstören
Set Excel = Nothing

End Sub

Hallo,
ich will mit vb6 eine Excel Datei auslesen. Das habe ich auch
schon hinbekommen. Ich kann eine bestimmte Zelle auslesen.
Nun will ich aber einen bestimmten Bereich auslesen. Z.B von
A1 bis B6. Ist das irgendwie möglich, oder muss ich alle
Felder in einer Schleife durchgehen?

Danke für jede Info
Gruß
Thomas

Ja, du musst das mit einer Schleife machen.
Verwende aber statt

txtExcel3.Text = Excel.Range(„A1“).Value

lieber

txtExcel3.Text = Excel.Cells(1, 1).Value

damit geht eine Schleife leichter.

Der Doc!

Hallo,
danke für den Tip,
kannst du mir jetzt noch sagen, woher ich weiss wie ich meine Schleife bauen muss, wenn der Anwender in einer Auswahlmaske einstellen kann, dass er von B3 bis E7 die Inhlte von Excel haben will?

Gruß
Thomas

Ja, du musst das mit einer Schleife machen.
Verwende aber statt

txtExcel3.Text = Excel.Range(„A1“).Value

lieber

txtExcel3.Text = Excel.Cells(1, 1).Value

damit geht eine Schleife leichter.

Der Doc!

Hallo,
danke für den Tip,
kannst du mir jetzt noch sagen, woher ich weiss wie ich meine
Schleife bauen muss, wenn der Anwender in einer Auswahlmaske
einstellen kann, dass er von B3 bis E7 die Inhlte von Excel
haben will?

Einfach zwei Schleifen bauen: Eine äüßere für die Spalte, eine innere für die Zeile. Also ungefär so (Spalte B bis E, bereits in Zahlen umgewandelt; Zeile 3 bis 7):

For Spalte = 2 To 5
For Zeile = 3 To 7
txtExcel3.Text = Excel.Cells( Zeile, Spalte).Value
'Hier kommt noch rein, was sonst noch passieren soll

Next Zeile
Next Spalte

Der Doc!

Hallo,

Einfach zwei Schleifen bauen: Eine äüßere für die Spalte, eine
innere für die Zeile. Also ungefär so (Spalte B bis E, bereits
in Zahlen umgewandelt; Zeile 3 bis 7):

genau das ist mein Problem, wie wandle ich die Spalten B bis E in Zahlen um???
Die Schleifen selbst, sind mir klar!
danke.

Gruß
Thomas

hallo,

zur not bastelst du dir eine funktion die das macht…

public function CharWandeln(buchstabe as string) as long

if buchstabe=a then
CharWandeln = 1
end if

usw…

end function

oder hat jemand ne pfiffigere idee hierfür?

gruß

rasta

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Pfiffigere Idee

public function CharWandeln(buchstabe as string) as long
 CharWandeln = asc(ucase(buchstabe)) - 64
end function

(Nicht getestet!)

Erklärung:
Der übergebene Buchstabe wird in einen Großbuchstaben umgewandelt (Funktion ucase).
Die Großbuchstaben haben die ASCII-Codes 65 (A) bis 90 (Z) (Funktion asc).
Es muss also nur noch die Konstante 64 von diesem Wert abgezogen werden, um einen Wert zwischen 1 und 26 für den entsprechenden Buchstaben zu bekommen.

MfG
Roland

Pfiffigere Idee getestet --> GUT! :wink:
also zumindest bei zellen von A-Z funktionierts.-…

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Wenn du mehr Spalten brauchst, lass doch Excel die Umwandlung vornehmen:

Range(„AZ1“).Column

liefert dir z.B. 52 welches die Spaltennummer darstellen sollte. Also nimm doch einfach den Buchstaben, hänge eine 1 für die erste Zeile an und versuche es mit der Column-Eigenschaft des Range-Objektes.