Thema Datum  Von Nutzer Rating
Antwort
28.09.2010 19:42:35 Thomas
NotSolved
Blau Aw:VBA - diverse probleme
29.09.2010 08:25:12 Severus
NotSolved
29.09.2010 08:54:33 Severus
NotSolved

Ansicht des Beitrags:
Von:
Severus
Datum:
29.09.2010 08:25:12
Views:
804
Rating: Antwort:
  Ja
Thema:
Aw:VBA - diverse probleme
Thomas schrieb am 28.09.2010 19:42:35:

Hallo!

In gut 3 Wochen habe ich mein Nachabitur in meinem Projekt. Da auch ein Teil unserer Aufgaben darin bestand eine VBA Lösung zu erstellen, ist das natürlich auch für die Prüfung relevant und ich habe leider nicht so wirklich eine Ahnung davon, da ich der BWL-Spezialist der Gruppe war.

Hier nun mein Problem. Es geht um einen Kassabericht, den ich fertigstellen muss.

Die Aufgabe lautet.

Mit der Schalfläche "übernehmen" sollen die Date in den Worksheet ("Kassabericht") übergeben werden und in die entsprechenden Zellen übernommen werden. Beachte dabei, dass die ersten 3 Zeilen schon Einträge aufweisen. Am Erfassungsformular (User-Form) soll automatisch die nächste Belegnummer angezeigt werden.
Das Formular und die entsprechenden VBA-Anweisungen sind zu erstellen!!!

[IMG]http://foto.arcor-online.net/palb/alben/27/1059027/6561383937643265.jpg[/IMG]

Hier noch ein Foto zur besseren Orientierung! Ich hoffe ihr könnt mit hier weiterhelfen!


FOLGENDES HABE ICH BIS JETZT mit etwaigen Internethilfen geschaft, aber es kommt trotzdem eine Fehlermeldung

Dim Datum As Single
Dim Beleg As Single
Dim Text As Single
Dim Brutto As Single
Dim MWSt As Single
Dim Steuersatz As Single

Datum = txt_datum
Beleg = txt_beleg
Text = txt_text
Brutto = txt_brutto
MWSt = txt_MWSt

If opt_0 = True Then
MWSt = 0
Steuersatz = 0
End If


If opt_10 = True Then
MWSt = txt_brutto * 0.1
Steuersatz = 10
End If


If opt_20 = True Then
MWSt = txt_brutto * 0.2
Steuersatz = 20
End If

If opt_einnahme = True Then

Dim NZeile As Integer
Do
NZeile = NZeile + 1
Loop Until Worksheets("Kassabericht").Cells(NZeile, 1).Value = ""

With Worksheets("Kassabericht")

.Cells(NZeile, 1).Value = NZeile - 1
.Cells(NZeile, 2).Value = Datum
.Cells(NZeile, 3).Value = Beleg
.Cells(NZeile, 4).Value = Text
.Cells(NZeile, 5).Value = Steuersatz
.Cells(NZeile, 6).Value = Brutto
.Cells(NZeile, 7).Value = MWSt

Else: opt_ausgabe = True
Do
NZeile = NZeile + 1
Loop Until Worksheets("Kassabericht").Cells(NZeile, 1).Value = ""

With Worksheets("Kassabericht")

.Cells(NZeile, 1).Value = NZeile - 1
.Cells(NZeile, 2).Value = Datum
.Cells(NZeile, 3).Value = Beleg
.Cells(NZeile, 4).Value = Text
.Cells(NZeile, 5).Value = Steuersatz
.Cells(NZeile, 8).Value = Brutto
.Cells(NZeile, 9).Value = MWSt

End If

Hi Thomas,
zunächst solltest Du die unnötige Schleife
Do
NZeile = NZeile + 1
Loop Until Worksheets("Kassabericht").Cells(NZeile, 1).Value = ""

durch

NZeile = ThisWorkbook.Sheets("Kassabericht").Range("A65536").End(xlUp).Row + 1

ersetzen und das vor die If - Else Entscheidung setzen.

Zum Anderen sind mir Deine Deklarartionen nicht so ganz klar

Dim Datum As Single -> Dim Datum As Date
Dim Text As Single ???
Das "Dim Text" deutet doch daraus hin, daß es sich um Text handelt, oder? Warum also die Deklaration als "Single"?
Dann vermute ich, daß es sich bei den "txt_" Zeichenfolgen um Textboxen Deiner UserForm handelt. Textboxen haben, wie der Name sagt, als Rückgabewert zunächst einen Text. Wenn es sich dabei um Zahlen handelt, müsstest Du entweder
Datum = txt_datum.Value
verwenden oder, sicherer,
Datum = CDate(txt_datum)
Beleg = CSng(txt_beleg)
MWSt = CSng(txt_brutto) * 0.1

Außerdem wäre es natürlich hilfreich, wenn Du sagen wüdest wo die Fehlöermeldung auftritt und wie sie lautet.

Severus

Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
28.09.2010 19:42:35 Thomas
NotSolved
Blau Aw:VBA - diverse probleme
29.09.2010 08:25:12 Severus
NotSolved
29.09.2010 08:54:33 Severus
NotSolved