[Visual Basic] erneute Abfrage

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von DeSmAn, 23. März 2012 .

  1. 23. März 2012
    erneute Abfrage

    Hallo liebe RRler,

    Ich habe ein kleines Problem und zwar habe ich in Excel zwei Arbeitsblätte auf dem ersten sind Artikelnummer, Bezeichnung und Preise ausgelistet. Auf dem zweiten möchte ich durch ein Sub eine Rechnung erstellen.

    das habe ich soweit auch schon hinbekommen nur jetzt bin ich faul und möchte nicht jedes mal das Sub neu starten und wollte eine Schleife einbauen die mich nach der ersten Artikelnummer fragt ob ich noch weitere Artikel hinzufügen möchte.

    ich habe mich auch mal dran versucht wäre nett wenn ich mir meinen Fehler aufzeigen könnten.

    Danke schon mal im vorraus

    Code:
    Option Explicit
    Sub ErstelleRechnung_2()
    Dim Artikelnummer As Double
    Dim i As Integer
    Dim Löschen As String
    Dim e As Integer
    Dim Summe As Double
    Dim neuerArtikel As String
    
    i = 4
    e = 4
    
    Löschen = "n"
    Löschen = MsgBox("Wollen Sie die Dateinsätze löschen?", vbYesNo, "Löschen")
    
    If Löschen = vbYes Then
     Range(Worksheets("Rechnung").Cells(4, 1), Worksheets("Rechnung").Cells(36, 6)).Select
     Selection.ClearContents
    End If
    
    Artikelnummer = InputBox("Geben Sie die gewünschte Artikelnummer ein: ", "Artikelnummer")
    
    While Artikelnummer <> ""
    
     While Worksheets("Artikel").Cells(i, 2) <> Artikelnummer
     i = i + 1
     Wend
    
     While Worksheets("Rechnung").Cells(e, 3) <> ""
     e = e + 1
     Wend
     
     If Worksheets("Rechnung").Cells(e, 4) = "" Then
     Summe = Worksheets("Artikel").Cells(i, 4)
     Else
     Summe = Sheets("Artikel").Cells(i, 4) + Worksheets("Rechnung").Cells(e + 1, 4)
     End If
     
     If Worksheets("Rechnung").Cells(e - 1, 3) <> "Artikel" Then
     Range(Worksheets("Rechnung").Cells(e - 1, 3), Worksheets("Rechnung").Cells(e - 1, 4)).Select
     Selection.ClearContents
     
     Worksheets("Rechnung").Cells(e - 1, 3) = Worksheets("Artikel").Cells(i, 3)
     Worksheets("Rechnung").Cells(e - 1, 4) = Worksheets("Artikel").Cells(i, 4)
     
     Worksheets("Rechnung").Cells(e, 3) = "Summe"
     Worksheets("Rechnung").Cells(e, 4) = Summe
     Else
     Worksheets("Rechnung").Cells(e, 3) = Worksheets("Artikel").Cells(i, 3)
     Worksheets("Rechnung").Cells(e, 4) = Worksheets("Artikel").Cells(i, 4)
     
     Worksheets("Rechnung").Cells(e + 1, 3) = "Summe"
     Worksheets("Rechnung").Cells(e + 1, 4) = Summe
     End If
     
     neuerArtikel = MsgBox("Wollen Sie noch einen Artikel eingeben?", vbYesNo, "Neuer Artikel")
     
     If neuerArtikel = vbYes Then
     Artikelnummer = InputBox("Geben Sie die gewünschte Artikelnummer ein: ", "Artikelnummer")
     Else
     Artikelnummer = ""
     End If
     
    Wend
    
    End Sub
    
    MFG DeSmAn
     
  2. 26. März 2012
    AW: erneute Abfrage

    Was genau bezweckst Du damit? Steig da grad nich so ganz durch. Vielleicht wärs besser, Du erklärst Deinen Code mal und stellst Biespielbilder von Deiner Excel mit rein.

    Greetz
     
  3. 26. März 2012
    AW: erneute Abfrage

    Was ist denn das Problem mit dem Code? Die Schleife sieht für mich ziemlich korrekt aus und sollte auf den ersten Blick das tun, was du möchtest.

    Hmm, ich sehe grade, dass du Artikelnummer als Double deklariert hast. Bei der Schleife checkst du ob das == "" ist (was ein String ist), genauso, wie du der Variable bei einem "Weitere Artikel Nein" auch "" zuweist. Gibt es also einen Typfehler?
    Wenn ja: Nimm z.b. -1 als Artikelnummer zum Abbrechen und keine leeren Strings
    Wenn nicht: Sag doch bitte genauer, wo das Problem liegt^^
     
  4. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.