Excel Makro
Hallo
Ich Bitte um Hilfe da ich mit Makro zu wenig auskenne.
Folgendes Anliegen an die Profis.
Ich möchte von der der 1.Seite "Blanko" das heutige Datum (H12) sowie die Zellen F50:I50 auf die folgenden nächsten Seiten "Monate Januar - Dezember" übertragen. Dazu sollte das Makro den Monat finden und die Daten ab der Zeile A5 eintragen.
In A5 sollte das Datum ersichtlich sein, und ab B5 bis E5 die Daten aus "Blanko F50-I50.Anschliessend nach der eingabe ein Zeile nach unten also A6 für den nächsten eintrag.
Antwort schreiben
Antwort 1 von Saarbauer vom 28.07.2022, 15:50 Options
hallo,
leider nicht ohne weiteres verständlich.
Vielleicht kannst du eine Beispieltabelle zur Verfügung stellen
Gruß
Helmut
Antwort 2 von nighty vom 28.07.2022, 16:36 Options
hi all :-)
ein beispiel ^^
nach eingabe des datums in h12 erfolgt eine kopie wie gefordert
gruss nighty
Private Sub worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Target.Column = 8 And Target.Row = 12 Then
Worksheets(MonthName(Month(Worksheets("Blanko").Range("H12")))).Range("A" & Worksheets(MonthName(Month(Worksheets("Blanko").Range("H12")))).Cells(Rows.Count, 1).End(xlUp).Row + 1) = Worksheets("Blanko").Range("H12")
Worksheets("Blanko").Range("F50:I50").Copy Sheets(MonthName(Month(Worksheets("Blanko").Range("H12")))).Range("B" & Worksheets(MonthName(Month(Worksheets("Blanko").Range("H12")))).Cells(Rows.Count, 2).End(xlUp).Row + 1)
End If
Application.EnableEvents = True
End Sub
Antwort 3 von nighty vom 28.07.2022, 16:38 Options
hi all :-)
gruss nighty
einzufuegen
alt+f11/projektexplorer/Blanko
Antwort 4 von Tanfoglio vom 29.07.2022, 13:07 Options
Hei nighty
Danke für deine Antwort. nur ich erhalte einen Laufzeit fehler 424.
Ich versuchs mal anders zu formulieren: Villeicht hilft dies besser
Ansicht:
1. Seite ist die "Blanko" seite
2. Seite "Januar"
3. Seite "Februar
4. Seite März
5. usw. bis Dezember
Auf der "Blanko" Seite ist das Datum (=Heute()) in der Zelle H12
auf der gleiche Seite (F50 bis I50) sind werte eingetragen.
Nun möchte ich mit einem Makro aus der Seite "Blanko" das Datum aus (H12) auf den heutigen Monat also JULI in die Zelle A5, sowie die werte aus "Blanko" (F50-I50) in die zellen B5-E5 eingetragen werden.
Die nächsten einträge (Datum und werte) sollen auf die nächste zeilen kommen.
Danke schon mal für die Tolle Arbeit
Tanf
Antwort 5 von nighty vom 29.07.2022, 16:23 Options
hi tanf :-)
zellen vielleicht geschuetzt,oder verbundene zellen :-))
gruss nighty
Antwort 6 von nighty vom 29.07.2022, 16:26 Options
hi tanf :-)
die monate sollten so aussehen
Januar/Februar/März usw,vielleicht falsch betitelt,ein leerzeichen wuerde schon nicht mehr akzeptiert werden,groß klein schreibung auch beachten,denk ich :-))
gruss nighty
Antwort 7 von nighty vom 29.07.2022, 17:33 Options
hi tanf :-))
oder schick mir eine mustertabelle,ich fuege es dann lauffaehig ein
oberley@t-online.de
@admin
ich liebe spam :-))
gruss nighty
Antwort 9 von nighty vom 30.07.2022, 07:43 Options
hi supporter2010 :-))
korrigiere mich oder verkuerze den code,das waere interessant :-))
mit union koennte man vielleicht noch eine zeile weniger haben :-)
ein fehler ist auch noch enthalten,der die lauffaehigkeit bedingt einschraenkt,aber den hast du sicherlich entdeckt :-)))
gruss nighty
Antwort 10 von nighty vom 31.07.2022, 09:01 Options
hi all :-)
es kam nun die steuerelement toolbox zum einsatz mit einem button
gruss nighty
die fehler im obigen makro waren die kopie eigenschaften,wurde durch werte kopie korrigiert
und der code ist vielleicht uebersichtlicher :-)))
einzufuegen
alt+f11/projektexplorer/DeineTabelle (in diesem falle blanko)
Private Sub CommandButton1_Click()
Dim Lzeile As Long
With Worksheets(MonthName(Month(Worksheets("Blanko").Range("H12"))))
.Range("B40:E40") = ""
Lzeile = .Cells(Rows.Count, 2).End(xlUp).Row + 1
.Range("A" & Lzeile) = Worksheets("Blanko").Range("H12").Value
Worksheets("Blanko").Range("F50:I50").Copy
.Range("B" & Lzeile).PasteSpecial Paste:=xlValues, Operation:=xlNone
.Range("B40") = Application.WorksheetFunction.Sum(.Range("B5:B39"))
.Range("C40") = Application.WorksheetFunction.Sum(.Range("C5:C39"))
.Range("D40") = Application.WorksheetFunction.Sum(.Range("D5:D39"))
.Range("E40") = Application.WorksheetFunction.Sum(.Range("E5:E39"))
End With
End Sub