| |

Visual-Basic EinsteigerAn alle, die sich mit VB und Excel auskennen!! | |  | Autor: rasmel | Datum: 06.02.03 10:28 |
| Hi!
Ich hab ein größeres Problem mit meinem VB Programm. Mein Prog. liest eine LogDatei ein, öffnet Excel, legt eine neue Mappe an, sortiert die Daten, und gibt diese auf mehreren Sheets aus. Beim ersten Durchlauf klappt alles perfekt, es funktioniert wie es soll. Wenn ich jetzt aber eine neue Datei laden will, ohne mein VB Prog. vorher zu schließen und neu zu öffnen, dann tritt ein Fehler auf: Die neue Arbeitsmappe wird angelegt, die Sheets werden angelegt und gefüllt, aber die Tabelle kann nicht mehr sortiert werden (z.B. Spalte A von A-Z)(sortMethode konnte nicht ausgeführt werden), gleichzeitig wird die Tabelle, die beim ersten Programmdurchlauf erstellt wurde zerstört, obwohl die eigentlich unabhängig sein sollte. Und der Fehler tritt nur dann auf , wenn ich mein VB Prog. nicht schließe und neu öffne. Ob ich Excel neustarte oder nicht, ist egal, das hat keinen Einfluss. Nochmal in Kurzfassung: Ich muss mein Programm für jede Datei, die ich einlesen will neustarten, was aber sehr umständlich ist.
Ich schick mal den Auszug aus meinem Prog. der die Verknüpfung mit Excel enthält:
Public Sub OpenExcel()
Dim XL As Excel.Application
Dim ActiveWkb As Workbook
Dim i As Integer
Dim x As Integer
Dim arrRow() As String
Dim OneLine As New SingleLine
Dim NextLine As New SingleLine
Dim comp As String
Dim comp2 As String
Dim u As Integer
Dim count As Integer
Dim addRow As Long
'Open a new Chart
Set XL = CreateObject("Excel.Application")
'XL.Visible = True
XL.Application.Workbooks.Add
Set ActiveWkb = XL.Application.ActiveWorkbook
count = 1
With ActiveWkb
u = 1
Application.ScreenUpdating = False
For i = 2 To List.count 'List ist eine Collection, die
' SingleLine's als Elemente hat
DoEvents
Set OneLine = New SingleLine
Set NextLine = New SingleLine
Set OneLine = List.Item(i - 1)
Set NextLine = List.Item(i)
arrRow = OneLine.Get_row()
comp = OneLine.Get_key()
comp2 = NextLine.Get_key()
.Worksheets(u).Name = comp
.Worksheets(u).Range("A" & count, "M" & count) = arrRow
If (comp2 = comp) Then
count = count + 1
Else
If (u >= 3) Then
.Worksheets.Add After:=.Worksheets(.Worksheets.count)
End If
count = 1
u = u + 1
End If
Next i
For i = 1 To .Worksheets.count
.Worksheets(i).Activate
.Worksheets(i).Cells.AutoFilter
.Worksheets(i).Cells.EntireColumn.AutoFit
[u] .Worksheets(i).Range("A1").Sort Key1:=Worksheets( _
i).Columns("A")
'Hier tritt der Fehler beim zweiten Durchlauf auf
Next i
For i = 1 To .Worksheets.count
.Worksheets(i).Activate
addRow = .Worksheets(i).UsedRange.Rows.count
.Worksheets(i).Cells((addRow + 3), 1) = "Sheet " & i & " of " & _
.Worksheets.count
Next i
Application.ScreenUpdating = True 'show result
.Worksheets(1).Activate
End With
XL.Application.Calculate
XL.Visible = True
Set ActiveWkb = Nothing
End Sub Danke schon mal im Voraus an alle, die sich ein paar Gedanken zu meinem Problem machen und ich hoffe dass vielleicht sogar jemandem eine Lösung einfällt... |  |
 | 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 |
  |
|
Neu! sevCommand 4.0 
Professionelle Schaltflächen im modernen Design!
Mit nur wenigen Mausklicks statten auch Sie Ihre Anwendungen ab sofort mit grafischen Schaltflächen im modernen Look & Feel aus (WinXP, Office, Vista oder auch Windows 8), inkl. große Symbolbibliothek. Weitere InfosTipp des Monats Oktober 2025 Matthias KozlowskiUmlaute konvertierenErsetzt die Umlaute in einer Zeichenkette durch die entsprechenden Doppelbuchstaben (aus ä wird ae, usw.) TOP Entwickler-Paket 
TOP-Preis!!
Mit der Developer CD erhalten Sie insgesamt 24 Entwickler- komponenten und Windows-DLLs. Die Einzelkomponenten haben einen Gesamtwert von 1866.50 EUR...
Jetzt nur 979,00 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
|
|