per vbscript und hta --> Daten in Excel eintragen

  • VBScript

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von p41n.

    per vbscript und hta --> Daten in Excel eintragen

    Hallo Zusammen,

    Da ich mich nun schon eine ganze Weile mit der Thematik beschäftige, aber gerade überhaupt nicht weiterkomme, hoffe ich, ihr könnt mir helfen.
    Ich habe mir ein VBScript geschrieben, mit welchem ich Daten in ein Excel Sheet eintragen kann.
    Soweit funktioniert das auch problemlos. Da ich aber bei zwei Eingaben gerne ein DropDown Menu hätte und dies mit VBScript nicht ordentlich zu realisieren ist, habe ich mich für eine HTML-Applikation entschieden. Das Grundgerüst steht auch schon. Nur habe ich nun das Problem den restlichen VBScript Code in die hta-File so einzufügen, dass es auch funktioniert.

    Hier mal mein VBScript:

    Visual Basic-Quellcode

    1. Rem =================================================================================================================
    2. Rem == Start der 1. Abfrage in einer Messagebox. ==
    3. Rem =================================================================================================================
    4. dim m
    5. m = MsgBox("Mit dieser Anwendung wird ein neuer Benutzer in die Datenbank eingetragen!",vbOk,"Meldung")
    6. if m = 2 then
    7. WScript.Quit
    8. End If
    9. Rem =================================================================================================================
    10. Rem == Start der 2. Abfrage in einer Messagebox. ==
    11. Rem =================================================================================================================
    12. dim e
    13. e = msgbox("Einen Benutzer in die Datenbank eintragen?",+vbyesno,"Meldung")
    14. if e = vbno then
    15. WScript.Quit
    16. End If
    17. Rem =================================================================================================================
    18. Rem == Start der Do... Loop Anweisung! ==
    19. Rem =================================================================================================================
    20. DO
    21. Rem =================================================================================================================
    22. Rem == Initialisiere Excel Objekt. ==
    23. Rem =================================================================================================================
    24. Set oExcel = CreateObject("Excel.application")
    25. Rem =================================================================================================================
    26. Rem == Aktive Datei der ersten Objektvariablen zuordnen. ==
    27. Rem =================================================================================================================
    28. Set oWorkbook1 = oExcel.Workbooks.Open("test.xlsx")
    29. Rem =================================================================================================================
    30. Rem == Der Speicherort des Excel Sheets wird der Variablen "pfadzurexceldatei" zugeordnet. ==
    31. Rem =================================================================================================================
    32. pfadzurexceldatei="test.xlsx"
    33. Rem =================================================================================================================
    34. Rem == Variablen werden über InputBox abgefragt und für den späteren Eintrag zugewiesen. ==
    35. Rem =================================================================================================================
    36. Login = InputBox ("Accountname")
    37. VorlageA = InputBox ("Vorlage A")
    38. VorlageB = InputBox ("Vorlage B")
    39. Nachname = InputBox ("Nachname")
    40. Vorname = InputBox ("Vorname")
    41. Mainf = InputBox ("Hauptfunktion")
    42. Subf = InputBox ("Zusatzfunktion")
    43. Tele = InputBox ("Festnetznummer")
    44. Fax = InputBox ("Faxnummer")
    45. Handy = InputBox ("Handynummer")
    46. Mail = InputBox ("Mailadresse")
    47. Rem =================================================================================================================
    48. Rem == n Zeilen in einer Spalte untersuchen. (nach 1x Durchlauf --> Abbruch der Schleife mit "Exit For") ==
    49. Rem =================================================================================================================
    50. For nCounter = 1 To 500
    51. If oWorkbook1.Sheets(1).Cells(nCounter, 1).Value = "" Then
    52. oWorkbook1.Sheets(1).Cells(nCounter, 1).Value = (Login)
    53. oWorkbook1.Sheets(1).Cells(nCounter, 2).Value = (VorlageA)
    54. oWorkbook1.Sheets(1).Cells(nCounter, 3).Value = (VorlageB)
    55. oWorkbook1.Sheets(1).Cells(nCounter, 4).Value = (Nachname)
    56. oWorkbook1.Sheets(1).Cells(nCounter, 6).Value = (Vorname)
    57. oWorkbook1.Sheets(1).Cells(nCounter, 7).Value = (Mainf)
    58. oWorkbook1.Sheets(1).Cells(nCounter, 8).Value = (Subf)
    59. oWorkbook1.Sheets(1).Cells(nCounter, 9).Value = (Tele)
    60. oWorkbook1.Sheets(1).Cells(nCounter, 10).Value = (Fax)
    61. oWorkbook1.Sheets(1).Cells(nCounter, 11).Value = (Handy)
    62. oWorkbook1.Sheets(1).Cells(nCounter, 12).Value = (Mail)
    63. Exit For
    64. End if
    65. Next
    66. Rem =================================================================================================================
    67. Rem == Datei wieder schliesen. ==
    68. Rem =================================================================================================================
    69. oWorkbook1.SaveAs(pfadzurexceldatei)
    70. oWorkbook1.Close
    71. Rem =================================================================================================================
    72. Rem == Wiederholung der Do... Loop Anweisung durch Setzen der Variable mit der Messagebox. ==
    73. Rem =================================================================================================================
    74. dim a
    75. a = msgbox("Einen weiteren Benutzer in die Datenbank eintragen?",+vbyesno,"Meldung")
    76. Loop while a = vbyes
    77. Rem =================================================================================================================
    78. Rem == Verarbeitungsende und Ausgabe einer Meldung durch die Messagebox. ==
    79. Rem =================================================================================================================
    80. variable = MsgBox("Der/Die Anwender wurde(n) erfolgreich in die Datenbank eingetragen !",vbOKOnly,"Meldung")
    81. Rem =================================================================================================================
    82. Rem == Objektverweis wieder entfernen. ==
    83. Rem =================================================================================================================
    84. Set oWorkbook1 = Nothing
    85. oExcel.Quit



    Hier hier ist meine bisherige hta-File:

    HTML-Quellcode

    1. <html>
    2. <head>
    3. <title>Benutzerverwaltung</title>
    4. <HTA:APPLICATION
    5. ID="objTest"
    6. APPLICATIONNAME="Benutzerverwaltung"
    7. SCROLL="no"
    8. SINGLEINSTANCE="yes"
    9. windowState="normal"
    10. >
    11. </head>
    12. <SCRIPT LANGUAGE="VBScript">
    13. DIM Login
    14. DIM VorlageA
    15. DIM VorlageB
    16. DIM Nachname
    17. DIM Vorname
    18. DIM Mainf
    19. DIM Subf
    20. DIM Tele
    21. DIM Fax
    22. DIM Handy
    23. DIM Mail
    24. Sub Excel
    25. Set oExcel = CreateObject("Excel.application")
    26. Set oWorkbook1 = oExcel.Workbooks.Open("test.xlsx")
    27. pfadzurexceldatei="test.xlsx"
    28. End Sub
    29. Sub GenerateEntry
    30. For nCounter = 1 To 500
    31. If oWorkbook1.Sheets(1).Cells(nCounter, 1).Value = "" Then
    32. oWorkbook1.Sheets(1).Cells(nCounter, 1).Value = (Login)
    33. oWorkbook1.Sheets(1).Cells(nCounter, 2).Value = (VorlageA)
    34. oWorkbook1.Sheets(1).Cells(nCounter, 3).Value = (VorlageB)
    35. oWorkbook1.Sheets(1).Cells(nCounter, 4).Value = (Nachname)
    36. oWorkbook1.Sheets(1).Cells(nCounter, 6).Value = (Vorname)
    37. oWorkbook1.Sheets(1).Cells(nCounter, 7).Value = (Mainf)
    38. oWorkbook1.Sheets(1).Cells(nCounter, 8).Value = (Subf)
    39. oWorkbook1.Sheets(1).Cells(nCounter, 9).Value = (Tele)
    40. oWorkbook1.Sheets(1).Cells(nCounter, 10).Value = (Fax)
    41. oWorkbook1.Sheets(1).Cells(nCounter, 11).Value = (Handy)
    42. oWorkbook1.Sheets(1).Cells(nCounter, 12).Value = (Mail)
    43. Exit For
    44. End if
    45. Next
    46. End Sub
    47. Sub Abschluss
    48. oWorkbook1.SaveAs(pfadzurexceldatei)
    49. oWorkbook1.Close
    50. Set oWorkbook1 = Nothing
    51. oExcel.Quit
    52. End Sub
    53. Sub Window_Onload
    54. LoadDropDownA
    55. LoadDropDownB
    56. End Sub
    57. Sub LoadDropDownA
    58. ClearListBoxA
    59. Set objFS = CreateObject("Scripting.FileSystemObject")
    60. Set objFile = objFS.OpenTextFile("VorlagenA.txt")
    61. strVorlagenA = objFile.ReadAll
    62. objFile.Close
    63. arrVorlagenA = Split(strVorlagenA,vbNewLine)
    64. For Each strNumber in arrVorlagenA
    65. Set objOption = Document.createElement("OPTION")
    66. objOption.Text = strNumber
    67. objOption.Value = strNumber
    68. VorlagenA.Add(objOption)
    69. Next
    70. End Sub
    71. Sub LoadDropDownB
    72. ClearListBoxB
    73. Set objFS = CreateObject("Scripting.FileSystemObject")
    74. Set objFile = objFS.OpenTextFile("VorlagenB.txt")
    75. strVorlagenB = objFile.ReadAll
    76. objFile.Close
    77. arrVorlagenB = Split(strVorlagenB,vbNewLine)
    78. For Each strNumber in arrVorlagenB
    79. Set objOption = Document.createElement("OPTION")
    80. objOption.Text = strNumber
    81. objOption.Value = strNumber
    82. VorlagenB.Add(objOption)
    83. Next
    84. End Sub
    85. Sub ClearListboxA
    86. For Each objOption in VorlagenA.Options
    87. objOption.RemoveNode
    88. Next
    89. End Sub
    90. Sub ClearListboxB
    91. For Each objOption in VorlagenB.Options
    92. objOption.RemoveNode
    93. Next
    94. End Sub
    95. Sub Buttona_onclick
    96. a = VorlagenA.Value
    97. MsgBox a
    98. End Sub
    99. Sub Buttonb_onclick
    100. a = VorlagenB.Value
    101. MsgBox a
    102. End Sub
    103. Sub Buttonc_onclick
    104. c = outlook.Value
    105. MsgBox c
    106. End Sub
    107. </SCRIPT>
    108. <body>
    109. <fieldset>
    110. <p><b><u><font color="#FF0000" family="arial" size="5"><center>Formular zum Hinzufügen von Anwendern zur Datenbank!</center><br></font></u></b></p>
    111. <table>
    112. <tr>
    113. <td>Bitte wählen Sie die 1.Vorlage aus:
    114. <select name="VorlagenA"></select><br><br></td>
    115. <td align="right">Bitte wählen Sie die 2.Vorlage aus:
    116. <select name="VorlagenB"></select><br><br></td>
    117. </tr>
    118. <tr>
    119. <td><label for="name">Bitte die Benutzerkennung des Anwenders angeben!</label>
    120. <input name="Daten" type="text" size="70"></input></td>
    121. <td align="right"><label for="name">Bitte den Nachnamen des Anwenders angeben!</label>
    122. <input name="Daten" type="text" size="70"></input></td>
    123. </tr>
    124. <tr>
    125. <td><label for="name">Bitte den Vornamen des Anwenders angeben!</label>
    126. <input type="text" size="70"></input></td>
    127. <td align="right"><label for="name">In welcher Funktion ist der Anwender tätig?</label>
    128. <input type="text" size="70"></input></td>
    129. </tr>
    130. <tr>
    131. <td><label for="name">Sofern der Anwender eine Zusatzfunktion hat, bitte angeben!</label>
    132. <input type="text" size="70"></input></td>
    133. <td align="right"><label for="name">Unter welcher Festnetznummer ist der Anwender erreichbar?</label>
    134. <input type="text" size="70"></input></td>
    135. </tr>
    136. <tr>
    137. <td><label for="name">Unter welche Faxnummer ist der Anwender erreichbar?</label>
    138. <input type="text" size="70"></input></td>
    139. <td align="right"><label for="name">Unter welcher Nummer ist der Anwender unterwegs erreichbar?</label>
    140. <input type="text" size="70"></input><br><br></td>
    141. </tr>
    142. </table>
    143. <center><tr>
    144. <label for="name">Unter welcher Mailadresse ist der Anwender erreichbar?</label><br>
    145. <input type="text" size="70"></input>
    146. </tr></center>
    147. <center><tr>
    148. <form> <input type="Button" name="Buttona" value="2. Vorlage">
    149. <input type="Button" name="Buttonb" value="1. Vorlage">
    150. <input type="Button" name="Buttonc" value="Alle Daten übermitteln"></form>
    151. </tr></center>
    152. </fieldset>
    153. </body>
    154. </html>


    Also das VBScript läuft tadellos. Und die hta-File bisher auch. Nun würde ich gerne die Funktionen aus dem Script in die hta-File übertragen. Für euch Spezialisten bestimmt ein Kinderspiel. Oder? ;)

    Vorab schon mal Danke für eure Hilfe.


    Freundliche Grüße

    p41n
    Hallo Gemeinde,

    Ich konnte das Problem nun letztendlich doch selbst lösen.

    Für die, die wissen wollen, wie ich es realisiert habe, könnt ihr euch nun den Quellcode ansehen:

    Visual Basic-Quellcode

    1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Strict//EN"
    2. "http://www.w3.org/TR/html4/strict.dtd">
    3. <html>
    4. <head>
    5. <title>Benutzerverwaltung</title>
    6. <HTA:APPLICATION
    7. ID="objTest"
    8. Border="thin"
    9. Maximizebutton="No"
    10. APPLICATIONNAME="Benutzerverwaltung"
    11. SCROLL="no"
    12. SINGLEINSTANCE="yes"
    13. windowState="normal"
    14. >
    15. </head>
    16. <SCRIPT LANGUAGE="VBScript">
    17. Sub Window_Onload
    18. LoadDropDownA
    19. LoadDropDownB
    20. End Sub
    21. Sub LoadDropDownA
    22. ClearListBoxA
    23. Set objFS = CreateObject("Scripting.FileSystemObject")
    24. Set objFile = objFS.OpenTextFile("VorlagenA.txt")
    25. strVorlagenA = objFile.ReadAll
    26. objFile.Close
    27. arrVorlagenA = Split(strVorlagenA,vbNewLine)
    28. For Each strNumber in arrVorlagenA
    29. Set objOption = Document.createElement("OPTION")
    30. objOption.Text = strNumber
    31. objOption.Value = strNumber
    32. VorlagenA.Add(objOption)
    33. Next
    34. End Sub
    35. Sub LoadDropDownB
    36. ClearListBoxB
    37. Set objFS = CreateObject("Scripting.FileSystemObject")
    38. Set objFile = objFS.OpenTextFile("VorlagenB.txt")
    39. strVorlagenB = objFile.ReadAll
    40. objFile.Close
    41. arrVorlagenB = Split(strVorlagenB,vbNewLine)
    42. For Each strNumber in arrVorlagenB
    43. Set objOption = Document.createElement("OPTION")
    44. objOption.Text = strNumber
    45. objOption.Value = strNumber
    46. VorlagenB.Add(objOption)
    47. Next
    48. End Sub
    49. Sub ClearListboxA
    50. For Each objOption in VorlagenA.Options
    51. objOption.RemoveNode
    52. Next
    53. End Sub
    54. Sub ClearListboxB
    55. For Each objOption in VorlagenB.Options
    56. objOption.RemoveNode
    57. Next
    58. End Sub
    59. Sub Buttoncreate_onclick
    60. a = login.Value
    61. b = VorlagenA.Value
    62. c = VorlagenB.Value
    63. d = surname.Value
    64. e = firstname.Value
    65. f = vunction.Value
    66. g = addfunction.Value
    67. h = phone.Value
    68. i = fax.Value
    69. j = mobile.Value
    70. k = mail.Value
    71. Set oExcel = CreateObject("Excel.application")
    72. oExcel.Visible = False
    73. oExcel.DisplayAlerts = False
    74. Set oWorkbook1 = oExcel.Workbooks.Open("pfad\test.xlsx")
    75. pfadzurexceldatei="pfad\test.xlsx"
    76. For nCounter = 1 To 500
    77. If oWorkbook1.Sheets(1).Cells(nCounter, 1).Value = "" Then
    78. oWorkbook1.Sheets(1).Cells(nCounter, 1).Value = (a)
    79. oWorkbook1.Sheets(1).Cells(nCounter, 2).Value = (b)
    80. oWorkbook1.Sheets(1).Cells(nCounter, 3).Value = (c)
    81. oWorkbook1.Sheets(1).Cells(nCounter, 4).Value = (d)
    82. oWorkbook1.Sheets(1).Cells(nCounter, 5).Value = (e)
    83. oWorkbook1.Sheets(1).Cells(nCounter, 6).Value = (f)
    84. oWorkbook1.Sheets(1).Cells(nCounter, 7).Value = (g)
    85. oWorkbook1.Sheets(1).Cells(nCounter, 8).Value = (h)
    86. oWorkbook1.Sheets(1).Cells(nCounter, 9).Value = (i)
    87. oWorkbook1.Sheets(1).Cells(nCounter, 10).Value = (j)
    88. oWorkbook1.Sheets(1).Cells(nCounter, 11).Value = (k)
    89. Exit For
    90. End if
    91. Next
    92. oWorkbook1.SaveAs(pfadzurexceldatei)
    93. oWorkbook1.Close
    94. Set oWorkbook1 = Nothing
    95. oExcel.Quit
    96. MsgBox "Der Mitarbeiter wurde erfolgreich in die Datenbank eingetragen!"
    97. End Sub
    98. Sub Buttonreset_onclick
    99. login.Value = ""
    100. VorlagenA.Value = ""
    101. VorlagenB.Value = ""
    102. surname.Value = ""
    103. firstname.Value = ""
    104. vunction.Value = ""
    105. addfunction.Value = ""
    106. phone.Value = ""
    107. fax.Value = ""
    108. mobile.Value = ""
    109. mail.Value = ""
    110. End Sub
    111. Sub Buttonclose_onclick
    112. Me.Close()
    113. End Sub
    114. </SCRIPT>
    115. <body bgcolor="#000000">
    116. <p><b><u><font color="#FFFF00" family="arial" size="5"><center>Formular zum Hinzufügen von Mitarbeitern zur Signatur-Datenbank!</center><br></font></u></b></p>
    117. <table border="1" bgcolor="#eeeeee" bordercolor="#hhhhhh" align="center" rules="groups" width="70%">
    118. <tr>
    119. <td><br><center>Neue E-Mail Nachrichten:</center>
    120. <center><select name="VorlagenA"></select></center></td>
    121. <td><center>Antworten/Weiterleitungen:</center>
    122. <center><select name="VorlagenB"></select></center></td>
    123. </tr>
    124. <tr>
    125. <td><br><center><label for="name">Benutzerkennung</label></center>
    126. <center><input type="text" name="login" size="50"></input></center></td>
    127. <td><br><center><label for="name">Nachname</label></center>
    128. <center><input type="text" name="surname" size="50"></input></center></td>
    129. </tr>
    130. <tr>
    131. <td><center><label for="name">Vorname</label></center>
    132. <center><input type="text" name="firstname" size="50"></input></center></td>
    133. <td><center><label for="name">Hauptfunktion</label></center>
    134. <center><input type="text" name="vunction" size="50"></input></center></td>
    135. </tr>
    136. <tr>
    137. <td><center><label for="name">Zusatzfunktion</label></center>
    138. <center><input type="text" name="addfunction" size="50"></input></center></td>
    139. <td><center><label for="name">Festnetznummer</label></center>
    140. <center><input type="text" name="phone" size="50"></input></center></td>
    141. </tr>
    142. <tr>
    143. <td><center><label for="name">Faxnummer</label></center>
    144. <center><input type="text" name="fax" size="50"></input></center></td>
    145. <td><center><label for="name">Handynummer</label></center>
    146. <center><input type="text" name="mobile" size="50"></input></center></td>
    147. </tr>
    148. <tr>
    149. <td><center><label for="name">Mailadresse</label></center>
    150. <center><input type="text" name="mail" size="50"></input></center><br></td>
    151. <td></td>
    152. </tr>
    153. </table>
    154. <tr>
    155. <center>
    156. <form><input id=runbutton type="Button" value="Alle Daten übermitteln" name="run_button" onClick="Buttoncreate_onclick">
    157. <input id=runbutton type="Button" value="Alle Felder zurücksetzen" name="run_button" onClick="Buttonreset_onclick">
    158. <input id=runbutton type="Button" value="Formular schließen" name="run_button" onClick="Buttonclose_onclick"></form>
    159. </center>
    160. </tr>
    161. </body>
    162. </html>



    Bis dann dann..

    Viele Grüße

    p41n