Probleme beim erstellen von Excel Tabelle aus VB6

  • VB6

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von Swift79.

    Probleme beim erstellen von Excel Tabelle aus VB6

    Guten morgen zusammen

    Ich habe ein kleines Problem beim erstellen einer Exccel-Tabelle aus VB6 zur Zeit verwende ich folgenden Code um Werte in Zellen einer Excel-Tabelle zu schreiben.

    Visual Basic-Quellcode

    1. xlAnw.ActiveWorkbook.ActiveSheet.Cells(2, 1).Value = Date
    2. xlAnw.ActiveWorkbook.ActiveSheet.Cells(2, 2).Value = Time
    3. xlAnw.ActiveWorkbook.ActiveSheet.Cells(2, 3).Value = ME_ID
    4. xlAnw.ActiveWorkbook.ActiveSheet.Cells(2, 4).Value = gewicht
    5. xlAnw.ActiveWorkbook.ActiveSheet.Cells(2, 5).Value = dicke
    6. xlAnw.ActiveWorkbook.ActiveSheet.Cells(2, 6).Value = breite
    7. xlAnw.ActiveWorkbook.ActiveSheet.Cells(2, 7).Value = Text9
    8. xlAnw.ActiveWorkbook.ActiveSheet.Cells(2, 8).Value = Text12
    9. xlAnw.ActiveWorkbook.ActiveSheet.Cells(2, 9).Value = Text6
    10. xlAnw.ActiveWorkbook.ActiveSheet.Cells(2, 10).Value = Text1
    11. xlAnw.ActiveWorkbook.ActiveSheet.Cells(2, 11).Value = Text13
    12. xlAnw.ActiveWorkbook.ActiveSheet.Cells(2, 12).Value = Text7
    13. xlAnw.ActiveWorkbook.ActiveSheet.Cells(2, 13).Value = Text8
    14. xlAnw.ActiveWorkbook.ActiveSheet.Cells(2, 14).Value = Text10


    VB formatiert mir jetzt allerdings die Zahlenwerte die in die einzelnen Zellen geschrieben werden als Text. Ich möchte aber das die Werte direkt als Zahl in der Excel-Tabelle formatiert werden, damit ich anschliessend den Autofilter benutzen kann der mir die Werte auf- oder absteigend sortiert.

    Ich hoffe das ich mein Problem einigermassen verständlich beschreiben konnte und bedanke mich schonmal im voraus für Lösungsvorschläge.

    MfG Swift
    Hallo Swift79!

    Ich weiß zwar den Befehl für Visual Basic nicht, aber wenn die Datei erstellt ist (die Excel Datei) dann kann man natürlich "manuell" in Excel einstellen, das z.B.die ganze Spalte als Zahl formatiert werden soll.

    Probleme entstehen dabei allerdings, wenn es nicht immer eine Zahl ist.

    Vielleicht konnte ich helfen?

    Mfg
    Light_Dragon!
    Danke für die Antwort.

    Bringt mich allerdings nicht wirklich weiter da ich das bereits wusste.
    Ich möchte direkt aus VB eine Excel-Tabelle erstellen in der alle Zellinhalte als Zahl formatiert sind.
    Nachträglich ändern bringt mir nicht viel.

    Aber trotzdem danke nochmal!
    Die textboxen sind ja auch Strings, also hilft eventuell die Umwandlung in Integer/Double wie CInt(TextBox1.Text) oder CDbl(TextBox1.Text)
    Gruß, Agent Smith 8-)

    activeFlags = (lazy OR weary)

    Lemgo-Verschwörung | Mathematics | VB-Paradise in blau
    Hallo Swift79,

    bitte teste mal diesen Quelltext bei dir (Verweis auf die Microsoft Excel Object Library nötig):

    Visual Basic-Quellcode

    1. Dim oAppXls As Excel.Application
    2. Dim oWbk As Workbook
    3. Dim oWks As Worksheet
    4. Set oAppXls = New Excel.Application
    5. oAppXls.Visible = True
    6. Set oWbk = oAppXls.Workbooks.Add
    7. Set oWks = oWbk.Worksheets(1)
    8. oWks.Cells(1, 1).Value = "Hallo"
    9. oWks.Cells(2, 1).Value = "1"
    10. oWks.Cells(3, 1).Value = "3.1415"
    11. Set oWks = Nothing
    12. Set oWbk = Nothing
    13. Set oAppXls = Nothing


    Das NumberFormat einer Zelle ist bei mit immer "General". So treten bei diesen Bsp. keine Anomalien auf.

    Leider hast du es vermieden ein überprüfbares Quelltext-Bsp. zu liefern.

    Nachträglich ändern bringt mir nicht viel.

    Warum denn das nicht? Wert an Zelle zuweisen und das Format anpassen... fertig!

    Bitte etwas ausführlicher....

    Gruß Markus
    Hallöchen zusammen.

    Danke Agent. Deine Hilfestellung war genau das wonach ich gesucht habe. Hab garnicht dran gedacht das die textfelder die ich einlese eigentlich Strings sind. Die umwandlung in Double hat mein Problem dann auch gelöst!! Danke nochmal!!!

    @alchimist:

    Okay ich hab mich da glaub ich falsch ausgedrückt. Bringt natürlich schon viel. Zumindest wenn man es noch nachträglich ändern möchte. Da ich aber so viel Arbeit wie möglich schon von meinem kleinen VB Programm erledigen lassen möchte, kam diese Option für mich nicht in Frage.
    Aber trotzdem Danke für deine Mühe!