Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1692to1696
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

Monat aud Datum

Monat aud Datum
01.06.2019 11:21:09
Gerhard
Hallo,
Bitte um VBA Hilfe!
In dynamischer Spalte C soll aus Datum der Monatsname ausgelesen und in Spalte D eingetragen werden!
wenn möglich ohne Formel
siehe Testmappe
Vielen Dank
Gruß Derhard
https://www.herber.de/bbs/user/130139.xlsm

32
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Monat aud Datum
01.06.2019 11:35:15
Werner
Hallo Gerhard,
so: Public Sub Monat() Dim loLetzte As Long With Worksheets("Tabelle1") loLetzte = .Cells(.Rows.Count, "C").End(xlUp).Row .Range(.Cells(2, "D"), .Cells(loLetzte, "D")).FormulaLocal = "=TEXT(C2;""MMMM"")" .Range(.Cells(2, "D"), .Cells(loLetzte, "D")).Value = _ .Range(.Cells(2, "D"), .Cells(loLetzte, "D")).Value End With End Sub Wobei sich die Frage stellt, ob du wirklich in der Zelle den Monatsnamen als Text haben willst. Besser wäre vielleicht einfach das Datum aus der Spalte C zu übernehmen und die Spalte D benutzerdefiniert zu formatieren im Format MMMM dann wird dir nur der Montsname angezeigt.
Gruß Werner
Anzeige
AW: Monat aud Datum
01.06.2019 19:26:29
Gerhard
Hallo zusammen
Vielen Dank für Eure Hilfen
Ich werde das Makro von Werner verwenden
Gruß Gerhard
Gerne u. Danke für die Rückmeldung. o.w.T.
01.06.2019 21:14:56
Werner
AW: Monat aud Datum
01.06.2019 11:55:08
onur

Private Sub Monat()
Dim z
For z = 2 To 10000
If IsDate(Cells(z, 3)) Then Cells(z, 4) = Format(Cells(z, 3), "MMMM")
Next z
End Sub

AW: Monat aus Datum ...
01.06.2019 12:53:12
Matthias
Hi
Dir hat doch Sepp am 28.05.2019 19:57:16 bereits einen funktionierenden Code geschrieben.
Du hättest ihn leicht anpassen können!
https://www.herber.de/bbs/user/130141.xlsm
Gruß Matthias
Warum nur-warum-faul oder d....
01.06.2019 13:13:32
robert
oder ganz einfach mit PowerQuery
01.06.2019 13:27:08
Matthias
Hi
Userbild
Gruß Matthias
Anzeige
Sehr schöne Lösung und vor allem .. .
01.06.2019 13:35:45
Daniel
so informativ, wie sie sie zustande gekommen ist ;-)
AW: Sehr schöne Lösung und vor allem .. .
01.06.2019 17:06:33
Günther
Moin,
ohne Ironie oder Sarkasmus: Wieso, es steht doch ganz klar dort: Mit "Power Query". Wenn sich ein TE auf VBA versteift ist so etwas ein guter Hinweis, dass andere Lösungswege auch möglich sind. Und wenn (von welcher Seite auch immer) Interesse am Lösungsweg besteht dann wird Matthias gewiss gewillt sein, die wenigen Mausklicks zu dokumentieren. Und insbesondere im Hinblick auf [Zitat]Dir hat doch Sepp am 28.05.2019 19:57:16 bereits einen funktionierenden Code geschrieben.
Du hättest ihn leicht anpassen können![
/Zitat] (und Folge-Beitrag) ist das aus meiner Sicht eine sehr schöne Demonstration dafür, dass ein Forum keine Hängematte für Fragesteller ist, die entweder nicht gewillt oder in der Lage sind, eine existierende Lösung anzupassen oder wenigstens gezielt nachzufragen, was wo wie geändert werden muss.
Gruß
Günther
Anzeige
ich weiß ja nicht, ob du schon mal mit Power
01.06.2019 17:45:04
Daniel
Query gearbeitet hast, aber das ist keine einfache Menüfunktion, sondern fast schon ein eigenes Anwendungs programm, dessen Menü schon fast so viele Einträge enthält wie das Excelmenü und das Kontextmenü kann in Einzelfällen schon mal fast den ganzen Bildschirm einnehmen.
Ein kleiner Hinweis darauf, wie, dh mit welchen Menüfunktionen man die Aufgabe gelöst hat, wäre da schon ganz hilfreich und ist noch lange keine Hängematte.
Gruß Daniel
Excel-ist-sexy kennst Du nicht ? na dann...kwT
01.06.2019 17:52:56
robert
kenn ich schon
01.06.2019 18:01:04
Daniel
aber mir wurde von Günther früher eine PQ-Lösung mit ein paar wenigen Mausklickst versprochen.
davon, dass man sich seitenweise Manuale durchlesen muss, war nie die rede.
Gruß Daniel
Anzeige
Da ja "richtiges" VBA gewünscht war …
01.06.2019 15:55:39
RPP63
Moin!
Der Betreff ist nicht ganz ernst gemeint, folgendes aber sehr wohl:
Das Makro habe ich mit 100.000(!) Daten ausprobiert.
Laufzeit: 1 Sekunde
Modul Modul1
Option Explicit 
 
 
Sub Monat_als_Text() 
Dim Datum, Monat, i& 
Dim Endzeile& 
With Tabelle2 
  Datum = .Range(.Cells(2, 3), .Cells(2, 3).End(xlDown)) 
  Endzeile = Ubound(Datum) + 1 
  Redim Monat(1 To Endzeile - 1, 1 To 1) 
  For i = 1 To Endzeile - 1 
    Monat(i, 1) = Application.GetCustomListContents(8)(Month(Datum(i, 1))) 
  Next 
  .Range(.Cells(2, 4), .Cells(Endzeile, 4)) = Monat 
