Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Mit VB6 in Excel lesen und schreiben

Forumthread: Mit VB6 in Excel lesen und schreiben

Mit VB6 in Excel lesen und schreiben
25.08.2002 07:54:58
Gerd
Ich Grüße alle im Forum
Habe mehrere Probleme.
Kann mir irgendjemand helfen ich komme nicht weiter.
Möchte in einer zweiten ListBox das Datum einlesen von B4-B35
und beim Clickereignis in einem Textfeld übergeben.
Wobei der Cursor in die Zeile ( Zelle C ) des jeweiligen Datums springt.
Genauso ist es beim wechseln der Sheets.
Das einlesen der Sheets habe ich geschafft.
Nur den Wechsel nicht.

Option Explicit
Dim Excel As Object
Dim LFlag As Boolean

Private Sub Form_Load()
Set Excel = CreateObject("Excel.Application")
Excel.Visible = False

End Sub

Private Sub mnuFileOpen_Click()
CommonDialog1.Filter = ("Excel-Datei (*.xls)|*.xls;")
CommonDialog1.InitDir = App.Path
CommonDialog1.ShowOpen

If CommonDialog1.FileName <> "" Then
Excel.Workbooks.Open CommonDialog1.FileName
LFlag = True
Call Command2_Click
End If
End Sub

Private Sub Command2_Click()
If Not LFlag Then Exit Sub
Dim X
List1.Clear
For X = 1 To Excel.Sheets.Count
List1.AddItem (Excel.Sheets(X).Name)
Next X

Text1.Text = Excel.Range("C4").Value
`Eine einzelne Zelle OK aber C4-C35 ?
Text1 = Format(Text1, "hh:nn")
End Sub

Private Sub Command3_Click()
If Not LFlag Then Exit Sub

Excel.Range("C4").Value = Text1.Text
`Eine einzelne Zelle OK aber C4-C35 ?
Text1 = Format(Text1, "hh:nn")
End Sub

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
If LFlag Then
Call Command3_Click
Excel.ActiveWorkbook.Close SAVECHANGES:=LFlag
End If

Excel.Quit
Set Excel = Nothing
End Sub

Private Sub List1_Click() `Wechsel der Sheets ?
Dim X As Integer
For X = 0 To List1.ListCount - 1

If List1.Selected(X) = True Then
If Text10.Text = "" Then
Text10.Text = List1.List(X)
Else
Text10.Text = List1.List(X)
End If
End If
Next
End Sub

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Mit VB6 in Excel lesen und schreiben
25.08.2002 13:08:44
L.Vira
So ganz sehe ich nicht durch, was passiert denn nach einem Wechsel des Sheets? Na ja, ich hab dir mal die Listbox mit dem datum und den Sheetwechsel reingebastelt, kannst dich ja ggf. nochmal melden.

Option Explicit
Dim Excel As Object
Dim LFlag As Boolean
Private Sub Form_Load()
Set Excel = CreateObject("Excel.Application")
Excel.Visible = True
End Sub
Private Sub Command1_Click()
CommonDialog1.Filter = ("Excel-Datei (*.xls)|*.xls;")
CommonDialog1.InitDir = App.Path
CommonDialog1.ShowOpen

If CommonDialog1.FileName <> "" Then
Excel.Workbooks.Open CommonDialog1.FileName
LFlag = True
Call Command2_Click
End If
End Sub

Private Sub Command2_Click()
If Not LFlag Then Exit Sub
Dim X
List1.Clear
For X = 1 To Excel.sheets.Count
List1.AddItem (Excel.sheets(X).Name)
Next X

List2.Clear
For X = 4 To 35
List2.AddItem (Excel.sheets(1).cells(X, 2))
Next

Text1.Text = Excel.Range("C4").Value
'Eine einzelne Zelle OK aber C4-C35 ?
Text1 = Format(Text1, "hh:nn")
End Sub
Private Sub Command3_Click()
If Not LFlag Then Exit Sub

Excel.Range("C4").Value = Text1.Text
'Eine einzelne Zelle OK aber C4-C35 ?
Text1 = Format(Text1, "hh:nn")
End Sub
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)

If LFlag Then
Call Command3_Click
Excel.ActiveWorkbook.Close SAVECHANGES:=LFlag
End If
Excel.Quit
Set Excel = Nothing

End Sub
Private Sub List1_Click()
'Dim X As Integer
'For X = 0 To List1.ListCount - 1

'If List1.Selected(X) = True Then
' If Text10.Text = "" Then
' Text10.Text = List1.List(X)
' Else
' Text10.Text = List1.List(X)
' End If
'End If
'Next
If List1.ListIndex > -1 Then
Text10.Text = List1.Text
Excel.sheets(List1.Text).Select
End If

End Sub
Private Sub List2_Click()
Dim Li%
Li = List2.ListIndex + 4
Text2.Text = List2.Text
Excel.sheets(1).cells(Li, 3).Select
End Sub

Anzeige
Re: Mit VB6 in Excel lesen und schreiben
25.08.2002 15:00:28
Gerd
Danke für die Hilfe ich werde es gleich ausprobieren.
Gerd
Re: Mit VB6 in Excel lesen und schreiben
25.08.2002 23:00:56
Nepumuk
Hallo Gerd
wíe L.Vira schon schrieb, dein Programm ist, wenn man nicht weiß was es eigentlich ausführen soll, etwas unverständlich.

z.B.
Text1.Text = Excel.Range("C4").Value
`Eine einzelne Zelle OK aber C4-C35 ? ????????

Willst du die Zellen C4-C35 in eine Multiline-Textbox einlesen? Das geht schon:

Text1 = Excel.Range("C4")
For X = 5 to 32
Text1 = Text1 & vbCrLf & Excel.Range("C" & CStr(X))
Next X

Das auslesen aus einer Multiline-Textbox ist ein bisschen schwieriger, außer die Einträge haben immer die gleiche Anzahl von Stellen. Bei deiner Uhrzeit mit garantiert fünf Stellen plus zwei Stellen für das crlf:

For X = 1 To 224 Step 7
Excel.Range("C" & CStr((X \ 7) + 4))
Next index

Das einlesen in eine Listbox geht auch einfacher:

List2.List() = Excel.Range("C4:C35")

Das versetzen des Cursors im Excelsheet durch das Click-Ereignis in deiner Listbox geht folgendermaßen:

Excel.Cells(List2.ListIndex + 3, 3).Select

Das übergeben der Daten aus der Listbox an die Textbox machst du so:

Text1 = List(List2.ListIndex)

Wie du das Excelsheet selektierst hat L.Vira schon beschrieben.

Gute Nacht
Nepumuk



Anzeige
Re: UUps
25.08.2002 23:05:37
Nepumuk
Das muß natürlich

For X = 1 To 224 Step 7
Excel.Range("C" & CStr((X \ 7) + 4)) = Mid(Text1, X, 5)
Next X

lauten

Gruß
Nepumuk

;
Anzeige

Infobox / Tutorial

Mit VB6 Excel lesen und schreiben


Schritt-für-Schritt-Anleitung

Um mit VB6 Excel zu lesen und zu schreiben, kannst du die folgenden Schritte befolgen:

  1. Excel-Objekt erstellen:

    Dim Excel As Object
    Set Excel = CreateObject("Excel.Application")
    Excel.Visible = True ' Setze auf False, wenn du Excel im Hintergrund nutzen möchtest.
  2. Excel-Datei öffnen: Verwende einen Dialog, um die Datei auszuwählen. Hier ist ein Beispiel für den Open-Dialog:

    CommonDialog1.Filter = ("Excel-Datei (*.xls)|*.xls;")
    CommonDialog1.ShowOpen
    If CommonDialog1.FileName <> "" Then
       Excel.Workbooks.Open CommonDialog1.FileName
    End If
  3. Daten lesen: Um Daten in eine ListBox einzulesen, kannst du folgendes verwenden:

    Dim X As Integer
    For X = 1 To Excel.Sheets.Count
       List1.AddItem (Excel.Sheets(X).Name)
    Next X
  4. Werte aus Zellen lesen: Um Werte aus dem Bereich C4 bis C35 zu lesen:

    Dim i As Integer
    For i = 4 To 35
       List2.AddItem (Excel.Sheets(1).Cells(i, 2).Value) ' Hier wird B4-B35 gelesen
    Next i
  5. Zellenwerte ändern: Um einen Wert in eine Zelle zu schreiben, verwende:

    Excel.Range("C4").Value = Text1.Text
  6. Excel beenden: Vergiss nicht, Excel zu schließen, wenn du fertig bist:

    Excel.Quit
    Set Excel = Nothing

Häufige Fehler und Lösungen

  • Fehler beim Öffnen der Datei: Stelle sicher, dass der Pfad zur Datei korrekt ist und die Datei nicht von einem anderen Programm geöffnet ist.
  • ListBox bleibt leer: Überprüfe, ob du die richtige Sheet-Nummer verwendest und ob die Zellen tatsächlich Daten enthalten.
  • Excel-Anwendung nicht sichtbar: Setze Excel.Visible = True, um sicherzustellen, dass die Excel-Anwendung sichtbar ist.

Alternative Methoden

Du kannst auch andere Methoden verwenden, um Daten aus Excel zu lesen:

  • Direktes Lesen in eine ListBox:

    List2.List() = Excel.Range("C4:C35").Value
  • Verwendung von ADO für den Zugriff auf Excel-Daten: ADO kann verwendet werden, um Excel-Daten wie eine Datenbank zu behandeln.


Praktische Beispiele

Hier sind einige Beispiele, die dir helfen können:

  1. Einlesen von Daten in eine TextBox:

    Dim Text1 As String
    Dim X As Integer
    Text1 = Excel.Range("C4").Value
    For X = 5 To 35
       Text1 = Text1 & vbCrLf & Excel.Range("C" & X).Value
    Next X
  2. Cursor im Excel-Sheet setzen: Um den Cursor auf eine bestimmte Zelle zu setzen, kannst du folgendes verwenden:

    Excel.Cells(List2.ListIndex + 3, 3).Select

Tipps für Profis

  • Verwende With-Anweisungen: Das macht deinen Code lesbarer und effizienter.
  • Fehlerbehandlung: Implementiere Fehlerbehandlungsroutinen, um unerwartete Fehler zu vermeiden.
  • Speichern: Denke daran, deine Änderungen zu speichern, bevor du die Excel-Anwendung schließt.

FAQ: Häufige Fragen

1. Wie kann ich mehrere Excel-Dateien gleichzeitig öffnen? Du kannst eine Schleife verwenden, um mehrere Dateidialoge zu öffnen und die Dateien nacheinander zu laden.

2. Was ist der Unterschied zwischen .xls und .xlsx? .xls ist das ältere Excel-Format, während .xlsx das neuere, XML-basierte Format ist. Du kannst beide Formate mit VB6 lesen, achte jedoch darauf, die richtige Filterung im Dialog zu setzen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige