Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Tabellenblätter via Macro erstellen
#1
Hallo,

ich bin grade am basteln und komme (trotz Google) nicht weiter. Als Info: Bin blutiger Excel-Anfänger und mogele mich grade so durch....

Im Anhang ist mein Projekt. Mein Plan ist, dass ich im Blatt "Abrechnungsdaten" in der A-Spalte Namen eintragen kann.
Hierdurch soll das Macro getriggert werden.
Das Macro soll dann anhand des Blattes "Vorlage" ein neues Blatt erstellen; dieses Blatt entsprechend der Eintragung in der A-Spalte auf dem Blatt "Abrechnungsdaten" benennen und den Namen auf diesem Blatt zusätzlich in "B3" eintragen.

Zusätzlich sollten die Verweise (siehe in der Zeile "Paul" Spalten B-E auf dem Abrechnungsblatt) korrekt übernommen bzw. entsprechend angepasst werden.

Toll wäre es, wenn die A-Spalte auf dem Blatt "Abrechnungsdaten" automatisch mitwächst, dass also das Macro erkennt, dass neue Eintrage in der A-Spalte erfolgt sind und alles in Gang setzt.....

Ich hoffe, dass meine Ausführung verständlich ist.

Folgendes Macro habe ich mir zusammengezimmert......


Viele Grüße

Oli


Code:
Sub Anlegen()
Dim Wiederholungen As Long
Dim wksL As Worksheet
Set wksL = Worksheets("Abrechnungsdaten")
Application.ScreenUpdating = False
Worksheets("Abrechnungsdaten").Activate

For Wiederholungen = 3 To Range("A65536").End(xlUp).Row

If Cells(Wiederholungen, 1) <> "" Then
   Worksheets("Vorlage").Copy After:=Sheets(Sheets.Count)
   ActiveSheet.Name = wksL.Cells(Wiederholungen, 1).Text
   
Else
Exit Sub
End If
Worksheets("Abrechnungsdaten").Activate
Next

Set wksL = Nothing

Application.ScreenUpdating = True
End Sub


.xlsm   Macro Hilfe.xlsm (Größe: 30,47 KB / Downloads: 6)
Antworten Top
#2
Erstelle eine richtige Database wie in der angehängte Datei.


Angehängte Dateien
.xlsm   __Copy of Macro Hilfe.xlsm (Größe: 11,05 KB / Downloads: 3)
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#3
Hallo snb,

erstmal ein Dankeschön für die Antwort, aber ich fange damit nichts an......

Kannst du das etwas genauer erläutern?
Antworten Top
#4
Hallo

ich habe das vorhandene Makro im Beispiel mal so überarbeitet wie ich es benutzen würde.  Ist nur ein Vorschlag.

Der Button hat eine Doppel Funktion:  wird ein Name eingegeben wird die letzte Zeile nach unten kopiert, ein neues Sheet angelegt, der Name in der Abrechnung Spalte A eingetragen, und die Formeln in B+C auf das neue Sheet korrigiert. Bei Text Eingabe "Alle" werden wie vorher über die For Next Schleife - Alle Mitarbeiter Sheets - erstellt.  Beide Makros prüfen ob das Blatt bereits existiert?  Bei Einzelsheet erfolgt eine Fehlermeldung! 
 
Bitte prüfen ob im neuen Sheet alles korrekt ausgefüllt wurde??  Würde mich freuen wenn dieses kleine Makro für die Praxis brauchbar ist.

mfg  Gast 123


Angehängte Dateien
.xlsm   Macro Hilfe.xlsm (Größe: 43,53 KB / Downloads: 5)
Antworten Top
#5
Hallo Gast 123,

super; vielen Dank!

Kleines Problem damit.......Der Button multipliziert sich mit jeder neuen Eingabe. Wie lässt ich das abstellen?    

Ich vermute, dass sich daraus das folgende Problem ergibt:    


Vielen herzlichen Dank für deine Hilfe!!!
Antworten Top
#6
Hallo

ich fru mich sehr das mein Programm auf Anhieb so gut funktioniert. Kleine Querelen beim Erstversuch sind normal.

Abhilfe für Button:   Den Button bitte ganz nach oben verschieben und mit der rechten Maustaste die Eigenschaften aendern. In der Einstellung ob der Button mit einer Zelle verbunden sein soll bitte auf "Free Floting" aendern , d.h. unabhaenig von einer Zelle! Dann sollte der Effekt aufhören.   

Das zweite Problem warum es zwischen Peter und Summe keine Leerzeile gibt ist mir im Augenblick ein Raetsel. Bei mir tritt der Effekt bisher nicht auf. Dafür habe ich einen anderen Fehler entdeckt, denn ich technisch NICHT verstehe!

@snb   Hallo snb, du bist hier der bessere Fachmann. Vielleicht weisst du warum das passiert. Gebe ich für ein neues Blatt nicht nur den Vornamen, sondern so an:  "Mike Krüger", versagt bei mir die Formelzuweisung an Zelle F6 + F11! Schreibe ich es so:  "Mike_Krüger", öffnet Excel mir den Datei Editor um die Verknüpfung zu suchen, fügt die Formel bei Abbrechen aber trotzdem korrekt ein!  Den verwirrenden Fall hat ich bisher noch nicht.  

Woran kann das liegen??  Müsste ich den Code in -FormulaLocal- aendern???

mfg Gast 123
Antworten Top
#7
Hallo,

(02.09.2019, 12:35)Gast 123 schrieb: Das zweite Problem warum es zwischen Peter und Summe keine Leerzeile gibt ist mir im Augenblick ein Raetsel. Bei mir tritt der Effekt bisher nicht auf. Dafür habe ich einen anderen Fehler entdeckt, denn ich technisch NICHT verstehe!

@snb   Hallo snb, du bist hier der bessere Fachmann. Vielleicht weisst du warum das passiert. Gebe ich für ein neues Blatt nicht nur den Vornamen, sondern so an:  "Mike Krüger", versagt bei mir die Formelzuweisung an Zelle F6 + F11! Schreibe ich es so:  "Mike_Krüger", öffnet Excel mir den Datei Editor um die Verknüpfung zu suchen, fügt die Formel bei Abbrechen aber trotzdem korrekt ein!  Den verwirrenden Fall hat ich bisher noch nicht.  

Woran kann das liegen??  Müsste ich den Code in -FormulaLocal- aendern???

mfg Gast 123


bin zwar nicht snb aber vielleicht nimmst Du meine Hilfe trotzdem.

Code:
Sub EinzelSheet_anlegen()
Dim NewSht As Worksheet  'Error Test'
Worksheets("Abrechnungsdaten").Activate

On Error Resume Next
Set NewSht = Worksheets(Mitarbeiter)
If Not NewSht Is Nothing Then MsgBox "Dieses Blatt existiert bereits!": Exit Sub

'On Error GoTo Fehler
With Worksheets("Abrechnungsdaten")
     LZell = .Range("A65536").End(xlUp).Row
     If Cells(LZell, 1) = "SUMMEN:" Then LZell = LZell - 2
     'Pr?fung:  vermeiden das LZell 65536 Zeilen sind!
     If LZell > 200 Then MsgBox "LZell Fehler!": Exit Sub

     .Rows(LZell).Copy  'Zeile einf?gen
     .Rows(LZell + 1).Insert shift:=xlDown
     .Cells(LZell + 1, 1).Value = Mitarbeiter
      Application.CutCopyMode = False
    
     Worksheets("Vorlage").Copy After:=Sheets(Sheets.Count)
     ActiveSheet.Range("B3") = Mitarbeiter    'Name einf?gen
     ActiveSheet.Range("F3") = .Range("A1")   'Monat einf?gen
     ActiveSheet.Range("A6:D6") = Empty       'A6:D6 l?schen
     ActiveSheet.Name = Mitarbeiter           'Sheet Name setzen
        
     'Formel in Abrechnungsdaten korrigiern
     .Cells(LZell + 1, 2).Formula = "='" & Mitarbeiter & "'!F$6"
     .Cells(LZell + 1, 3).Formula = "='" & Mitarbeiter & "'!F$11"
      Worksheets("Abrechnungsdaten").Activate
End With
Exit Sub
Fehler:  MsgBox "Fehler bei:  EinzelSheet_anlegen"
End Sub


Fällt Dir was auf? Und versuche mal in Excel selber zu bauen, indem Du in einer Zelle = eingibst, auf das Tabellenblatt Mike Krüger wechselt, auf irgendeine Zelle klickst, und danach Return. Wie sieht die Formelzelle dann aus?
Gruß Stefan
Win 10 / Office 2016
Antworten Top
#8
Hi Gast 123

Zitat:Das zweite Problem warum es zwischen Peter und Summe keine Leerzeile gibt ist mir im Augenblick ein Raetsel. Bei mir tritt der Effekt bisher nicht auf. Dafür habe ich einen anderen Fehler entdeckt, denn ich technisch NICHT verstehe!

Die fehlende Zeile geht auf mein Verschulden zurück. Das eigentlich Problem ist, dass die zweite Zeile kopiert wurde.


Deine Buttonlösung probiere ich sofort aus!

Die Sache mit Mike Krüger ist mir noch gar nicht aufgefallen.....ist aber sehr interessant, da ich die einzelnen Mitarbeiter definitv mit Vor- und Nachnamen eintragen sollte.
Oder aber zumindest als Hr.Krüger.

Viele Grüße
Antworten Top
#9
Hallo an alle

@Stefan   Sorry das ich nicht alle Kollegen schrieb, du bist auch sehr gut, hast mehr Programmier Wissen wie ich. 
Natürlich nehme ich dankbar deine Hilfe an. Vielen Dank für deine Korrektur des Codes.

@CheckNicht   Mir fallt grade noch ein Vorschlag für deine Tabelle ein, den ich vergessen habe. Weil Tabellen sehr weit nach unten wachsen können, und man dann immer nach den Summen zum Ansehen scrollen muss, habe ich mir angewöhnt in meinen Entwürfen für Freunde die Summenformeln ganz nach oben zu stellen.   Ist nur ein Vorschlag von mir.

mfg  Gast 123
Antworten Top
#10
Guten Morgen,

vielen Dank für eure Hilfe!

Das passt (fürs erste) so für mich.


Ich wünsche euch einen guten Start in die neue Woche!

Grüße
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste