Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1280to1284
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
Inhaltsverzeichnis

Datum in Spalte

Datum in Spalte
18.10.2012 18:52:00
Peter
Hallo Leute,
Sub CommandButton1
'wenn ich auf diesen Button drücke soll es mir im Blatt Berechnung immer in
'Zeile 1, in der ersten freie Spalte das Datum im Datumsformat übertragen
With Sheets("Berechnung")
.Cells(1, .Cells(1, .Columns.Count).End(xlToLeft).Column + 1) = Date
.Cells(1, .Cells(1, .Columns.Count).End(xlToLeft).Column).Select
End With
'im Blatt Daten soll es mir aber ebenfalls in Spalte C ab Zelle C2 nach unten gehend das  _
Datum in die nächste freie Zelle schreiben
With Sheets("Daten")
.Cells(1, .Cells(1, .Rows.Count, 3).End(xlUp).Rows + 1) = Date
End With
End Sub

Danke
Peter

19
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datum in Spalte
18.10.2012 19:10:27
Matze,Matthias
.Cells(1, .Cells(1, .Rows.Count, 3) - da stimmt was nicht
.Cells( .Rows.Count, 3)).End(xlUp).Rows + 1) = Date
Gruß Matze

AW: Datum in Spalte
18.10.2012 19:30:14
Matze,Matthias
Hallo Peter,
so ist noch besser:
Private Sub CommandButton1_Click()
Dim LoSpalte As Long
Dim Lozeile As Long
'wenn ich auf diesen Button drücke soll es mir im Blatt Berechnung immer in
'Zeile 1, in der ersten freie Spalte das Datum im Datumsformat übertragen
With Sheets("Berechnung")
LoSpalte = .Cells.SpecialCells(xlCellTypeLastCell).Column
.Cells(1, LoSpalte) = Date
.Cells(1, LoSpalte).Select
End With
'im Blatt Daten soll es mir aber ebenfalls in Spalte C ab Zelle C2 nach unten gehend das _
Datum in die nächste freie Zelle schreiben
With Sheets("Daten")
Lozeile = .Range("C:C").SpecialCells(xlCellTypeLastCell).Row
.Cells(Lozeile, 3) = Date
End With
End Sub
Matze

Anzeige
2 kleine Tipps
18.10.2012 21:10:01
{Boris}
Hi Matze,
zunächst einmal finde ich es klasse, wie Du Dich in die Materie stürzt! :-)
Auf dem Weg dahin an dieser Stelle nur 2 Tipps:
Dim LoSpalte As Long
Dim Lozeile As Long

Das "Intro" für den Variablentyp Long ist im allgemeinen Sprachgebrauch lng - also lngSpalte. Die Kennzeichnung lo ist eine Hajo-Kennung. Natürlich nicht falsch, aber eben nicht "Standard".
Weiterhin wird Dein Code übersichtlicher, wenn Du mit Einrückungen arbeitest:
Private Sub CommandButton1_Click()
Dim LoSpalte As Long
Dim Lozeile As Long
'wenn ich auf diesen Button drücke soll es mir im Blatt...
With Sheets("Berechnung")
LoSpalte = .Cells.SpecialCells(xlCellTypeLastCell).Column
.Cells(1, LoSpalte) = Date
.Cells(1, LoSpalte).Select
End With
'im Blatt Daten soll es mir aber ebenfalls in Spalte C ab Zelle C2...
With Sheets("Daten")
Lozeile = .Range("C:C").SpecialCells(xlCellTypeLastCell).Row
.Cells(Lozeile, 3) = Date
End With
End Sub
Ich schreib Dir das, weil ich glaube, dass Du extrem excelinteressiert und lernwillig bist.
Und wenn man sich von vornherein an gewisse Standards hält, wird`s nachher umso einfacher :-)
VG, Boris

Anzeige
@{Boris},...
18.10.2012 22:36:39
Matze,Matthias
,....zu mindest hab ich das Ziel erreicht.
vorschläge dankend angenommen :-)
Matze

AW: @Matze
19.10.2012 09:56:28
hary
Moin Matze
SpecialCells(xlCellTypeLastCell) hat aber einen kleinen Nachteil.
Wenn Z.B. unterhalb Zeile1 Zellen schon mit Werte/Formel/Rahmen vorbelegt sind. Dann kommt das Datum nicht in die erste freie in Zeile1.
gruss hary

Wer legt denn den Standard für die UN ...
19.10.2012 01:59:24
Luc:-?
…fest, Boris? ;-)
Hajos lo entspricht den Intentionen des Erfinders derselben sogar etwas besser als dieses irre lng, denn die UN verwendet ursprgl 2 Präfixstellen. Eingeführt wurde sie in die MS-Welt von den Office-Pgmierern, die das auch ordentl, nämlich im Sinne des Erfinders gemacht haben sollen, nur die Windows-Pgmierer haben's nicht verstanden, alles versimpelt und damit letztlich verdorben. Und ausgerechnet das hat sich nun unter den Pgmierern weitgehend durchgesetzt! Kein Wunder, dass so auch eine Gegen- nämlich die ClearCode-Bewegung entstanden ist. Kannste alles bei Wikipedia nachlesen. ;-)
Ich verwende in letzter Zeit bspw das Präfix is für VglsVariablen (allerdings sicher auch kein Standard, aber aussagekräftig – ist dir evtl neulich aufgefallen). Das sind dann aber nicht unbedingt nur Boolesche, sondern können auch einige IntegerVariablen geringen Wertevorrats wie bspw der Enum-Typ vbTriState sein. So ungefähr hat's wohl auch der Erfinder gemeint, Verwendungszweck, nicht Datentyp bezeichnen.
Außerdem gelten sog Standards idR immer bei TeamArbeit und wdn ggf zuvor per Vereinbarung festgelegt. Also könnte eine Firma/ArbGrp auch abweichende festlegen. Die Originale aus den 60ern dürften ohnehin nur selten verwendet wdn.
Gruß Luc :-?

Anzeige
Hier noch ein Zitat von Dr Simonyi, dem ...
20.10.2012 16:22:19
Dr
…Erfinder der UN:
Naming conventions cannot guarantee good code, however; only the skill of the programmer can.
In diesem Sinne: Good luck, folks! Luc :-?

AW: 2 kleine Tipps
19.10.2012 13:36:38
Peter
Hallo Leute,
ich habe den Code mal umgedreht, damit die Userform erst im Arbeitsblatt Daten arbeitet und dann in das Arbeitsblatt Berechnung geht. Weil dort der Restteil des Codes ausgeführt wird.
Private Sub CommandButton4_Click()
Dim LoSpalte As Long
Dim Lozeile As Long
'im Blatt Daten soll es mir aber ebenfalls in Spalte C ab Zelle C2 nach unten gehend das _
'Datum in die nächste freie Zelle schreiben
With Sheets("Daten")
Lozeile = .Range("C:C").SpecialCells(xlCellTypeLastCell).Row
.Cells(Lozeile, 3) = Date
End With
'wenn ich auf diesen Button drücke soll es mir im Blatt Berechnung immer in
'Zeile 1, in der ersten freie Spalte das Datum im Datumsformat übertragen
With Sheets("Berechnung")
.Cells(1, .Cells(1, .Columns.Count).End(xlToLeft).Column + 4) = Date
.Cells(1, .Cells(1, .Columns.Count).End(xlToLeft).Column).Select
End With
End Sub
Leider setzt der Code mir im Arbeitsblatt Daten das aktuelle Datum in Spalte C Zeile 41(Spalte B ist auch bis Zeile 41 ausgefüllt) und nicht wie gewünscht in Zeile 2. Beim nächsten ausführen soll er in Zeile 3... usw.
Vielen Dank für die rege Zuarbeit, hab schon sehr viel hier im Forum gelernt!
Greetz PTR

Anzeige
AW: 2 kleine Tipps
19.10.2012 13:49:05
Matze,Matthias
Nachdem Hary hier sagte das es damit Schwierigkeiten gibt benutze diesen Code
Private Sub CommandButton4_Click()
Dim LoSpalte As Long
Dim Lozeile As Long
With Sheets("Daten")
lngZeile = .Cells(Rows.Count, 3).End(xlUp).Row
.Cells(lngZeile + 1, 3) = Date
End With
With Sheets("Berechnung")
lngSpalte = .Cells(1, Columns.Count).End(xlToLeft).Column
.Cells(1, lngSpalte + 1) = Date
'das Select hab ich weggelassen,oder soll die zelle activiert sein?
End With
End Sub
Matze

AW: 2 kleine Tipps
19.10.2012 14:00:33
Peter
das select wir benötigt... weil dort der code dann weitergeht...
Aber der meldet mir nur das die variable nicht definiert ist hä?
danke für die schnelle antwort
gruß PTR

Anzeige
AW: 2 kleine Tipps
19.10.2012 14:07:10
Peter
und warum legt der erst ni zeile 41 los?
thx PTR

AW: 2 kleine Fehler
19.10.2012 14:19:05
hary
Hallo
Zitat: "Aber der meldet mir nur das die variable nicht definiert ist hä?"
Schreibfehler, schau mal "lozeile" an. Sollte gleichgeschrieben sein.
Lozeile As Long
With Sheets("Daten")
lngZeile = .Cells(Rows.Count, 3).End(xlUp).Row
.Cells(lngZeile + 1, 3) = Date

Zitat: "warum legt der erst ni zeile 41 los?"
Hast Du Formeln/Leerezeichen oder aehnliches drin?
gruss hary

AW: 2 kleine Fehler
19.10.2012 14:26:02
Matze,Matthias
Verbesserung: Tippfehler
Option Explicit
Private Sub CommandButton4_Click()
Dim lngSpalte As Long
Dim lngzeile As Long
With Sheets("Daten")
lngzeile = .Cells(Rows.Count, 3).End(xlUp).Row
.Cells(lngzeile + 1, 3) = Date
End With
With Sheets("Berechnung")
lngSpalte = .Cells(1, Columns.Count).End(xlToLeft).Column
.Cells(1, lngSpalte + 1) = Date
.Cells(1, lngSpalte + 1).Select
End With
End Sub
jetzt sollte es aber endlich passen

Anzeige
AW: 2 kleine Fehler
19.10.2012 14:54:08
Peter
Hallo Hary,
nien habe keine Formeln drin... habs jetzt auch hinbekommen... hab einfach ein neues Arbeitsblatt für die Bestelldaten angelegt... daruf greift dann meine Combobox zu.... also problem gelöst.
aber wenn ich jetzt die daten aus den zeile wieder manuell lösche (z.B. A2 bis A10) und den code wieder ausführe schreibt der das aktuelle datum in die spalte A11 obwohl in A2 doch eigentlich frei ist... merkt der sich die zeile wo er zuletzt drin war?
thx PTR

AW: 2 kleine Fehler
19.10.2012 15:19:22
hary
Hallo Peter
Wieso jetzt SpalteA? War doch SpalteC.
LoZeile As Long
With Sheets("Daten")
lngZeile = .Cells(Rows.Count, 3).End(xlUp).Row '*** musst Du hier die 3 auch aendern
.Cells(lngZeile + 1, 3) = Date  'wenn Du hier die 3 in 1 geaendert hast ***

ansonsten weiss ich nicht.
gruss hary

Anzeige
AW: 2 kleine Fehler
19.10.2012 15:37:43
Peter
Hallo Hary,
wie gesagt habe ich jetzt ein neues Arbeitsblatt angelegt in dem mein Datum aufgeführt wird. und dort stehts jetzt unter spalte A.
Danke Peter

AW: Bsp.-mappe
19.10.2012 15:54:19
hary
Hallo
Kannst Du mal eine Bsp. Mappe hochladen? Mit Dummydaten.
In meiner Testmappe kann ich Zeilen loeschen.
gruss hary

AW: Bsp.-mappe
19.10.2012 16:03:48
Peter
Hallo Hary,
ich habe dir die Mappe hochgeladen... ich bin aber noch nicht sehr weit...
https://www.herber.de/bbs/user/82206.xlsm
solltest du fehler erkennen, schreib mich einfach an. über diesen Beitrag
vielen Dank im Vorraus
Gruß PTR

Anzeige
AW: Datum eintragen
19.10.2012 16:36:10
hary
Hallo
mach mal dem Eintrag so:
With Sheets("Bestelldatum")
Lozeile = .Cells(.Rows.Count, 1).End(xlUp).Row
.Cells(Lozeile + 1, 1) = Date
End With

gruss hary

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige