Office: (Office 2010) Hilfe bei Makro schreiben

Helfe beim Thema Hilfe bei Makro schreiben in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo zusammen Ich wollte mir ein kleines Tool zum Basteln meiner monatlichen Provisionen basteln. Ich habe eine Excel Mappe mit folgenden... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von SaarVampire, 2. Juli 2015.

  1. Hilfe bei Makro schreiben


    Hallo zusammen

    Ich wollte mir ein kleines Tool zum Basteln meiner monatlichen Provisionen basteln.

    Ich habe eine Excel Mappe mit folgenden Datenblätter:

    1. Gunddaten
    2. Vertragsprovision
    3. Gesamtübersicht.

    Das Datenblatt 1 "Grunddaten" ist unveränderlich und bietet nur fixe Werte für die Berechnung auf Datenblatt "Vertragsprovision"
    Das Datenblatt 2 "Vertragsprovision" ist soweit mit formeln hinterlegt, dass mir am Ende der Seite die Provision für den "aktuellen" Vertrag angezeigt wird.
    Jetzt kommt es:
    Das Datenblatt 3 "Gesamtübersicht" soll mir eine Auflistung aller Verträge anzeigen:

    Nachdem ich auf dem Datenblatt "Vertragsprovision" alle Daten befüllt habe, soll per Klick auf einen Button folgendes geschehen:
    1. Vertragsprovision!C38 soll übernommen werden nach Gesamtübersicht!B3
    2. Vertragsprovision!C40 soll übernommen werden nach Gesamtübersicht!C3
    3. Vertragsprovision!C5 soll übernommen werden nach Gesamtübersicht!D3
    4. Vertragsprovision!I7 soll übernommen werden nach Gesamtübersicht!E3
    5. Vertragsprovision!D35 soll übernommen werden nach Gesamtübersicht!F3
    6. Das Feld Gesamtübersicht A3 soll mit einem Zeitstempel tt.mm.jj versehen werden.
    7. Nach Übernahme der vorangenannten Daten soll eine neue Zeile oberhalb eingefügt werden, damit die Zeile 3 für den Nächsten Datensatz wieder frei ist. Die zuvor übernommen
    Daten sollen quasi mit jedem neuen Datensatz nach unten verschoben werden.

    Leider bin ich zwar mit Excel sehr fit, aber mit Makro und Buttons, die Makro-Abläufe anstoßen kenne ich mich leider gar nicht aus. Es wäre daher nett, wenn mir jemand ein fertiges Script senden kann, dass ich nur noch einpflegen muss und mir kurz erklären wie ich einen Button erstelle und diesen mit dem Makro-Skript verknüpfe.

    Vielen Dank für Eure Hilfe.
     
    SaarVampire, 2. Juli 2015
    #1
  2. Chrischi305
    Chrischi305 Erfahrener User
    Hallo, dein erstelltes Problem kannst du auch mit dem Makrorekorder lösen. Diesen findest du im Reiter "Entwicklertools". Sollte dieser Reiter nicht in deinem Menüband vorhanden sein, so musst du ihn unter Optionen aktivieren (Menüband anpassen). In Entwicklertools kannst du auch Buttons erstellen und diese mit einem Makro belegen. Der Makrorekorder funktioniert recht einfach, den Rekorder starten, deine o.g. Wünsche direkt in den Tabellenblättern ausführen und Rekorder beenden und der gesamte Code steht in einem Modul in Visual Basic im Reiter Entwicklertools. Solltest du trotzdem wünschen den Code zu bekommen, so reichte ich ihn gerne nach :)

    LG
     
    Zuletzt bearbeitet: 2. Juli 2015
    Chrischi305, 2. Juli 2015
    #2
  3. Hallo Chrischi
    Ich habe es mit dem Makrorekorder versucht, aber es will nicht so wie ich es will. Wenn ich das Makro ausführe übernimmt er zwar die Daten auf das "Übersichtsblatt" fügt auch eine neue Zeile ein, verschiebt aber auch alle Zellen auf dem "Vertragsposition" Blatt und somit stimmt das Makro für den nächsten durchgang nicht mehr.
    Es wäre daher sehr nett, wenn du mir den Code senden könntest. Vielen Dank.

    Achja... wie funktioniert das dann mit dem Button?

    LG
     
    SaarVampire, 2. Juli 2015
    #3
  4. Chrischi305
    Chrischi305 Erfahrener User

    Hilfe bei Makro schreiben

    Hallo SaarVampire,

    so sollte dein Code ausschauen, wenn du den Makrorekorder verwendet hast (wenn du dich genauer mit der Materie beschäftigen willst, wäre dies ein guter Start zum vergleichen, was die Unterschiede zwischen deinem Code per Makrorekorder und meinen sind; "ActiveWindow.SmallScroll" kann dabei getrost vernachlässigt werden, da dies nur dein Mausrad ist, welches du betätigt hast, um zu scrollen) :

    Code:
    Sub Makro1()
    '
    ' Makro1 Makro
    '
    
    '
        Sheets("Vertragsprovision").Select
        ActiveWindow.SmallScroll Down:=6
        Range("C38").Select
        Selection.Copy
        Sheets("Gesamtübersicht").Select
        ActiveWindow.SmallScroll Down:=-12
        Range("B3").Select
        ActiveSheet.Paste
        Sheets("Vertragsprovision").Select
        Range("C40").Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Gesamtübersicht").Select
        Range("C3").Select
        ActiveSheet.Paste
        Sheets("Vertragsprovision").Select
        ActiveWindow.SmallScroll Down:=-6
        Range("C5").Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Gesamtübersicht").Select
        Range("D3").Select
        ActiveSheet.Paste
        Sheets("Vertragsprovision").Select
        Range("I7").Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Gesamtübersicht").Select
        Range("E3").Select
        ActiveSheet.Paste
        Sheets("Vertragsprovision").Select
        Range("D35").Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Gesamtübersicht").Select
        Range("F3").Select
        ActiveSheet.Paste
        Range("A3").Select
        Application.CutCopyMode = False
        ActiveCell.FormulaR1C1 = "=TODAY()"
        Rows("3:3").Select
        Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    End Sub
    

    Und hier der gekürzte Code:

    Code:
    Sub Makro1()
    
    With ActiveWorkbook.Sheets("Gesamtübersicht")
        Sheets("Vertragsprovision").Range("C38").Copy Destination:=.Range("B3")
        Sheets("Vertragsprovision").Range("C40").Copy Destination:=.Range("C3")
        Sheets("Vertragsprovision").Range("C5").Copy Destination:=.Range("D3")
        Sheets("Vertragsprovision").Range("I7").Copy Destination:=.Range("E3")
        Sheets("Vertragsprovision").Range("D35").Copy Destination:=.Range("F3")
        .Range("A3").FormulaR1C1 = "=TODAY()"
        .Row("3:3").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    End With
    End Sub
    Die eingefügte Zeile, kann dadurch passieren, dass der Makrorekorder, viel mit "ActiveSheet" arbeitet. Sollte das aktive Blatt Vertragsprovision anstatt Gesamtübersicht sein, so wird dort die Zeile eingefügt. Anders kann ich es mir im Moment nicht erklären.

    Um einen Button zu erstellen, gibt es im Reiter "Entwicklertools" den Punkt "Einfügen", sieht aus, wie ein Aktenkoffer mit Schraubendreher und Maulschlüssel. Dort hast du 2 Unterteilungen, einmal "Formularsteuerelemente" und "Active-X Elemente". Bei Formularsteuerelemente wählst du den ersten Eintrag aus, dies wäre die Schaltfäche. Diese Schaltfläche muss dann innerhalb deines Arbeitsblattes gesetzt werden (erkennbar daran, dass die Maus zum Fadenkreuz wird). Hast du die Größe bestimmt und lässt deine linke Maustaste los erscheint ein Fenster indem du das Makro zuweisen kannst. Dort wählst du Makro1 aus (oder wie dein Makro heißt) und nach dem bestätigen, sollte die Schaltfläche sichtbar sein. Bedenke bitte, da du nun VBA verwendest, dass die Datei mit der Endung .xlsm gespeichert werden muss.

    LG Chrischi
     
    Zuletzt bearbeitet: 2. Juli 2015
    Chrischi305, 2. Juli 2015
    #4
  5. SaarVampire, 9. Juli 2015
    #5
  6. Chrischi305
    Chrischi305 Erfahrener User
    Hallo SaarVampire,

    habe die restlichen Fehler behoben. In den Zellen E3 und F3 konnte nichts angezeigt werden, da in I7 und D35 Formeln hinterlegt sind und diese, anstatt der Werte kopiert werden. Auch das Datum in A3 habe ich abgeändert, da ansonsten in jeder Zeile das aktuelle Datum gestanden hätte. Die Summenformel, unterhalb der Auflistung, wird innerhalb von VBA berechnet und diese trägt das Ergebnis, dann in den Feldern ein.


    Den Anhang Provisionstool.xlsm betrachten

    Lg Chrischi
     
    Chrischi305, 10. Juli 2015
    #6
  7. Ich danke für Deine Unterstützung. Leider funktioniert es immer noch nicht. Am Ende des Makro Überschreibt er auf der Eingabeseite die Formel aus D36 und fügt bei E36 und F36 die Zahl 0 ein. Zu guter letzt fügt er auf dem Eingabeblatt noch eine Zeile ein, somit stimmt das Makro nicht mehr für den nächsten durchlauf. Leider habe ich diese Befehle nicht im VBA gefunden zum korrigieren. Hilfe bei Makro schreiben Excel-Screenshot.jpg
     
    SaarVampire, 13. Juli 2015
    #7
  8. Chrischi305
    Chrischi305 Erfahrener User

    Hilfe bei Makro schreiben

    Hallo SaarVampire,

    ich kann leider deine o.g. Probleme nicht nachvollziehen. Der Code, kann nur auf dem Tabellenblatt "Gesamtübersicht" arbeiteten. Nur die Daten aus C38, C40, C5, I7 und D35 werden kopiert, der Rest passiert im Arbeitsblatt "Gesamtübersicht".


    Code:
    Sub Übertrag1()
    Dim ilr&, dlr&
        With ActiveWorkbook.Sheets("Gesamtübersicht")
            Sheets("Vertragsprovision").Range("C38").Copy Destination:=.Range("B3")
            Sheets("Vertragsprovision").Range("C40").Copy Destination:=.Range("C3")
            Sheets("Vertragsprovision").Range("C5").Copy Destination:=.Range("D3")
            Sheets("Vertragsprovision").Range("I7").Copy
            .Range("E3").PasteSpecial (xlPasteValues)
            Sheets("Vertragsprovision").Range("D35").Copy
            .Range("F3").PasteSpecial (xlPasteValues)
            .Range("A3").Value = Date
            
            .Rows("3:3").Select
            Selection.Insert shift:=xlDown
            
            ilr = Cells(Rows.Count, 4).End(xlUp).Row
            dlr = ilr - 1
            
            Cells(ilr, 4).Value = WorksheetFunction.Sum(Range("D4:D" & dlr))
            Cells(ilr, 5).Value = WorksheetFunction.Sum(Range("E4:E" & dlr))
            Cells(ilr, 6).Value = WorksheetFunction.Sum(Range("F4:F" & dlr))
        End With
    End Sub
    Wenn dieser Code verwendet wird, dann wird zumindest bei mir, keine Zeile in Vertragsprovision eingefügt, auch die Formeln bleiben erhalten.

    LG Chrischi

    PS: Kann es sein, dass du den Code dahin abgeändert hast, dass nach Ausführung des Codes wieder auf dem Blatt "Vertragsposition" sein willst? Ich kann mir deine Probleme, nur so erklären, dass du nach ".Range("A3").Value = Date", folgenden Code hast "Sheets("Vertragsprovision").Select". Damit wird alles was unterhalb steht, auf das Blatt "Vertragsprovision" angewendet. So ist zumindest erklärt, warum eine Zeile bei Vertragsprovision eingefügt wird. Ich habe auch zur Sicherheit vor Rows("3:3").Select, einen Punkt gesetzt, sodass bei Gesamtübersicht die Zeile eingefügt wird. Dass in D36 bis F36 als Werte jeweils eine 0 steht, würde sich damit auch erklären, da die Variable "ilr" in der 4. Spalte (Spalte D) die letzte Zeile sucht, welche in Vertragsprovision Zeile 36 bei dir wäre. Dass in D36 das richtige Ergebnis ist, ist reiner Zufall. Solltest du "Sheets("Vertragsprovision").Select" stehen haben, dann ändere den Code bitte, so wie unten. Dort wird erst alles abgearbeitet und danach erst, wechselt das Makro auf das Blatt "Vertragsprovision".

    Code:
    Sub Übertrag1()
    Dim ilr&, dlr&
        With ActiveWorkbook.Sheets("Gesamtübersicht")
            Sheets("Vertragsprovision").Range("C38").Copy Destination:=.Range("B3")
            Sheets("Vertragsprovision").Range("C40").Copy Destination:=.Range("C3")
            Sheets("Vertragsprovision").Range("C5").Copy Destination:=.Range("D3")
            Sheets("Vertragsprovision").Range("I7").Copy
            .Range("E3").PasteSpecial (xlPasteValues)
            Sheets("Vertragsprovision").Range("D35").Copy
            .Range("F3").PasteSpecial (xlPasteValues)
            .Range("A3").Value = Date
            
            .Rows("3:3").Select
            Selection.Insert shift:=xlDown
            
            ilr = Cells(Rows.Count, 4).End(xlUp).Row
            dlr = ilr - 1
            
            Cells(ilr, 4).Value = WorksheetFunction.Sum(Range("D4:D" & dlr))
            Cells(ilr, 5).Value = WorksheetFunction.Sum(Range("E4:E" & dlr))
            Cells(ilr, 6).Value = WorksheetFunction.Sum(Range("F4:F" & dlr))
        End With
    Sheets("Vertragsprovision").Select
    End Sub
     
    Zuletzt bearbeitet: 13. Juli 2015
    Chrischi305, 13. Juli 2015
    #8
Thema:

Hilfe bei Makro schreiben

Die Seite wird geladen...
  1. Hilfe bei Makro schreiben - Similar Threads - Hilfe Makro

  2. Speichern mit dem Titel der Zelle A2

    in Microsoft Excel Hilfe
    Speichern mit dem Titel der Zelle A2: Moin moin, Ich habe per Makro einen Arbeitsablauf aufgezeichnet der soweit auch funktioniert. Dieser Endet jedoch im "Speichern Unter" Fenster, welches durch das Klicken von "Drucken als PDF"...
  3. Hilfe wie Löst man ein Makro über einem anderen Makro aus ....

    in Microsoft Excel Hilfe
    Hilfe wie Löst man ein Makro über einem anderen Makro aus ....: welches sich in der anderen Arbeitsmappe Befindet. Hallo ...habe gerade den Vollen Stress - Ich möchte von Arbeitsmappe 1 in den Arbeitsmappen 2 - 3 jeweils das gleiche Makro auslösen. Mein...
  4. Kontrollkästchen (mehrere) Makro kopieren, Problem: Zellen nicht gegenseitig überschreiben

    in Microsoft Excel Hilfe
    Kontrollkästchen (mehrere) Makro kopieren, Problem: Zellen nicht gegenseitig überschreiben: Hallo zusammen, ich arbeite gerade an einer Vereinfachung für Bestellungen. Ich habe es hingekriegt, dass Kontrollkästchen an zu wählen sind und dann bestimmte Informationen kopiert werden. Jetzt...
  5. Bitte um Hilfe bei erstellung eines Makros, chat GPT hängt sich auf

    in Microsoft Excel Hilfe
    Bitte um Hilfe bei erstellung eines Makros, chat GPT hängt sich auf: Hallo Bitte kann mir jemand helfen ich bräuchte ein Makro welches mir eine Liste erstellt aus der Zahlenkombination 0-6. beginnt soll beginnen mit 0 0 0 0 0 0 0 dann 0 0 0 0 0 0 1 aber auch...
  6. Brauche Hilfe bei einer Makro

    in Microsoft Excel Hilfe
    Brauche Hilfe bei einer Makro: Hey, ich bin leider absolut unbewandert in Makros, ich benötige jedoch für die Arbeit diese Liste :( Evtl kann mir ja wer helfen. Diese Tabelle habe ich im Internet gefunden und die passt gut zu...
  7. Hilfe benötigt bei Fehler in Makro

    in Microsoft Excel Hilfe
    Hilfe benötigt bei Fehler in Makro: Guten Tag erstmal. Direkt vorweg, Excel ist absolutes Neuland für mich. Habe jetzt nur versucht mich rein zu finden um einen Fehler zu finden, da derjenige, der die Makros vor einigen Jahren...
  8. Hilfe

    in Microsoft Excel Hilfe
    Hilfe: Liebe Alle, ich bin ganz neu in diesem Forum und bräuchte Hilfe zu einem Excel Projekt. Ich möchte (siehe Bild 1) das die Felder die dort ausgefüllt werden automatisch in Bild 2 übertragen in...
  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