Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
152to156
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
152to156
152to156
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

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

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

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige