TextBox soll bei Masken start leer sein, Daten werden von der vorherigen Eingabe übernommen

  • Excel

Es gibt 10 Antworten in diesem Thema. Der letzte Beitrag () ist von Johanne.

    TextBox soll bei Masken start leer sein, Daten werden von der vorherigen Eingabe übernommen

    Hallo Experten,

    ich bitte um eure Hilfe, da ich Anfänger bin.

    Ich habe folgendes Problem:
    In der Datei befinden sich 2 Tabellenblätter (TB); Inventar und Eingabe.
    Wenn ich mich auf dem TB Eingabe befinde und den Button "Eingabe starten" drücke, öffnet sich wie gewünscht, eine Eingabemaske. Dort klicke ich dann auf den Button "Kalender starten" und bekomme ein weiteres Fenster mit einem Kalender. Bis hier hin läuft alles gut und korrekt.

    Wenn ich das Fenster nach erfolgreicher Eingabe mit dem Button "schließen" schließe, dann sehe ich die erfassten Daten. Ich gehe dann erneut auf das TB Eingabe und wähle z.B. die Zubehör Eingabe oder die Reparatur Eingabe aus.

    An dieser Stelle steht das gerade erfasste Datum in der TextBox rechts neben "Kalender starten". Diese TextBox sollte mit Start der Maske leer sein.
    Wenn ich die Maske schließe und erneut aufrufe, dann ist sie leer, aber vielleicht geht es auch, dass sie bei jedem Start leer ist.
    Im Spoiler könnt ihr sehen, dass ich bereits nach einer Lösung gesucht habe, die nur leider nicht funktioniert.

    Daher bitte ich um eure Hilfe.

    Dankeschön


    Inventar_Eingabe_Maske

    Spoiler anzeigen

    Visual Basic-Quellcode

    1. Option Explicit
    2. Private Sub Button_Schließen_Click()
    3. 'TextBox_Lieferdatum leeren
    4. TextBox_Lieferdatum = ""
    5. 'Eingabefenster schließen
    6. Unload Inventar_Eingabe_Maske
    7. End Sub
    8. Private Sub Button_Eingabe_Click()
    9. 'Eingaben der Schaltfläche in die Arbeitsmappe übernehmen
    10. Dim last As Long
    11. last = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row + 1
    12. 'Inventarnummer
    13. Cells(last, 1).Value = TextBox_Inventarnummer
    14. 'Bezeichnung
    15. Cells(last, 2).Value = TextBox_Bezeichnung
    16. 'BezeichnungZusatz
    17. Cells(last, 3).Value = TextBox_BezeichnungZusatz
    18. 'Invertarrubrik
    19. Cells(last, 4).Value = ComboBox_Inventarrubrik
    20. 'Auftragsnummer
    21. Cells(last, 5).Value = TextBox_Auftragsnummer
    22. 'KostenBrutto
    23. Cells(last, 6).Value = TextBox_KostenBrutto
    24. 'Lieferdatum
    25. Cells(last, 7).Value = TextBox_Lieferdatum
    26. 'Seriennummer
    27. Cells(last, 8).Value = TextBox_Seriennummer
    28. 'Bundnummer / Inventarnummer ALT
    29. Cells(last, 9).Value = TextBox_Bundnummer
    30. 'Hersteller
    31. Cells(last, 10).Value = TextBox_Hersteller
    32. 'Lieferant
    33. Cells(last, 11).Value = TextBox_Lieferant
    34. 'Rechnungsnummer
    35. Cells(last, 12).Value = TextBox_Rechnungsnummer
    36. 'Bemerkung
    37. Cells(last, 13).Value = TextBox_Bemerkung
    38. 'Verwaltungskontenrahmen
    39. Cells(last, 14).Value = TextBox_Verwaltungskontenrahmen
    40. 'Organisationseinheit
    41. Cells(last, 15).Value = TextBox_Organisationseinheit
    42. 'Nutzer
    43. Cells(last, 16).Value = TextBox_Nutzer
    44. 'Standort
    45. Cells(last, 17).Value = TextBox_Standort
    46. 'GebäudeNr
    47. Cells(last, 18).Value = TextBox_GebäudeNr
    48. 'Etage
    49. Cells(last, 19).Value = TextBox_Etage
    50. 'RaumNr
    51. Cells(last, 20).Value = TextBox_RaumNr
    52. MsgBox "Eingabe Erfolgreich"
    53. End Sub
    54. Private Sub CommandButton1_Click()
    55. Kalender_Maske.Show
    56. End Sub
    57. Private Sub TextBox_Inventarnummer_Enter()
    58. 'aktivierte Zelle gelb färben
    59. TextBox_Inventarnummer.BackColor = vbYellow
    60. End Sub
    61. Private Sub TextBox_Inventarnummer_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    62. 'deaktivierte Zelle weiß färben
    63. TextBox_Inventarnummer.BackColor = vbWhite
    64. End Sub
    65. Private Sub TextBox_Bezeichnung_Enter()
    66. 'aktivierte Zelle gelb färben
    67. TextBox_Bezeichnung.BackColor = vbYellow
    68. End Sub
    69. Private Sub TextBox_Bezeichnung_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    70. 'deaktivierte Zelle weiß färben
    71. TextBox_Bezeichnung.BackColor = vbWhite
    72. End Sub
    73. Private Sub TextBox_BezeichnungZusatz_Enter()
    74. 'aktivierte Zelle gelb färben
    75. TextBox_BezeichnungZusatz.BackColor = vbYellow
    76. End Sub
    77. Private Sub TextBox_BezeichnungZusatz_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    78. 'deaktivierte Zelle weiß färben
    79. TextBox_BezeichnungZusatz.BackColor = vbWhite
    80. End Sub
    81. Private Sub ComboBox_Inventarrubrik_Enter()
    82. 'aktivierte Zelle gelb färben
    83. ComboBox_Inventarrubrik.BackColor = vbYellow
    84. End Sub
    85. Private Sub ComboBox_Inventarrubrik_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    86. 'deaktivierte Zelle weiß färben
    87. ComboBox_Inventarrubrik.BackColor = vbWhite
    88. End Sub
    89. Private Sub TextBox_Auftragsnummer_Enter()
    90. 'aktivierte Zelle gelb färben
    91. TextBox_Auftragsnummer.BackColor = vbYellow
    92. End Sub
    93. Private Sub TextBox_Auftragsnummer_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    94. 'deaktivierte Zelle weiß färben
    95. TextBox_Auftragsnummer.BackColor = vbWhite
    96. End Sub
    97. Private Sub TextBox_KostenBrutto_Enter()
    98. 'aktivierte Zelle gelb färben
    99. TextBox_KostenBrutto.BackColor = vbYellow
    100. End Sub
    101. Private Sub TextBox_KostenBrutto_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    102. 'deaktivierte Zelle weiß färben
    103. TextBox_KostenBrutto.BackColor = vbWhite
    104. End Sub
    105. Private Sub TextBox_Lieferdatum_Enter()
    106. 'TextBox_Lieferdatum leeren
    107. TextBox_Lieferdatum.Value = ""
    108. End Sub
    109. Private Sub TextBox_Lieferdatum_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    110. 'TextBox_Lieferdatum leeren
    111. TextBox_Lieferdatum.Value = ""
    112. End Sub
    113. Private Sub TextBox_Seriennummer_Enter()
    114. 'aktivierte Zelle gelb färben
    115. TextBox_Seriennummer.BackColor = vbYellow
    116. End Sub
    117. Private Sub TextBox_Seriennummer_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    118. 'deaktivierte Zelle weiß färben
    119. TextBox_Seriennummer.BackColor = vbWhite
    120. End Sub
    121. Private Sub TextBox_Bundnummer_Enter()
    122. 'aktivierte Zelle gelb färben
    123. TextBox_Bundnummer.BackColor = vbYellow
    124. End Sub
    125. Private Sub TextBox_Bundnummer_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    126. 'deaktivierte Zelle weiß färben
    127. TextBox_Bundnummer.BackColor = vbWhite
    128. End Sub
    129. Private Sub TextBox_Hersteller_Enter()
    130. 'aktivierte Zelle gelb färben
    131. TextBox_Hersteller.BackColor = vbYellow
    132. End Sub
    133. Private Sub TextBox_Hersteller_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    134. 'deaktivierte Zelle weiß färben
    135. TextBox_Hersteller.BackColor = vbWhite
    136. End Sub
    137. Private Sub TextBox_Lieferant_Enter()
    138. 'aktivierte Zelle gelb färben
    139. TextBox_Lieferant.BackColor = vbYellow
    140. End Sub
    141. Private Sub TextBox_Lieferant_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    142. 'deaktivierte Zelle weiß färben
    143. TextBox_Lieferant.BackColor = vbWhite
    144. End Sub
    145. Private Sub TextBox_Rechnungsnummer_Enter()
    146. 'aktivierte Zelle gelb färben
    147. TextBox_Rechnungsnummer.BackColor = vbYellow
    148. End Sub
    149. Private Sub TextBox_Rechnungsnummer_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    150. 'deaktivierte Zelle weiß färben
    151. TextBox_Rechnungsnummer.BackColor = vbWhite
    152. End Sub
    153. Private Sub TextBox_Bemerkung_Enter()
    154. 'aktivierte Zelle gelb färben
    155. TextBox_Bemerkung.BackColor = vbYellow
    156. End Sub
    157. Private Sub TextBox_Bemerkung_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    158. 'deaktivierte Zelle weiß färben
    159. TextBox_Bemerkung.BackColor = vbWhite
    160. End Sub
    161. Private Sub TextBox_Verwaltungskontenrahmen_Enter()
    162. 'aktivierte Zelle gelb färben
    163. TextBox_Verwaltungskontenrahmen.BackColor = vbYellow
    164. End Sub
    165. Private Sub TextBox_Verwaltungskontenrahmen_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    166. 'deaktivierte Zelle weiß färben
    167. TextBox_Verwaltungskontenrahmen.BackColor = vbWhite
    168. End Sub
    169. Private Sub TextBox_Organisationseinheit_Enter()
    170. 'aktivierte Zelle gelb färben
    171. TextBox_Organisationseinheit.BackColor = vbYellow
    172. End Sub
    173. Private Sub TextBox_Organisationseinheit_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    174. 'deaktivierte Zelle weiß färben
    175. TextBox_Organisationseinheit.BackColor = vbWhite
    176. End Sub
    177. Private Sub TextBox_Nutzer_Enter()
    178. 'aktivierte Zelle gelb färben
    179. TextBox_Nutzer.BackColor = vbYellow
    180. End Sub
    181. Private Sub TextBox_Nutzer_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    182. 'deaktivierte Zelle weiß färben
    183. TextBox_Nutzer.BackColor = vbWhite
    184. End Sub
    185. Private Sub TextBox_Standort_Enter()
    186. 'aktivierte Zelle gelb färben
    187. TextBox_Standort.BackColor = vbYellow
    188. End Sub
    189. Private Sub TextBox_Standort_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    190. 'deaktivierte Zelle weiß färben
    191. TextBox_Standort.BackColor = vbWhite
    192. End Sub
    193. Private Sub TextBox_GebäudeNr_Enter()
    194. 'aktivierte Zelle gelb färben
    195. TextBox_GebäudeNr.BackColor = vbYellow
    196. End Sub
    197. Private Sub TextBox_GebäudeNr_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    198. 'deaktivierte Zelle weiß färben
    199. TextBox_GebäudeNr.BackColor = vbWhite
    200. End Sub
    201. Private Sub TextBox_Etage_Enter()
    202. 'aktivierte Zelle gelb färben
    203. TextBox_Etage.BackColor = vbYellow
    204. End Sub
    205. Private Sub TextBox_Etage_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    206. 'deaktivierte Zelle weiß färben
    207. TextBox_Etage.BackColor = vbWhite
    208. End Sub
    209. Private Sub TextBox_RaumNr_Enter()
    210. 'aktivierte Zelle gelb färben
    211. TextBox_RaumNr.BackColor = vbYellow
    212. End Sub
    213. Private Sub TextBox_RaumNr_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    214. 'deaktivierte Zelle weiß färben
    215. TextBox_RaumNr.BackColor = vbWhite
    216. End Sub
    217. Private Sub UserForm_Initialize()
    218. 'Inventarnummer
    219. TextBox_Inventarnummer = ""
    220. 'Bezeichnung
    221. TextBox_Bezeichnung = ""
    222. 'BezeichnungZusatz
    223. TextBox_BezeichnungZusatz = ""
    224. 'Invertarrubrik
    225. ComboBox_Inventarrubrik = ""
    226. With ComboBox_Inventarrubrik
    227. .AddItem "Bedampfungsanlage"
    228. .AddItem "Brutschränke/Brutgeräte"
    229. .AddItem "Bunsenbrenner"
    230. .AddItem "Büroeinrichtung"
    231. .AddItem "Bürotechnik"
    232. .AddItem "Cycler/PCR-Systeme"
    233. .AddItem "Datenverarbeitung"
    234. .AddItem "Dosierkleingeräte"
    235. .AddItem "Druckminderer"
    236. .AddItem "Durchflusszytometer"
    237. .AddItem "Entsorgung"
    238. .AddItem "Erste-Hilfe"
    239. .AddItem "Fahrzeuge"
    240. .AddItem "Filtrationsgeräte"
    241. .AddItem "Fischhälterung"
    242. .AddItem "Folienschweißgeräte"
    243. .AddItem "Fotografiegeräte+Zubehör"
    244. .AddItem "Gelauswertesystem"
    245. .AddItem "Gelgeräte"
    246. .AddItem "Histologie"
    247. .AddItem "Küchengeräte"
    248. .AddItem "Küchenzeile"
    249. .AddItem "Laborhandgeräte"
    250. .AddItem "Labormöbel"
    251. .AddItem "Laborreinigungsgeräte"
    252. .AddItem "Lagerregale"
    253. .AddItem "Leitern"
    254. .AddItem "Messgeräte Labor"
    255. .AddItem "Messgeräte allgemein"
    256. .AddItem "Mikroskope"
    257. .AddItem "Photometer/ELISA-Reader"
    258. .AddItem "Pipetten"
    259. .AddItem "Pipettierhilfen"
    260. .AddItem "Pipettierroboter"
    261. .AddItem "Präsentationsgegenstände"
    262. .AddItem "Reinig.-u. Desinfektionsautomat"
    263. .AddItem "Reinstwasseranlage/Ionenaust."
    264. .AddItem "Rührgeräte"
    265. .AddItem "Schüttelgeräte"
    266. .AddItem "Separator"
    267. .AddItem "Sequenzierungssysteme"
    268. .AddItem "Sicherheitswerkbänke"
    269. .AddItem "Sonstiges"
    270. .AddItem "Sterilisator/Autoklav"
    271. .AddItem "Strahlenschutz"
    272. .AddItem "Stromversorgungsgeräte"
    273. .AddItem "Telekommunikation"
    274. .AddItem "Thermomixer+Wechselblöcke"
    275. .AddItem "Tiefkühlmöbel+Zubehör"
    276. .AddItem "Tierhaltung"
    277. .AddItem "Transportgeräte"
    278. .AddItem "Ultraschallgeräte"
    279. .AddItem "Vakuumpumpen/Kompressor"
    280. .AddItem "Wasserbad/Thermostate"
    281. .AddItem "Weidezaunanlage"
    282. .AddItem "Werkstattausstattung"
    283. .AddItem "Wohnmöbel"
    284. .AddItem "Wäscherei"
    285. .AddItem "Zellaufschlussgeräte"
    286. .AddItem "Zentrifugen+Rotore"
    287. .AddItem "allg. Reinigungsgeräte"
    288. .AddItem "sonst. Heiz-, Wärme-, Kältegeräte"
    289. End With
    290. 'Auftragsnummer
    291. TextBox_Auftragsnummer = ""
    292. 'KostenBrutto
    293. TextBox_KostenBrutto = ""
    294. 'Lieferdatum
    295. TextBox_Lieferdatum.Text = ""
    296. 'Seriennummer
    297. TextBox_Seriennummer = ""
    298. 'Bundnummer / Inventarnummer ALT
    299. TextBox_Bundnummer = ""
    300. 'Hersteller
    301. TextBox_Hersteller = ""
    302. 'Lieferant
    303. TextBox_Lieferant = ""
    304. 'Rechnungsnummer
    305. TextBox_Rechnungsnummer = ""
    306. 'Bemerkung
    307. TextBox_Bemerkung = ""
    308. 'Verwaltungskontenrahmen
    309. TextBox_Verwaltungskontenrahmen = ""
    310. 'Organisationseinheit
    311. TextBox_Organisationseinheit = ""
    312. 'Nutzer
    313. TextBox_Nutzer = ""
    314. 'Standort
    315. TextBox_Standort = ""
    316. 'GebäudeNr
    317. TextBox_GebäudeNr = ""
    318. 'Etage
    319. TextBox_Etage = ""
    320. 'RaumNr
    321. TextBox_RaumNr = ""
    322. End Sub
    Dateien
    Hey

    Normal musst du solche Events immer mit dem "Masken" starten machen.
    Sprich, immer wenn die Userform gestartet wird soll ein Makro abgerufen werden

    VB.NET-Quellcode

    1. Sub Userform_Initialise 'Statt Userform dann warscheinlich Kalender_Maske
    2. 'Auftragsnummer
    3. TextBox_Auftragsnummer = ""
    4. 'KostenBrutto
    5. TextBox_KostenBrutto = ""
    6. 'Lieferdatum
    7. TextBox_Lieferdatum.Text = ""
    8. 'Seriennummer
    9. TextBox_Seriennummer = ""
    10. 'Bundnummer / Inventarnummer ALT
    11. TextBox_Bundnummer = ""
    12. 'Hersteller
    13. TextBox_Hersteller = ""
    14. 'Lieferant
    15. TextBox_Lieferant = ""
    16. 'Rechnungsnummer
    17. TextBox_Rechnungsnummer = ""
    18. 'Bemerkung
    19. TextBox_Bemerkung = ""
    20. 'Verwaltungskontenrahmen
    21. TextBox_Verwaltungskontenrahmen = ""
    22. 'Organisationseinheit
    23. TextBox_Organisationseinheit = ""
    24. 'Nutzer
    25. TextBox_Nutzer = ""
    26. 'Standort
    27. TextBox_Standort = ""
    28. 'GebäudeNr
    29. TextBox_GebäudeNr = ""
    30. 'Etage
    31. TextBox_Etage = ""
    32. 'RaumNr
    33. TextBox_RaumNr = ""
    34. End Sub


    Stat dem Userform musst du den Namen deiner Userform nehmen
    Hey,
    Danke für den Tipp.
    Ich habe es gerade ausprobiert (d.h. ich habe das UserForm_Initialize durch Kalender_Maske_Initialize ersetzt.)

    Leider ändert sich dadurch nichts. Wenn ich Eingabe_Maske starte steht dort das Datum von der vorherigen Maske. (z.b. von der Zubehöreingabe oder Reparatur Maske)

    Oder habe ich dich falsch verstanden?
    Ich klicke auf die Eingabe Buttons im Tabellenblatt: Eingabe und dann auf die Schaltfläche Kalender Starten und da rechts steht das Datum, welches ich mit dem vorherigen Kalender ausgewählt habe.
    Das

    VB.NET-Quellcode

    1. UserForm_Initialize
    bedeutet alle Makros die sich in diesem Sub befinden werden beim starten dieser Userform ausgeführt

    also musst du das Makro bei der Eingabe_Maske_Initialize einfügen

    Also bei der Userform (Eingabe_Masek) folgendes Makro

    VB.NET-Quellcode

    1. Sub Eingabe_Maske_Initialize '
    2. Textbox.text = "" ' Hier halt den Namen der textbox verwenden die leer sein soll
    3. End Sub

    meinst du so?

    Spoiler anzeigen

    Visual Basic-Quellcode

    1. Private Sub Inventar_Eingabe_Maske_Initialize()
    2. 'Inventarnummer
    3. TextBox_Inventarnummer = ""
    4. 'Bezeichnung
    5. TextBox_Bezeichnung = ""
    6. 'BezeichnungZusatz
    7. TextBox_BezeichnungZusatz = ""
    8. 'Invertarrubrik
    9. ComboBox_Inventarrubrik = ""
    10. With ComboBox_Inventarrubrik
    11. .AddItem "Bedampfungsanlage"
    12. .AddItem "Brutschränke/Brutgeräte"
    13. .AddItem "Bunsenbrenner"
    14. .AddItem "Büroeinrichtung"
    15. .AddItem "Bürotechnik"
    16. .AddItem "Cycler/PCR-Systeme"
    17. .AddItem "Datenverarbeitung"
    18. .AddItem "Dosierkleingeräte"
    19. .AddItem "Druckminderer"
    20. .AddItem "Durchflusszytometer"
    21. .AddItem "Entsorgung"
    22. .AddItem "Erste-Hilfe"
    23. .AddItem "Fahrzeuge"
    24. .AddItem "Filtrationsgeräte"
    25. .AddItem "Fischhälterung"
    26. .AddItem "Folienschweißgeräte"
    27. .AddItem "Fotografiegeräte+Zubehör"
    28. .AddItem "Gelauswertesystem"
    29. .AddItem "Gelgeräte"
    30. .AddItem "Histologie"
    31. .AddItem "Küchengeräte"
    32. .AddItem "Küchenzeile"
    33. .AddItem "Laborhandgeräte"
    34. .AddItem "Labormöbel"
    35. .AddItem "Laborreinigungsgeräte"
    36. .AddItem "Lagerregale"
    37. .AddItem "Leitern"
    38. .AddItem "Messgeräte Labor"
    39. .AddItem "Messgeräte allgemein"
    40. .AddItem "Mikroskope"
    41. .AddItem "Photometer/ELISA-Reader"
    42. .AddItem "Pipetten"
    43. .AddItem "Pipettierhilfen"
    44. .AddItem "Pipettierroboter"
    45. .AddItem "Präsentationsgegenstände"
    46. .AddItem "Reinig.-u. Desinfektionsautomat"
    47. .AddItem "Reinstwasseranlage/Ionenaust."
    48. .AddItem "Rührgeräte"
    49. .AddItem "Schüttelgeräte"
    50. .AddItem "Separator"
    51. .AddItem "Sequenzierungssysteme"
    52. .AddItem "Sicherheitswerkbänke"
    53. .AddItem "Sonstiges"
    54. .AddItem "Sterilisator/Autoklav"
    55. .AddItem "Strahlenschutz"
    56. .AddItem "Stromversorgungsgeräte"
    57. .AddItem "Telekommunikation"
    58. .AddItem "Thermomixer+Wechselblöcke"
    59. .AddItem "Tiefkühlmöbel+Zubehör"
    60. .AddItem "Tierhaltung"
    61. .AddItem "Transportgeräte"
    62. .AddItem "Ultraschallgeräte"
    63. .AddItem "Vakuumpumpen/Kompressor"
    64. .AddItem "Wasserbad/Thermostate"
    65. .AddItem "Weidezaunanlage"
    66. .AddItem "Werkstattausstattung"
    67. .AddItem "Wohnmöbel"
    68. .AddItem "Wäscherei"
    69. .AddItem "Zellaufschlussgeräte"
    70. .AddItem "Zentrifugen+Rotore"
    71. .AddItem "allg. Reinigungsgeräte"
    72. .AddItem "sonst. Heiz-, Wärme-, Kältegeräte"
    73. End With
    74. 'Auftragsnummer
    75. TextBox_Auftragsnummer = ""
    76. 'KostenBrutto
    77. TextBox_KostenBrutto = ""
    78. 'Lieferdatum
    79. TextBox_Lieferdatum.Text = ""
    80. 'Seriennummer
    81. TextBox_Seriennummer = ""
    82. 'Bundnummer / Inventarnummer ALT
    83. TextBox_Bundnummer = ""
    84. 'Hersteller
    85. TextBox_Hersteller = ""
    86. 'Lieferant
    87. TextBox_Lieferant = ""
    88. 'Rechnungsnummer
    89. TextBox_Rechnungsnummer = ""
    90. 'Bemerkung
    91. TextBox_Bemerkung = ""
    92. 'Verwaltungskontenrahmen
    93. TextBox_Verwaltungskontenrahmen = ""
    94. 'Organisationseinheit
    95. TextBox_Organisationseinheit = ""
    96. 'Nutzer
    97. TextBox_Nutzer = ""
    98. 'Standort
    99. TextBox_Standort = ""
    100. 'GebäudeNr
    101. TextBox_GebäudeNr = ""
    102. 'Etage
    103. TextBox_Etage = ""
    104. 'RaumNr
    105. TextBox_RaumNr = ""
    106. End Sub


    Habe es ausprobiert, aber wenn ich eine andere Maske über das Tabellenblatt Eingabe anklicke, steht das Datum immer noch da.
    Hmm eventuell reden wir aneinander vorbei :)
    Ich versuch es mal zu verstehen....

    Du hast eine Excel wo 2 Tabellenblätter sind, darauf sind Buttons wo dann Userfromen starten oder ?

    Meine Fragen wären:
    Wieviele Userformen hast du ?
    Auf welcher Userform befindet sich die Textbox die geleert werden soll ?
    wann genau so der "Event" ausgelöst werden das deine Textbox geleert wird ?
    Vielleicht habe ich es auch falsch erklärt, aber so wie du es "gerade" beschrieben hast, ist es richtig.

    Du hast eine Excel wo 2 Tabellenblätter sind, darauf sind Buttons wo dann Userfromen starten oder ?

    Ja, ich habe 2 Tabellenblätter. In Tabellenblatt Eingabe befinden sich 5 Buttons zum Starten von Userformen


    Wieviele Userformen hast du ?

    6, da die Kalender_Maske auch eine Userform ist


    Auf welcher Userform befindet sich die Textbox die geleert werden soll ?

    Auf allen 5 (Kalender_Maske ausgenommen) befindet sich ein CommandButton: "Kalender starten"


    wann genau so der "Event" ausgelöst werden das deine Textbox geleert wird ?

    Immer wenn ich eine Userform öffne, damit es bei der Eingabe der neuen Daten nicht zur "Verwirrung" kommt und man das "neue" Datum vielleicht nicht einträgt.
    Wenn ich das dann richtig verstanden habe müsstest du den Userform_Initialize auf jeder form haben.

    Aber ahcte darauf, wenn du auf eine andere Userform zugreifen willst mit einem Befehl musst du diese Userform auch aufrufen.

    VB.NET-Quellcode

    1. Sub Eingabe_Maske_Initialize '
    2. NAMEUserform1.TextboxNAME.text = " "
    3. NAMEUserform2.TextboxNAME.text = " "
    4. NAMEUserform3.TextboxNAME.text = " "
    5. NAMEUserform4.TextboxNAME.text = " "
    6. NAMEUserform5.TextboxNAME.text = " "
    7. End Sub


    Dieses Makro würde bedeuten, sobald die Userform Eingabe Maske gestartet wird werden auf 5 anderen Userformen die Textboxen geleert
    Moin,
    Danke für deine Hilfe und Mühe.

    Wenn ich das dann richtig verstanden habe müsstest du den Userform_Initialize auf jeder form haben.

    Ja habe ich, siehe "kurz" (… = manches rausgelassen, weil es zu lang wäre) Spoiler:

    Spoiler anzeigen

    Visual Basic-Quellcode

    1. Inventar_Eingabe_Maske
    2. Private Sub Inventar_Eingabe_Maske_Initialize()
    3. 'Inventarnummer
    4. TextBox_Inventarnummer = ""
    5. 'Bezeichnung
    6. TextBox_Bezeichnung = ""
    7. 'BezeichnungZusatz
    8. TextBox_BezeichnungZusatz = ""
    9. 'Lieferdatum
    10. TextBox_Lieferdatum.Text = ""
    11. End Sub
    12. ----------------------------------------------------------------------------
    13. Zubehör_Maske
    14. Private Sub UserForm_Initialize()
    15. 'Kaufdatum des Zubehörs
    16. TextBox_KaufdatumDesZubehörs = ""
    17. End Sub
    18. ----------------------------------------------------------------------------
    19. WartungsDurchsichts_Maske
    20. Private Sub UserForm_Initialize()
    21. 'Wartungs- / Durchsichtsdatum
    22. TextBox_WartungsDurchsichtsdatum = ""
    23. End Sub
    24. ---------------------------------------------------------------------------
    25. Reparatur_Maske
    26. Private Sub UserForm_Initialize()
    27. 'Reparatur Datum
    28. TextBox_ReparaturDatum = ""
    29. End Sub
    30. ----------------------------------------------------------------------------------------------
    31. Aussonderungs_Maske
    32. Private Sub UserForm_Initialize()
    33. 'TagDerBeräumung
    34. TextBox_TagDerBeräumung.Text = ""
    35. ...
    36. End Sub


    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Oder ist mein Code an dieser Stelle "schlichtweg" falsch, sodass es nicht funktionieren kann.


    Folgendes habe ich gemacht:

    1. den Code in den vorhandenen Text einzubauen: ohne Erfolg
    2. Inventar_Eingabe_Maske_Inititialize "ausgeschnitten" und an den Anfang wieder eingefügt: ohne Erfolg.
    3. Deinen Code in die Tabelle2 (Eingaben) eingefügt: ohne Erfolg
    4. Deinen Code in diese Arbeitsmappe eingefügt: ohne Erfolg
    5. Neues Modul eingefügt: Eingaben; und dieses Makro meinem vorhandenen Button: Eingabe starten zugewiesen: ohne Erfolg, da ich manches nicht definiert hatte und er mein eigentliches Eingabefenster nicht mehr aufrief.
    6. Auf dem Tabellenblatt: Eingaben, einen neuen Button: Eingaben Starten erstellt: mit Erfolg.

    Nun ist nur das Problem, dass die Personen, die die Eingaben später machen, immer zuerst auf den "neuen Button: Eingaben starten" drücken müssten und dann auf z.B. den Button Inventareingabe starten (vorher hieß der Button: "Eingabe starten") Kann ich deinen Code irgendwie anders in meine ...initialize unterbringen, damit es funktioniert?

    Oder kann man die ersten Button mit den Makros auch mit dem neuen Button verbinden?
    Ich meine: Wenn ich den Button Eingaben starten anklicke, dass dann die anderen Button erscheinen und ich für die jeweilige Eingabe den jeweiligen Button drücke.

    Das wäre dann zwar ein Button mehr, aber sonst bin ich mit meinem Latein am Ende.
    Ich habe sogar die ...Initialize() an den Anfang gesetzt, weil ich dachte, dass die Reihenfolge, wie ich programmiere, auch wichtig ist.


    Aber achte darauf, wenn du auf eine andere Userform zugreifen willst mit einem Befehl musst du diese Userform auch aufrufen.

    Wie genau meinst du das?
    Eine Verbindung mit einem Makro herstellen, wie ich das schon versucht habe?

    Vielen Dank für Deine Hilfe und Mühe

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „Johanne“ ()

    Neu

    Ok scheinbar hatte ich einen Wurm drin, Excel ist schon etwas her

    Mach es einfach mit folgendem makro

    VB.NET-Quellcode

    1. Private Sub UserForm_Initialize()
    2. Msgbox "Dieses Makro kommt wenn die Form geöffnet wird"
    3. End Sub


    Egal wie die Form heisst, sobald der Private Sub UserForm_Initialize() in dieser Form steht wird auch das Makro das sich darin befindet abgerufen.

    Hab es gerade selber getestet ;)

    Oder kann man die ersten Button mit den Makros auch mit dem neuen Button verbinden?

    Ich meine: Wenn ich den Button Eingaben starten anklicke, dass dann die
    anderen Button erscheinen und ich für die jeweilige Eingabe den
    jeweiligen Button drücke.


    Wenn du ein Makro für mehr Buttons nehmen willst erstelle ein Modul und setzte den Sub auf Public und nicht auf Private

    VB.NET-Quellcode

    1. Public Sub Test()
    2. Msgbox "Ich bin in jeder Form Verfügbar"
    3. End Sub


    Wenn du jetzt deinen Button Sub oder Initialize sub auf der Userform hast kannst du dieses Makro gant einfach abrufen mit Call

    VB.NET-Quellcode

    1. Private Sub UserForm_Initialize()
    2. 'Es wird das Makro Test abgerufen und ausgeführt
    3. Call Test
    4. End Sub
    5. '---------------------
    6. Private Sub Button_Eingabe_Click()
    7. 'Es wird das Makro Test abgerufen und ausgeführt
    8. Call Test
    9. End Sub


    Gewöhn
    dir am besten an wenn du mit Userformen arbeitest bestimmte Makros die
    du öfters aufrufen musst in ein Modul als Public zu setzen

    Erspart dir eine große schreib und kopier arbeit

    Was
    ich auch gerne mache wenn ich zb. wie bei dir Userform initialize habe,
    schreibe ich nicht gleich mein Makros rein sondern immer nur eine
    Messagebox, dann sehe ich sofort ob alles passt

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Animal2k“ ()

    Neu

    Moin,

    ich habe dein erstes Makro in einer leeren Maske ausprobiert und es funktioniert.

    Dein zweites Makro für die mehreren Buttons konnte ich auch übernehmen und es funktioniert.

    Unten verlinke ich meine Maske, dann kannst du dir die Änderung angucken.

    Button Makro: Start der Eingaben (im Modul)
    Spoiler anzeigen

    Visual Basic-Quellcode

    1. Option Explicit
    2. Public Sub Userform1Starten()
    3. 'Ein Tabellenblatt Aktivieren
    4. Worksheets("Inventar").Activate
    5. 'Start_Maske starten
    6. Start_Maske.Show
    7. End Sub
    8. Public Sub Inventar_Eingabe_Maske_Initialize()
    9. 'TextBox_Lieferdatum in Inventar_Eingabe_Maske leeren
    10. Inventar_Eingabe_Maske.TextboxLieferdatum.Text = ""
    11. End Sub
    12. Public Sub Zubehör_Maske_Initialize()
    13. 'TextBox_KaufdatumDesZubehörs in Zubehör_Maske leeren
    14. Zubehör_Maske.TextBox_KaufdatumDesZubehörs.Text = ""
    15. End Sub
    16. Public Sub WartungsDurchsichts_Maske_Initialize()
    17. 'TextBox_WartungsDurchsichtsdatum_Maske in WartungsDurchsichts_Maske leeren
    18. WartungsDurchsichts_Maske.TextBox_WartungsDurchsichtsdatum.Text = ""
    19. End Sub
    20. Public Sub Reparatur_Maske_Initialize()
    21. 'TextBox_ReparaturDatum in Reparatur_Maske leeren
    22. Reparatur_Maske.TextBox_ReparaturDatum.Text = ""
    23. End Sub
    24. Public Sub Aussonderungs_Maske_Initialize()
    25. 'TextBox_TagDerBeräumung in Aussonderungs_Maske leeren
    26. Aussonderungs_Maske.TextBox_TagDerBeräumung.Text = ""
    27. End Sub
    28. Public Sub Kalender_Maske_Initialize()
    29. 'TB_Datum1 in Kalender_Maske leeren
    30. Kalender_Maske.TB_Datum1.Text = ""
    31. End Sub



    Start Maske (bei den Formularen)
    Spoiler anzeigen

    Visual Basic-Quellcode

    1. Option Explicit
    2. Private Sub Button_InventareingabeStarten_Click()
    3. 'Inventar_Eingabe_Maske aufrufen
    4. Inventar_Eingabe_Maske.Show
    5. End Sub
    6. Private Sub Button_ZubehöreingabeStarten_Click()
    7. 'Zubehör_Maske starten
    8. Zubehör_Maske.Show
    9. End Sub
    10. Private Sub Button_WartungsDurchsichtseingabeStarten_Click()
    11. 'WartungsDurchsichts_Maske aufrufen
    12. WartungsDurchsichts_Maske.Show
    13. End Sub
    14. Private Sub Button_ReparatureingabeStarten_Click()
    15. 'Reparatur_Maske aufrufen
    16. Reparatur_Maske.Show
    17. End Sub
    18. Private Sub Button_AussonderungseingabeStarten_Click()
    19. 'Aussonderungs_Maske aufrufen
    20. Aussonderungs_Maske.Show
    21. End Sub
    22. Private Sub Button_Schliessen_Click()
    23. 'Start_Maske schliessen
    24. Unload Start_Maske
    25. End Sub




    Das mit dem Call hat nur in einer leeren Maske funktioniert, nicht aber in meiner Maske. Das liegt aber vermutlich daran, weil ich etwas
    falsch gemacht habe.

    Ich hatte gedacht, wenn ich einen Extra Button mache, der die anderen Buttons „aufruft“ dann würde sich das Problem mit der „gefüllten“ TextBox erledigen, aber dem ist leider nicht so.

    Wenn ich den Eingabe Button anklicke, dann kommt wie gewünscht die „neue“ Maske mit den Buttons. Dann klicke ich auf Inventareingabe
    starten und es kommt wie gewünscht die Eingabemaske. Hier wähle ich dann mit dem Button „Kalender starten“ ein Datum aus, welches ich mit Datum übernehmen in die Maske einfüge. Als nächstes klicke ich auf Eingeben (es kommt eine MsgBox mit Eingabe erfolgreich) und dann auf Schließen. Die Eingaben sind übernommen und ich wähle die nächste Maske aus. Hier ist die TextBox rechts neben dem
    Button „Kalender starten“ dann mit dem vorherigen Datum belegt. Wenn ich diese Maske ohne Eingaben über den Button Schließen schließe, und dann wieder öffne ist das Datum weg und die TextBox leer. So wie es eigentlich sein soll.

    Irgendwo steckt da noch der Wurm drin.



    Gewöhn dir am besten an wenn du mit Userformen arbeitest bestimmte Makros die du öfters aufrufen musst in ein Modul als Public zu setzen
    Erspart dir eine große schreib und kopier arbeit



    Werde ich versuchen umzusetzen. Für mich ist nur noch nicht so ganz klar, wie das dann funktioniert.

    In meiner jetzigen Maske rufe ich über 5 Userformen die Kalendermaske auf. Eigentlich wäre das ja genau der richtige Zeitpunkt, den Kalender als Modul zu setzen, oder? Oder ist es ehr Unsinn, die 4 Zeilen womit der Kalender aufgerufen wird in ein Modul zu verpacken. Werde es aber probieren.

    Das sind dir 4 Zeilen:

    Visual Basic-Quellcode

    1. Private Sub Button_KalenderStarten_Click()
    2. 'Kalender_Maske starten
    3. Kalender_Maske.Show
    4. End Sub



    Was ich auch gerne mache wenn ich zb.
    wie bei dir Userform initialize habe, schreibe ich nicht gleich mein Makros rein sondern immer nur eine Messagebox, dann sehe ich sofort ob alles passt


    Schreibst du dann deinen Code immer über die Zeile mit der MsgBox, damit sie bei jeder Probe dann noch aufpoppt? Das ist noch nicht ganz klar.



    Auch wenn ich als Anfänger noch "viel" zu lernen habe, was VB angeht, es macht Spaß und wenn man jem. hat, er einem Sachen erklärt und die dann logisch werden oder man durch die Tipps und probieren erfolge erzielt, ist es noch viel schöner.
    Danke für deine Mühe und Geduld.
    Dateien

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Johanne“ ()