End With 
End Sub 
Gruß Ralf
Anzeige
AW: Da ja "richtiges" VBA gewünscht war …
01.06.2019 16:44:44
Daniel
das sieht schon viel mehr nach VBA aus als ein kleiner Zweizeiler ohne Schleifen und Variablen:
Sub test()
With Columns(3).SpecialCells(xlCellTypeConstants, 1).Offset(0, 1)
.FormulaR1C1 = "=Text(RC[-1],""MMMM"")"
.Formula = .Value
End With
End Sub
Gruß Daniel
AW: Da ja "richtiges" VBA gewünscht war …
01.06.2019 17:02:03
RPP63
… und läuft sogar mehr als doppelt so schnell wie meine Array-Variante!
DAS hätte ich jetzt nicht gedacht!
Aber die Ursache habe ich bereits gefunden.
Wenn ich Application.GetCustomListContents(8) in ein drittes Array auslagere, ist meine Lösung doppelt so schnell wie Deine.
Ehrlich gesagt, sehe ich nicht, dass kürzerer Code "besser" ist.
Oder gehörst Du jetzt zur snb-Fraktion?
;)
Gruß Ralf
Anzeige
du solltest mitbekommen haben, dass ich hier
01.06.2019 17:38:09
Daniel
meine eigene Fraktion bilde.
was "besserer" Code ist, ist immer auch "geschmackssache", vorallem dann die Verarbeitungsgeschwindigkeiten nicht mehr spürbar sind, dann ist es wurscht, ob ein Code jetzt 0,1 oder 0,2 sec benötigt, dann werden andere Aspekte wichtiger (es sei denn, man macht gerade einen Geschwindigkeitswettbewerb)
ich für meinen Teil bevorzuge Codes, die möglichst schleifenfrei sind, weil Schleifen einfach nerven, wenn man den Code im Einzelstep testen muss.
Außerdem bevorzuge ich Codes, bei denen der Code selbst schon möglichst viel "Klartext" enthält, so dass er auch mit wenig Dokumentation verstanden werden kann.
bei "RemoveDuplicates" sollte jedem der englisch kann klar sein, was passiert, bei eine Schleife mit komischen Objekten (Dictionary) muss man dass auf jeden Fall erklären, warum jetzt hier die Schleife läuft.
Außerdem bin ich Excelanwender und kein Programmierer, von daher bevorzuge ich auch Codes, die sich möglichst an der Vorgehensweise orientieren, die man auch ohne Makro in der Tabelle verwenden würde (was zudem den Vorteil hat, dass man das ganze auch mal ausprobieren kann, ohne erst ein Makro schreiben zu müssen)
und ja, eine Schleife mit Arrays ist noch schneller als mein ZweiZeiler, aber warum irgendwelche "CustomLists" verwenden, wenn es die Format-Funktion gibt:
Sub AR2()
Dim arr
Dim i As Long
With Columns(3).SpecialCells(xlCellTypeConstants, 1)
arr = .Value
For i = 1 To UBound(arr, 1)
arr(i, 1) = MonthName(Month(arr(i, 1)))
Next
.Offset(0, 1).Value = arr
End With
End Sub
Gruß Daniel
Anzeige
Eine allgemeine Bemerkung zu PQ
02.06.2019 08:54:03
lupo1
PQ verleitet die Helfer - bestimmt ohne böse Absicht - komischerweise meistens dazu, einem die Wurst vor die Nase zu halten: "Guck mal, beiß zu!"
In Foren gibt man aber eigentlich eine konkrete Hilfe (der einzige Allgemeinhinweis war vorher nur für Pivot).
Warum tun sie das für PQ nicht? Vermutlich deshalb, weil sie dann Menüschritte herunterbeten müssten, da es eine andere geeignete Foren-Darstellungsweise (bspw. via Jeanie/Ziplies/Bamberg) nicht gibt.
Auch die - von mir - manchmal angebotenen "Konstruktionsmakros" sind hier zwar möglich, aber "programmzeilen-optisch" im Falle PQ eine Katastrophe.
Natürlich kann man auch gleich die entsprechende Datei anhängen. Da finde ich aber gut, wenn man das nicht bei jedem PQ-Hinweis tut.
Anzeige
Nachtrag
02.06.2019 08:57:30
lupo1
PQ liegt eine "Sprache" (M?) zugrunde, ähnlich wie SQL.
Deren Code könnte man natürlich zeigen. Allerdings nicht ohne ein Tabellenbeispiel mitzuliefern.
Beides zusammen könnte man immerhin als Konstruktionsmakro liefern.
AW: Eine allgemeine Bemerkung zu PQ
02.06.2019 12:43:06
Daniel
"Warum tun sie das für PQ nicht? Vermutlich deshalb, weil sie dann Menüschritte herunterbeten müssten, da es eine andere geeignete Foren-Darstellungsweise (bspw. via Jeanie/Ziplies/Bamberg) nicht gibt."
"Menüschritte herunterbeten"?
Das mache ich eigentlich immer, wenn ich einen Lösungsweg für eine Aufgabenstellung in Excel beschreibe.
Wie soll der Fragesteller sonst in der Vielzahl der Möglichkeiten wissen, was ich meine?
Gruß Daniel
Anzeige
Wie schön.
02.06.2019 15:23:36
lupo1
Es geht hier aber um PQ, nicht Excel.
Stimmt, PQ und Excel, zwei völlig verschiedene
02.06.2019 15:34:53
Daniel
Programme, die nichts miteinander zu tun haben.
..und wieso dann in Excel integriert ?
02.06.2019 16:21:09
robert
AW: ..und wieso dann in Excel integriert ?
02.06.2019 17:01:17
Günther
... auch wenn diese Diskussion bei mir nur noch Kopfschütteln hervorruft (und mich zu diesem Blog-Beitrag bewogen hat: => http://www.excel-ist-sexy.de/gruesse-vom-murmeltier/ ) ist es doch eine Tatsache, dass das Power Query-Add-In ausschließlich in Excel genutzt werden kann.
Gruß
Günther
naja Lupo schrieb doch, dass PQ und Excel
02.06.2019 17:09:31
Daniel
verschieden sind.
zum Murmeltier
03.06.2019 02:53:44
lupo1
Hallo Günther,
so, wie WF in 80% aller Antworten auf "s. unsere Excelformel xxx"
und sulprobil in 97% aller Antworten auf einen eigenen VBA-Link
verweist, könntest Du ja immerhin auf konkrete PQ-Ausarbeitungen auf Deiner Seite verlinken. Das gilt auch für Frank Furter. Niemand verlangt, dass Du für ignorante und ungebildete Frager zeitaufwändig das Rad neu erfindest.
Das hätte dann die nötige Mindest-Schöpfungshöhe für eine Hilfestellung.
Legitim ist bei Überschreitung des Forumsrahmens auch immer, abwehrend zu sagen: "Die Frage ist zu umfangreich/speziell/entgeltumgehungsverdächtig/sonstiges; für eine Antwort kann bei mir oder anderen gern ein kommerzielles Angebot eingeholt werden." Dann kann der Frager zumindest einordnen, dass er vielleicht zu viel erwartet.
Aber einfach nur "Nimm PQ"? Ist irgendwie zumindest blutleer. Einfallslos.
Da man M am ehesten mit SQL vergleichen kann: Mit der Angabe "Fahr doch mit einem SQL-Statement drüber" (Access, das frühere Query, Fremd-DB ...) war einem ja auch zu keiner Zeit geholfen. Und PQ hat dem ganzen im Grunde ja nur eine Menüoberfläche übergestülpt und versucht nun, Excel-Tabellen wie Access-Tabellen zu sehen. Eine Oberfläche, die glücklicherweise sogar aufgezeichnet werden kann, wobei die Nachbearbeitung des Codes noch sehr schwierig bzw. fummelig erscheint.
allgemeine Bemerkung zu Deiner Bemerkung ...
02.06.2019 16:21:18
Matthias
Hallo Lupo,
Zitat
In Foren gibt man aber eigentlich eine konkrete Hilfe
da Du Dich ja anscheinend nur an meinem Alternativ-Vorschlag das es auch mit PQ funktioniert störst, nur soviel:
Ich hatte vorher eine funktionierende VBA-Lösung vorgeschlagen!
Inkl. Datei!
AW: Monat aus Datum ... - von Matthias L am 01.06.2019 12:53:12
Es ist meine gutes Recht auch andere Alternativen aufzuzeigen, das hat auch Günther(am 01.06.2019 17:06:33) bestätigt.
Gerhard hat dazu nichts nachgefragt. Also muss ich auch nichts weiter erklären.
Hei ti tei - Erklärung vorbei
Gruß Matthias
Ich meinte PQ
03.06.2019 02:09:25
lupo1
... und wundere mich seit Anbeginn von PQ (ca. 2-3 Jahre verstärkt), dass die meisten, die PQ propagieren, einfach nur sagen:
"Nimm PQ".
War das jetzt immer noch nicht zu verstehen?
Dass Daniel gern unsachlich jede Diskussion zerfetzt, wenn er möchte, ist ja nun leidlich bekannt. Hier in diesem Thread bringt er die Krönung.
Ich wollte nur darauf hinweisen, dass PQ-Lösungen in Foren genauso einen Anspruch haben KÖNNTEN, wie Formeln oder VBA genauer, also mit Butter bei die Fische, erläutert zu werden. Statt nur zu sagen: "Nimm PQ".
Wenn ich da irgendwie falsch liege, kann man ja noch mal gern versuchen, diese meine Meinung zu demontieren. Aber nicht auf die Weise, wie es in diesem Thread bislang non-argumentativ geschah. Da kann ich nur blöde grinsend sagen: "Ich Dich nix verstehen."
Hast Du Hunger, lupo1? Dann iss was. Bist Du krank? Dann geh zum Arzt. Willst Du Lösungen im Forum lesen? Bekommst Du nicht mehr, denn ab jetzt gilt RTFM.
AW: Ich meinte PQ
03.06.2019 03:05:03
Daniel
"Dass Daniel gern unsachlich jede Diskussion zerfetzt, "
so?
wie kommst du zu dieser Behauptung?
Bitte Begründe ausführlich und mit konkreten Beispielen (incl Links), ansonsten werte ich das als üble Nachrede und erwarte eine ernst gemeinte Entschuldigung.
Ich hoffe nicht, dass du willst, dass sich der Betreiber dieses Forums mit dir befassen muss.
Heul doch
03.06.2019 03:39:17
lupo1
1. verlängerst Du Threads bis ins Nirwana, nur weil Du immer das letzte Wort haben willst. Das weiß jeder, und jeder wird mir hier ganz klar zustimmen - und Du wirst dazu auch jetzt nur eine ausgesprochen blöde Antwort bringen! Und das ist keine üble Nachrede.
2. Zum Thema: Ich sprach nicht von Excel bei den Menüfolgen, sondern von PQ. Prompt laberst Du wieder irgendwas dazwischen, wovon ich nie gesprochen habe. Bei Excel kommen Anleitungen in Form von Menüfolgen mit weitem Abstand hinter Formel- und VBA-Nennung mal vor. Es ging aber nicht um Excel, sondern um PQ, wo Menüfolgen als Antwort für unbedarfte Frager momentan fast allein als Möglichkeit für eine Lösungsschilderung stehen. Manche PQ-Antworter posten dann ein Bildchen des PQ-Ergebnisses. Darauf kann ich solchen Leuten nur entgegnen: "Da wollte jemand ne Mona Lisa, also bringst Du ihm eine Mona Lisa.". Zur einer angehängten Excel-PQ-Datei als ultima ratio habe ich irgendwo anders schon gesprochen.
3. Abgesehen davon bist Du fachlich universell gut. Du könntest perfekt sein, trätest Du nicht gelegentlich so impertinent auf.
Ich werde Dir jetzt wieder das letzte Wort überlassen, denn mein Appell wird ungehört bei Dir verhallen. Das Zerfetzen ist Bestandteil von Punkt 1.
und ich meinte meine VBA-Antwort
03.06.2019 18:08:47
Matthias
Hi Lupo
"Nimm PQ".
Hab ich nicht geschrieben!
War das jetzt auch zu verstehen?
Schön das Du schreibst:
... einen Anspruch haben KÖNNTEN
Du liest aber in den Beiträgen manchmal auch nur das was Du lesen willst.
Nochmal:
Ich habe eine funktionierende VBA-Lösung (Erweiterung des Codes von Sepp) angeboten!
Als Alternative habe ich Gerhard geschrieben das man so etwas auch mit PQ lösen KÖNNTE.
Was Dich jetzt daran störte kann ich nicht nachvollziehen.
Da Du Deinen Beitrag in diesen Thread unterbringst und ich der Einzige war der PQ einfach nur als Alternative! angeboten hat,
hast Du also mich persönlich gemeint.
Gerhard hätte ja nachfragen können, hat er aber nicht!
Wenn Du ein generelles Problem hast mit PQ, mach doch einfach mal einen eigenen Thread auf.
Frage doch dann dort nach wie es geht und evtl. ist jemand bereit es Dir zu erklären.
Mir hat es niemand erklärt, ich habe es mir erarbeitet!
Deine Meinung über Daniel teile ich zu 100%
Gruß Matthias
Nee, alles gut
04.06.2019 09:22:49
lupo1
... ich wollte Dir nichts vorwerfen ... und vielleicht habe ich tatsächlich was überlesen.
Daniel ist einerseits sehr fundiert, gibt gute inhaltliche Antworten und ist einer der wenigen Helfer, der geduldig auch lange die Basics erklärt.
Auf der anderen Seite ... wurde schon alles gesagt ;-)

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige