In Excel schreiben ohne Sheet zu öffnen

Mataina

Grünschnabel
Hallo Leser :-)

Ich ärgere mich jetzt schon seit ein paar Stunden mit einem "Excel-Problem" herum.

Was ich habe:
Ein Formular in VB 6.0. Daraus werden Daten abgegriffen und in ein Excel-Sheet (WinXp) geschrieben und anschließend gespeichert.

Mit dem Excel-Open/Close habe ich ein gewisses Probleme: schicke ich den ersten Datensatz ab, funktioniert es ohne Probleme. Beim zweiten Datensatz bleibt das Programm allerdings beim erneuten Öffnen (wohl weil die Excel.exe aus unerfindlichen Gründen trotz Excel-Quit noch läuft) stehen und bricht ab.


Was ich gerne möchte:
... ist natürlich die Lösung des Open-Close-Problems. :-)
Zudem frage ich mich (als VB-Starter), ob es möglich ist, Daten in Excel abzuspeichern ohne das Sheet jedes Mal auf- und zuzumachen? Möchte man viele Datensätze abspeichern wird das ein ganz schönes Geklicke....

Vielleicht fallen jemand ja noch weitere Lösungen für mein Problem ein!


Im Voraus schon vielen Dank für Eure Hilfe!

Mataina ;)
 
Wie schreibst du deine Daten? Benutzt du dabei die Funktionsweise des Tipps auf ActiveVB oder machst du es mit der SendKey-Methode? Beschreib deinen Code genauer (oder poste ihn oder lade ihn als Anhang hoch), dann lässt sich sicher eine Lösung finden.


Der Doc!
 
Hallo,

ja ich habe mich am Tutorial orientiert, ohne SendKeys. Mein Code, zum Abspeichern der Daten in Excel sieht wie folgt aus:


Code:
If ok = True Or Text1 <> "" Then
    'Speichern in Excel-Sheet
     CommonDialog1.Filter = ("Excel-Datei (dvd.xls)|dvd.xls;")
     CommonDialog1.InitDir = App.Path
     CommonDialog1.ShowOpen
  
        If CommonDialog1.FileName <> "" Then
            Excel.Workbooks.Open CommonDialog1.FileName
            LFlag = True
        End If

        If Not LFlag Then Exit Sub

    Do Until ZeilenNummer > Abgeschickt
    
    
        ZeilenNummer = ZeilenNummer + 1
    
        Excel.Range("A" & ZeilenNummer).Value = ZeilenNummer
        Excel.Range("B" & ZeilenNummer).Value = Text1.Text
        Excel.Range("C" & ZeilenNummer).Value = Combo1.Text
        Excel.Range("D" & ZeilenNummer).Value = Combo2.Text
        Excel.Range("E" & ZeilenNummer).Value = WertungFilm
        Excel.Range("F" & ZeilenNummer).Value = WertungQualität
        Excel.Range("G" & ZeilenNummer).Value = Text2.Text
  
        Label16 = "Die Daten wurden erfolgreich in C:/dvd.xls gespeichert!"

          'If LFlag Then
          '  Excel.ActiveWorkbook.Close savechanges = True
          'End If
  
         'Excel.Quit
         'Set Excel = Nothing

    Loop

End If
  
End Sub
 
Frage: Öffnest du die Excel-Datei bei jedem Schreibzugriff und schließt du sie unmittelbar danach? Wenn ja, dann öffne deine Excel-Datei doch ganz am Anfang und schließe sie in der QueryUnload-Prozedur der Form. So bleibt sie imme offen und du kannst jederzeit schreiben. Außerdem fällt dannn dein Problem auch weg.


Der Doc!
 

Neue Beiträge

Zurück