Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
480to484
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
480to484
480to484
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Macro

Macro
10.09.2004 21:16:44
Carsten
Hallo !
Ich möchte per Makro in Spalten automatisch das Datum, von einem ausgehend, setzen lassen.
__________Mo|Di|Mi|Do|Fr|Sa|So|
|13.10.2004|__|__|__|__|__|__|__|
|20.10.2004|__|__|__|__|__|__|__|
Ich möchte den Cursor auf das Datum setzen, und das sollen in die jeweiligen Spalten, die Tagesdaten, also 13|14|15 etc. eingesetzt werden. Für eine Spalte schaffe ich das per Makro.
Es ist mir aber nicht möglich, das dann für die nächste Spalte laufen zu lassen. Das Macro füllt immer nur die gleichen Felder aus. Mit einem $-Zeichen ($B3) kam ich auch nicht weiter.
Was mache ich falsch ?

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Macro
ypsilon
hi Carsten,
versteh ich nicht,
zeig mal dein vorhandenes makro vielleicht wirds dann klarer
cu Micha
AW: Macro
10.09.2004 21:41:12
Carsten
Range("$B$4").Select
Selection.Copy
Range("$E$4").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Selection.NumberFormat = "dd"
Selection.AutoFill Destination:=Range("$E$4:$K$4"), Type:=xlFillDefault
Range("$E$4:$K$4").Select
AW: Macro
yps
hi Carsten,
ich habe mal alle selects dringelassen um dich nicht zu verwirren
die brauchst du nicht wirklich ;-)


Sub test()
Dim zeile As Long
For zeile = 1 To 3 'wenn mehr zeilen dann hier ergänzen
Range("B" & zeile).Select
Selection.Copy
Range("E" & zeile).Select
ActiveSheet.Paste
Application.CutCopyMode = False
Selection.NumberFormat = "dd"
Selection.AutoFill Destination:=Range("E" & zeile & ":K" & zeile), Type:=xlFillDefault
Next zeile
End 

Sub
cu Micha

Anzeige
AW: Macro
y
...und trotzdem mal ohne select sonst hab ich ein schlechtes gewissen ;-)

Sub test2()
Dim zeile As Long
For zeile = 4 To 7 'wenn mehr zeilen dann hier ergänzen
Range("B" & zeile).Copy Destination:=Range("E" & zeile)
Range("E" & zeile).AutoFill Destination:=Range("E" & zeile & ":K" & zeile)
Range("E" & zeile & ":K" & zeile).NumberFormat = "dd"
Next zeile
End Sub

cu Micha
AW: Macro
PeterW
Hallo Micha,
welchen Vorteil hat das Kopieren:
Range("B" & zeile).Copy Destination:=Range("E" & zeile)
gegenüber der direkten Zuweisung:
Range("E" & zeile) = Range("B" & zeile) ?
Gruß
Peter
Anzeige
AW: Macro
y
hi Peter,
gar keinen (nach meiner meinung) ich weiss um ehrlich zu sein auch nicht welche methode schneller ist
weisst du näheres oder müssen wir auf Nepumuk warten ? ;-)
cu Micha
AW: Macro
y
jaja,
das mit copy ist das selbe wie mit select.
Copy/Paste ist ein typisches Relict der Tabellenuser und passt nicht in ein Programmierparadigma. Programmtechnisch ist unter Kopieren eine Zuweisung zu verstehen. Z.B bei einer Integer würde niemand auf die Idee kommen davon ein Kopie mit copy/paste anzulegen, sondern
EineKopie = Original
eine Zuweisung formulieren, um eine Kopie anzulegen. Mit einem Range dagegen ist man wohl gerne mit copy/paste dabei, weil mans in der Tabellenarbeit so gelernt hat.
Der Programmierer sollte aber objektorientiert, direkter und schneller per Zuweisung arbeiten
ist ja gut und werde ich mir merken DANKE
cu Micha
Anzeige
AW: Macro
11.09.2004 07:13:58
Carsten
wow - super.
Danke für die schnellen Antworten.
Das Problem ist, daß ich nicht erwähnt hatte, daß sich zwischen den eigentlichen Zeilen auch noch Leerzeilen befinden.
__________Mo|Di|Mi|Do|Fr|Sa|So|
|13.10.2004|__|__|__|__|__|__|__|
|_________|__|__|__|__|__|__|__|
|_________|__|__|__|__|__|__|__|
|20.10.2004|__|__|__|__|__|__|__|
Ist es nicht möglich, dieses Macro in der Zeile durchführen zu lassen, in der ich ein Feld markiert habe (vielleicht sogar das ursprüngliche Datumsfeld) ?
Sorry, ich hätte es gestern besser erklären müssen.
AW: Macro
yps
hi Carsten,
probier mal:

Sub test2()
Dim zeile As Long
For zeile = 4 To 7 Step 2 'beginn in zeile 4 bis zeile 7 wenn mehr zeilen dann hier ergänzen
'step 2 ist eine leerzeile step 3 sind 2 leerzeilen etc.
Range("E" & zeile) = Range("B" & zeile)
Range("E" & zeile).AutoFill Destination:=Range("E" & zeile & ":K" & zeile)
Range("E" & zeile & ":K" & zeile).NumberFormat = "dd"
Next zeile
End Sub

cu Micha
Anzeige
AW: Macro
11.09.2004 21:47:01
Carsten
Ja, danke.
Das war die Lösung.
Range("E" & zeile & ":K" & zeile).NumberFormat = "dd"
Range("E" & zeile).AutoFill Destination:=Range("E" & zeile & ":K" & zeile)
Habe das Autoformat nur nach vorne gesetzt, denn sonst stand dann in jeder Zelle das selbe Datum.
Nochmal vielen Dank.
AW: Macro
yps
warum hast du die frage als noch offen gekennzeichnet ?
AW: Macro
12.09.2004 08:20:41
Carsten
Ups, sorry.
Es funzte erst nicht. Ich wollte (schon wieder) nachfragen. Bis ich mir die Sache genauer angeschaut habe (auch mein alter Versuch dazu) und merkte, daß das Autoformat nach eine Zeile nach vorne gesetzt werden muß.
Deshalb war die Frage als noch offen gekennzeichnet.
Nochmal sorry und vieeeeelen Dank.
Anzeige
AW: Macro
PeterW
Hallo Carsten,
formatiere die Spalten E bis K benutzerdefiniert als tt. Mit folgendem Makro werden dann die Daten der aktiven Zeile in E bis K geschrieben.

Sub GanzeWoche()
Dim bCount As Byte
Cells(ActiveCell.Row, 5) = Cells(ActiveCell.Row, 2)
For bCount = 1 To 6
Cells(ActiveCell.Row, 5 + bCount) = Cells(ActiveCell.Row, 5) + bCount
Next
End Sub

Gruß
Peter

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige