Office: Makroerweiterung um eine kleine Userformabfrage

Helfe beim Thema Makroerweiterung um eine kleine Userformabfrage in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo liebe Mitglieder, vor ein paar Monaten wurde mir geholfen aus einer Excel-Datenbank (bzw. Liste), automatisch eine Rechnung zu generieren. In... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von N123456789, 18. Februar 2012.

  1. N123456789 Erfahrener User

    Makroerweiterung um eine kleine Userformabfrage


    Hallo liebe Mitglieder,

    vor ein paar Monaten wurde mir geholfen aus einer Excel-Datenbank (bzw. Liste), automatisch eine Rechnung zu generieren. In der Liste befinden sich Stammdaten wie Name, Rechnungsnummer, Kundennummer, Stunden, Stundensatz etc.
    In einem weiteren Spreadsheet ist dann das Layout der Rechnung. Durch das folgende Makro wurden erfolgreich die Daten in das Layout kopiert.
    Doch wie es im Leben so ist, ändern sich mit der Zeit einfach die Anforderungen. Ich hatte bislang pro Rechnung nur einen Posten aufgeführt. Somit war der Excel-gesteuerte Vorgang recht einfach (Kopiere von A nach B). In letzter Zeit kommen aber des öfteren immer die selben Posten dazu. Deshalb würde ich gerne das Makro erweitern. Mein erster Gedanke war dann, eine Userform mit Checkboxabfrage einzubauen. Die Userform kann z.B. 3 Checkboxen und 2 Command-buttons (OK u. Abbrechen) beinhalten.

    Checkbox 1 steht für die Berechnung der Anreise
    Checkbox 2 steht für die Berechnung der Abreise
    Checkbox 3 steht für die Berechnung sonstiger Posten

    Jetzt erst einmal der Code

    Hier sieht man unten die verschiedenen "case" ich hab versucht durch die Ergänzung von kommentaren sichtbar zu machen was gerade passiert.

    Ok jetzt zum Problem: Vom logischen und gestalterischen Ablauf her, muss die Berechnung der Anreise vor die eigentliche Leistung. Die Anreise an sich, ist aber variabel und nicht Teil von jeder Rechnung. Somit würde ja die Zeile mit der die Rechnung beginnt (also die Aufzählung der Posten) variieren. Bei dem Kopiervorgang der Zellen (unten) seht ihr dass der Ort an den die Information kopiert wird, klar definiert ist. Das macht es zum Problem wenn ich davor aber noch was "einschieben" will. Im prinzip will ich durch die Checkboxabfrage sagen: kopiere zwar immer noch in die selbe spalte, aber jetzt eben eine zeile darunter. Quasi als Rechnungsposten Nr.2. Posten Nr. 1 (durch die Checkboxangewählt) ist ja nun die Anreise und damit verbunden bedeutet es dass in den spalten C bis H immer die selben werte reinkommen.

    Ich hoffe es ist nicht so verwirrened.

    Code:
    Option Explicit
    
     Sub Rechnung()
    
    ' Variablendeklaration
    
        Const w = 3
        Const t1 = "Liste"
        Const t2 = "Übersicht"
    
        Dim w1 As Worksheet
        Dim w2 As Worksheet
        Dim w3 As Worksheet
        Dim s As String
        Dim y1 As Long
        Dim x1 As Long
        Dim y2 As Long
        Dim x2 As Long
        Dim n As Long
        Dim jn As Long
        
        Set w1 = Worksheets("Kundendatenbank")
        Set w2 = Worksheets("Kundenrechnung")
    
    
    ' Makrobeginn mit der Zeilenabfrage über die Inputbox
    
        s = InputBox("Rechnungs - relevante ZEILE?", "RECHNUNG")
        If (s <> "") Then 'es wurde nicht "abbruch" oder [x] angeklickt
    Sheets("Kundendatenbank").Select
            y1 = Val(s)
            If (y1 > 0) Then 'es wurde ein gültiger zahlenwert eingegeben
    
                jn = MsgBox("Soll alles kopiert werden?", vbOKCancel, "Kopieren?")
                
                 If (jn = vbOK) Then
                 
                 
                 
                 
                 
      
                
          
        'ABFRAGE VON OBEN ANFANGEN evtl. hier her????
          
          
          ' Kopiervorgang der einzelnen Zellen
          
                For n = 1 To 13
                    Select Case n
                        Case 1: 'Rechnungsnummer Nummer
                            x1 = 3: y2 = 21: x2 = 4
                        Case 2: 'Kundennummer
                            x1 = 5: y2 = 27: x2 = 3
                        Case 3: ' Bezüglich
                            x1 = 10: y2 = 27: x2 = 5
                        Case 4: ' Geboren
                            x1 = 11: y2 = 27: x2 = 6
                        Case 5: 'Datum
                            x1 = 21: y2 = 27: x2 = 7
                        Case 6: ' Fahrkosten Ergebnis
                            x1 = 19: y2 = 31: x2 = 7
                        Case 7: ' Hotel Ergebniss
                            x1 = 20: y2 = 333: x2 = 7
                        Case 8: ' Verpflegung
                            x1 = 18: y2 = 35: x2 = 7
                        Case 9: ' Sonstiges
                            x1 = 12: y2 = 37: x2 = 7
                        Case 10: ' Netto 3er Block
                            x1 = 7: y2 = 40: x2 = 7
                        Case 11: ' Mwst. 3er Block
                            x1 = 6: y2 = 41: x2 = 7
                        Case 12: ' Rechnungsumme 3er Block
                            x1 = 8: y2 = 43: x2 = 7
                        Case Else: 'mehr "w" als "case"
                            x1 = 0
                            MsgBox "OK"
                    End Select
                    If (x1 > 0) Then
                          w1.Cells(y1, x1).Copy
                        w2.Cells(y2, x2).PasteSpecial Paste:=xlPasteValues
                        w3.Cells(y2, x2).PasteSpecial Paste:=xlPasteValues
    
                    End If
                Next n
    
                w2.Activate
    
              Else
                MsgBox "Bitte Ganz genau die Zeile überprüfen!!!"
    
            End If
    
              Else
                MsgBox "Falsches Makro???"
    
        End If
    End If
    
    End Sub
     
    N123456789, 18. Februar 2012
    #1
  2. N123456789 Erfahrener User
    Hier ist eine Beispiel-Datei um evtl. das Verständnis zu erleichtern
     
    N123456789, 18. Februar 2012
    #2
  3. N123456789 Erfahrener User
    Keiner eine Idee? mit hilfe eines anderen Forums bin ich bislang soweit gekommen...
    OK hier ist einmal eine Bsp. Datei mit allen Makros die ich bisher habe.

    jetzt noch einmal zur Funktion:

    1) Das Makro "Rechnungserstellung" greift auf die Datenbank im Spreadsheet "Kundendatenbank" zu.

    2) über das Auswählen der relevanten Zeile (hier gibt es Zeile 5 u. 6 als Dummy-Dateien) holt sich Excel dann die Informationen die Kopiert werden sollen.

    3) Die Ausgabe erfolgt in einem Spreadsheet welches "Kundenrechnung" heißt

    4) zwischen dem Kopieren und dem Ausgeben soll nun eine Abfrage über die Userform1 entstehen

    5) Die Abfrage beschäftigt sich mit der Fragestellung: Kommen weitere Rechnungsposten hinzu? Wenn ja, welche? Die "Zusatzkosten belaufen sich nur auf Anfahrts- u. Abfahrtskosten. Um einen logischen Aufbau zu haben beginne ich in der regel so:
    Anfahrt
    Hauptleistung (wird aus der Datenbank kopiert)
    Abfahrt

    6) Die Anfahrt ist aber nicht immer dabei. Manchmal ist aber auch nur eins von den Beiden berechenbar. Somit wäre es schön wenn wir eine Abfrage einbauen könnten die Egal bei welchem Häkchen ich etwas Setze, immer oben beginnt u. immer in der Reihenfolge (Anfahrt, Hauptleistung, Abfahrt).

    7) Was in diesem Zug auch gleich noch super wäre, ist eine automatische "Positions-Nr." - Vergebung.

    8) Wenn es jetzt zu "Exoten" - Rechnungsposten kommt, Tippe ich sie von Hand ein. Es wäre aber auch hier schön eine Abfrage zu integrieren in der ich gleich alles eingeben kann ( z.B. ein weiteres Häkchen in die Userform1 welches "Exoten" heißt. Und sobald ich jenes Häckchen anklicke wird mir nach dem Bestätigen von "OK" ein Fenster aufgemacht dass nach Datum, Bezeichnung, etc. etc. fragt. Die eingegebenen Werte werden dann einfach automatisch aufgeführt.

    Punkt nr. 8 ist aber erst mal nicht so wichtig.

    Wenn mir jetzt auch noch so tatkräftig weiter geholfen werden könnte wäre alles wirklich super.

    Vielen Dank im Vorraus
     
    N123456789, 23. Februar 2012
    #3
Thema:

Makroerweiterung um eine kleine Userformabfrage

Die Seite wird geladen...
  1. Makroerweiterung um eine kleine Userformabfrage - Similar Threads - Makroerweiterung kleine Userformabfrage

  2. Prozentuale Berechnung UND kleiner als

    in Microsoft Excel Hilfe
    Prozentuale Berechnung UND kleiner als: Hallo, ich suche nach eine Formel für folgende Aufgabe. Drehbuchhonorar ist an das Gesamtbudget geknüpft. Es ist 2,5% des Gesamtbudget darf aber 100.000EUR nicht überschreiten soll aber...
  3. Formel wenn Summe kleiner als null, dann null

    in Microsoft Excel Hilfe
    Formel wenn Summe kleiner als null, dann null: Hallo liebe Community! Ich benötige Hilfe bei der Erstellung einer Formel: G26+G29-G30 (in der Zelle G30 steht minus € 13,20) Wenn die Summe eine kleinere Zahl als Null ergibt, soll in G31 Null...
  4. kleines Fenster "(Strg)" geht einfach nicht weg!!!

    in Microsoft Word Hilfe
    kleines Fenster "(Strg)" geht einfach nicht weg!!!: Hallo, immer wieder kommt dieses kleine beschi**ene Fenster, wenn ich etwas einfüge. Dann direkt da, wo ich weiter schreiben will. Es ist zum ausrasten!!! Any help???
  5. Datenexport wenn Kriterium Datum gleich, oder kleiner als erfüllt ist...

    in Microsoft Excel Hilfe
    Datenexport wenn Kriterium Datum gleich, oder kleiner als erfüllt ist...: Hallo zusammen, nachdem ich lange zeit mit einer Handvoll Formeln ausgekommen bin, gegebenenfalls diese ein wenig modifiziert habe, stehe ich jetzt auf dem Schlauch...(bzw. bin nicht so...
  6. kleines Problem beim erstellen von serienbriefen per vba

    in Microsoft Excel Hilfe
    kleines Problem beim erstellen von serienbriefen per vba: Hallo Zusammen ich habe letztes Jahr mit Hilfe eines Forums einen VBA Code erstellt mit dem ich Serienbriefe aus einer Exceldatei erstellen kann. Jetzt habe ich das Sheet in Excel angepasst und...
  7. Brüche mit kleinen Bruchzahlen

    in Microsoft Excel Hilfe
    Brüche mit kleinen Bruchzahlen: Hallo zusammen, ich suche eine Lösung, Brüche in Excel mit kleinen Bruchzahlen darzustellen - ähnlich wie bei der Autokorrektur in Word. Zur Illustration eine kleine Beispieldatei mit allen...
  8. Abfrage erstellen mit dem kleinsten Wert

    in Microsoft Access Hilfe
    Abfrage erstellen mit dem kleinsten Wert: [IMG]
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden