Registriert seit: 02.06.2015
Version(en): 2013
Hallo Liebe Leute, Ich habe vor einen Bereich zu kopieren. Ich habe ein Makro mit Hand aufgezeichnet. Kurze Beschreibung der Vorgehensweise: Ich markiere einen Bereich Fahre mit dem Cursor rechts unten auf das Kästchen Ziehe es einmal nach rechts und er kopiert und zählt weiter Und das Füge ich jetzt in einen Button ein Wenn ich jetzt erneut drücke dann erscheint ein fehler weil die Zellen daneben natürlich schon voll sind. Hier der Code: Range("C2:F31").Select Selection.AutoFill Destination:=Range("C2:J31"), Type:=xlFillDefault Range("C2:J31").Select Range("G2:J31").Select Selection.AutoFill Destination:=Range("G2:N31"), Type:=xlFillDefault Range("G2:N31").Select Ich hatte den doppelt durch geführt damit man sieht was ich vor habe. Ich hätte gerne das er automatisch immer weiter kopiert, beim drücken des Buttons. Jemand eine Idee?Habe auch mal die Dateien mit hochgeladen.
Abwesenheitsplaner.xlsm (Größe: 40,34 KB / Downloads: 3)
Datum.xlsx (Größe: 14,39 KB / Downloads: 1)
Vielen dank für die Hilfe
Registriert seit: 12.04.2014
Version(en): Office 365
02.06.2015, 11:32
(Dieser Beitrag wurde zuletzt bearbeitet: 02.06.2015, 11:33 von Peter.)
Hallo, falls noch jemand weitere Erläuterungen zum Problem sucht, dann sollte auch dieser Thread weiterhelfen: http://www.ms-office-forum.net/forum/sho...p?t=322736
Gruß Peter
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallo Hajopay, anbei habe ich mal ein paar codes, die die Fragen hier und im anderen Forum nachgehen. Ich bin jetzt erst mal in die Richtung unterwegs, dass Du ausgehend von ausgefüllten Daten in C:F die Liste einmalig in den rechts daneben liegenden, freien Bereich vervielfältigst. Damit Du siehst, wie ich vorgehe, habe ich die "Entwicklung" in 4 Schritten dargestellt. Im Step 1 / Makro1 hab ich erst mal den Ausgangscode von Dir reduziert, um die Liste nur zu duplizieren. Im Step2 ( Makro2 hab ich einen größeren Zielbereich gewählt. Da ich wieder vom ersten Bereich ausgehe, hab ich vorher manuell den mit Makro1 gefüllten Bereich gelöscht. Du siehst, dass man das gleich in einem Schritt tun kann und nicht mehrfach programmieren muss. Im Step 3 / Makro3 hab ich dann mal eine andere Schreibweise für die Angabe des Zielbereichs genommen. Durch die Verwendung von Cells kann man die Spalten auch mit Zahlen angeben und entsprechend später mal berechnen. Im Step 4 / Makro4 hab ich für die letzte Spalte keine feste Zahl genommen, sondern eine Variable. Den Wert hab ich hier fest programmiert, im anderen Forum hast Du ja geschrieben, dass Du das letzte Datum aus der anderen Datei holen willst. Hier hast Du das nicht erwähnt - in sofern ist der Hinweis von Peter schon hilfreich. Andererseits schreibst Du hier, dass Du es mit einem Button lösen willst, wo Du wohl jeweils bei 1x Drücken einen neuen Tag möchtest. Dann braucht man aber die Datei mit dem Datum nicht? Wenn Du Deine Frage auch in einem anderen Forum stellst, dann poste bitte in beiden Foren jeweils die Links zu dem anderen Forum. Dann kann man nachschauen, was dort diskutiert wird und sich den einen oder anderen Ansatz sparen oder auf andere Vorschläge aufbauen. Später mehr - muss jetzt erst mal Kaffee trinken gehen Code: Sub Makro1() Range("C2:F31").Select Selection.AutoFill Destination:=Range("C2:J31"), Type:=xlFillDefault End Sub
Sub Makro2() Range("C2:F31").Select Selection.AutoFill Destination:=Range("C2:Z31"), Type:=xlFillDefault End Sub
Sub Makro3() Range("C2:F31").Select Selection.AutoFill Destination:=Range(Cells(2, 3), Cells(31, 26)), Type:=xlFillDefault End Sub
Sub Makro4() 'Variablendeklarationen Dim lCol As Long 'Wert fuer letzte Spalte zuweisen lCol = 26 'Ausgangsbereich auswaehlen Range("C2:F31").Select 'Bereich vervielfaeltigen Selection.AutoFill Destination:=Range(Cells(2, 3), Cells(31, lCol)), Type:=xlFillDefault End Sub
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 02.06.2015
Version(en): 2013
03.06.2015, 06:59
(Dieser Beitrag wurde zuletzt bearbeitet: 03.06.2015, 07:10 von Hajopay.)
Besten dank schon mal schauan für deine Hilfe. Das mit dem verlinken habe ich jetzt auch verstanden, wollte ja niemanden ärgern :19: Ich habe mir das Makro 4 mal angeschaut und eingebaut. Jetzt ist es so das er bis Sonntag durch zählt, das ist ja auch prima nur wenn man den Button erneut drückt dann erscheint eine Fehlermeldung. Darin erhält man die Information das die Bereiche bereits ausgefüllt sind. Ich denke das er genau das selbe nochmal ausfüllen möchte nur das da ja schon was steht. Toll wäre jetzt wenn er die nächste Woche komplett darstellen würde bei dem nächsten betätigen des Buttons. Mo - So Von dem Gedanken mit dem Datum bin ich von weg gegangen denn dann würde er den Plan bis Tag X erstellen und man müsste alles von Hand ändern. So könnte man einen Montag erstellen und dann sagen bis Sonntag kopieren. Tag für Tag wäre natürlich auch schon super! Grüße Link zum anderen Forum: http://www.ms-office-forum.net/forum/sho...ost1672016
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallöchen, hier wäre dann das Ausfüllen einer Woche auf Basis der Daten in C..:F.. Wenn Du mit Dienstag anfängst, ist der letzte Tag dann allerdings Montag - es werden immer 7 Tage voll gemacht. Code: Sub Makro5() 'Makro zum Ausfuellen von 6 Tagen 'Variablendeklarationen Dim lCol As Long 'Wert fuer letzte auszufuellende Spalte anhand letzter belegte Spalte berechnen 'Spalte = letzte Spalte + 28 (28 fuer 7 Tage * 4) 'Hinweis: der Montag in C:F wird immer als Basis genommen / zuvor manuell erzeugt lCol = Cells(3, Columns.Count).End(xlToLeft).Column + 28 'beim ersten mal einen Tag weniger ausfuellen - Spalten C bis F sind schon da If lCol = 34 Then lCol = 30 Else 'Ausgangsbereich kopieren Range("C2:F31").Copy Destination:=Range(Cells(2, lCol - 27), Cells(31, lCol - 23)) 'Datum einen Tag hochsetzen Cells(2, lCol - 27).Value = Cells(2, lCol - 31) + 1 End If 'Bereich vervielfaeltigen Range(Cells(2, lCol - 27), Cells(31, lCol - 24)).AutoFill _ Destination:=Range(Cells(2, lCol - 27), Cells(31, lCol)), Type:=xlFillDefault End Sub
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 02.06.2015
Version(en): 2013
03.06.2015, 12:12
(Dieser Beitrag wurde zuletzt bearbeitet: 03.06.2015, 12:24 von Hajopay.)
Das sieht echt super aus. Danke dafür!!!
Wäre es denn jetzt sehr aufwendig das ganz so umzubauen das er immer nur einen Tag erstellt, also den nächsten? und dann auch immer den neu erstellten Tag als Kopiervorlage nimmt? Kurzes Beispiel:
Montag: ich stell alles so ein wie gewünscht und drücke den Button Dienstag wird erstellt, da sich nichts ändert drücke ich den Button, Mittwoch wird erstellt. Tage sehen gleich aus Mittwoch: jetzt muss für den rest der Woche etwas geändert werden, ich ändere den Mittwoch, drücke den Button Donnerstag wird erstellt und sieht aus wie der Mittwoch.
So in etwa?
Ich spinne jetzt mal etwas rum, ob das eine Möglichkeit Wäre. und zwar könnte er nicht beim betätigen des Buttons in Zeile 2 das erste leere Kästchen rechts vom Datum suchen, dann einen nach links springen, von da aus den Bereich 3 Spalten nach links und 30 Zeilen nach unten markieren und kopieren dann wieder die leere Zelle in Zeile 2 suchen und da mit autofill einfügen?
Grüße
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
03.06.2015, 12:31
(Dieser Beitrag wurde zuletzt bearbeitet: 03.06.2015, 12:32 von schauan.)
Hallöchen, Ja, das geht auch. Bin aber im Moment nur am Smartphone und da gibt es kein VBA. Wenn es nur um ei en Tag geht, kann man einiges weglassen und ein paar Zahlen müssen geändert werden.
Im Kommentar steht ja, wie ich zu der 28 komme. Für einen Tag brauchst Du nur 4. Den Teil von IF bis END IF brauchst Du auch nicht mehr. Nach der Zeile, wo mit der 28 bzw. dann der 4 die Spalte berechnet wird, kommt gleich der Code für das Autifill. Dort musst Du die Spaltenzahlen anpassen, also die 24, 31, 27 usw.
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 02.06.2015
Version(en): 2013
Hey,
habs mal geändert doch leider taucht ein Fehler auf in dem Bereich wo ich die zahlen 24, 27, 31 etc geändert habe
Danke nochmal
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallöchen, Kannst Du bitte den geänderten Code posten, ich schaue dann mal drüber. Bin voraussichtlich erst morgen Abend wieder am Laptop.
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 02.06.2015
Version(en): 2013
Hey,
ich hatte die Änderung jetzt nicht gespeichert weil es nicht funktionierte.
|