| |

Fortgeschrittene ProgrammierungRe: Zahlenfelder in Excel-Tabelle | |  | Autor: Mathen | Datum: 25.11.02 19:20 |
| Hey Mahobi,
also als erstes mußt Du im VB-Projekt unter Verweise die "Microsoft Excel 8.0 Object Library" aktivieren. Dann ein Modul zum Projekt hinzufügen und den folgender Code hinein kopieren.
'Modul*****************************************
Option Explicit
'
Public xlApp As Application
'
Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As Any) As Long
Public Declare Function SetForegroundWindow Lib "user32" (ByVal hWnd As Long) As Long
Public Declare Function SetActiveWindow Lib "user32" (ByVal hWnd As Long) As Long
Public Declare Function GetActiveWindow Lib "user32" () As Long
'
'
Public Sub ExcelOpen(Path$, File$, Worksheet$)
'
On Error GoTo ErrorSub
'
Dim OldWindowID&
Dim ExcelWindowID&
Dim DummyWindowID&
Dim xlWorkbook As Object
'
Const WM_USER = 1024
'
OldWindowID& = GetActiveWindow()
'
If UCase$(Dir$(Path$ & File$)) <> Trim$(UCase$(File$)) Then GoTo ErrorSub ' ** file not found **
ExcelWindowID& = FindWindow("XLMain", 0&)
If ExcelWindowID& = 0 Then 'Excel is not open
Set xlApp = GetObject("", "Excel.Application")
xlApp.Workbooks.Open Path$ & File$
xlApp.Visible = True
Else 'Excel is already open
SendMessage ExcelWindowID&, WM_USER + 18, 0, 0
Set xlWorkbook = GetObject(Path$ & File$)
Set xlApp = xlWorkbook.Application
End If
xlApp.Windows(File$).Activate
xlApp.ActiveWindow.WindowState = 2
xlApp.Workbooks(File$).Worksheets(Worksheet$).Select
' DummyWindowID& = SetForegroundWindow(ExcelWindowID&)
DummyWindowID& = SetForegroundWindow(OldWindowID&)
' Set xlApp = Nothing
Set xlWorkbook = Nothing
'
Exit Sub
'
ErrorSub:
'
Set xlApp = Nothing
Set xlWorkbook = Nothing
Beep
MsgBox "Can't open Excel file !" & Chr$(13) & Chr$(10) & Chr$(13) & Chr$(10) & "File : " & Path$ & File$ & Chr$(13) & Chr$(10) & "Worksheet : " & Worksheet$, 48 + 256
'
Exit Sub
'
End Sub ' ExcelOpen *********************************
Dann nimmst Du Dir eine neue Form und kopierst den folgenden Code darein!
' Form ********************************************
Option Explicit
Private Sub Command1_Click()
'
ExcelOpen "C:\Tmp\", "Test66.xls", "Tabelle1"
xlApp.ActiveCell = "Hallo Excel"
MsgBox xlApp.Cells(1, 1)
'
End Sub ' Command1_Click
Private Sub Form_Unload(Cancel As Integer)
'
Set xlApp = Nothing
'
End Sub ' Form_Unload ***********************************
Die Excel-Datei, in diesem Fall Test66.xls, muß allerdings auf der Festplatte bereits vorhanden sein.
Nachdem die ExcelOpen Routine durchlaufen ist kannst Du jetzt so weiter programmieren, als wenn Du Dich in der VB-Umgebung von Excel selber befinden würdest. Du mußt nur immer das Prefix xlApp. voranstellen. Probier es mal aus.
Gruß Mathen |  |
 | Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
  |
|
sevWizard für VB5/6 
Professionelle Assistenten im Handumdrehen
Erstellen Sie eigene Assistenten (Wizards) im Look & Feel von Windows 2000/XP - mit allem Komfort und zwar in Windeseile :-) Weitere InfosTipp des Monats Oktober 2025 Matthias KozlowskiUmlaute konvertierenErsetzt die Umlaute in einer Zeichenkette durch die entsprechenden Doppelbuchstaben (aus ä wird ae, usw.) Access-Tools Vol.1 
Über 400 MByte Inhalt
Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB
Nur 24,95 EURWeitere Infos
|
|
|
Copyright ©2000-2025 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|