Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1632to1636
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
VBA gleiche Jahreszahlen zusammenfassen
17.07.2018 10:26:47
Berg
Hallo allerseits,
ich habe in Tabelle3 Spalte C8:C100 lauter Datum stehen und möchte diese in Tabelle2 Spalte C8:C100 nach Jahreszahl gruppiert haben d.h. aus
01.01.2017
02.09.2017
01.10.2018
02.11.2018
03.01.2020
wird über den VBA-Code
2017
2018
2019 (wird trotzdem aufgelistet auch wenn diese oben fehlt)
2020
Ich weiß das ganze geht über eine Pivottabelle aber ich brauche das ganze per VBA-Code. Vorab allerbesten Dank für eure Hilfe.VG

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA gleiche Jahreszahlen zusammenfassen
17.07.2018 11:07:01
Oberschlumpf
Hallo,
füge den folgenden Code in ein allgemeines VBA-Modul ein:

Sub sbYear()
Dim lloRowTab3 As Long, lloRowTab2 As Long, lshTab2 As Worksheet
Set lshTab2 = Sheets("Tabelle2")
'in der nächsten Code-Zeile werden
'alle Einträge in Tabelle2!C8:C100 gelöscht;
'wenn nicht gewollt, dann die nächste Zeile löschen
lshTab2.Range("C8:C100").Value = ""
lloRowTab2 = 8
With Sheets("Tabelle3")
For lloRowTab3 = 8 To 100
If Year(.Range("C" & lloRowTab3).Value)  lshTab2.Range("C" & lloRowTab2). _
Value Then
lshTab2.Range("C" & lloRowTab2).Value = Year(.Range("C" & lloRowTab3).Value) _
lloRowTab2 = lloRowTab2 + 1
End If
Next
End With
Set lshTab2 = Nothing
End Sub

Beachte!
Der Code funktioniert nur, wie gewünscht, wenn auch, wie in deinen hier gezeigten Bsp-Zeilen, die Realzeilen in Tabelle3!C8:C100 sortiert sind
2019 wird in Tabelle2 nur dann eingetragen, wenn auch in Tabelle3 vorhanden.
Hilfts?
Wenn nicht, zeig bitte per Upload eine Bsp-Datei.
Ciao
Thorsten
p.s. die hier gezeigten Zeilenumbrüche, eingeleitet durch _ am Ende von 2 Zeilen, werden leider durch die Forumssoftware erzeugt + sind im Code nicht enthalten
Anzeige
AW: VBA gleiche Jahreszahlen zusammenfassen
17.07.2018 11:35:37
Berg
Hallo Thorsten,
vorab Danke für deine Antwort. Die Datums in Tabelle3 Spalte C sind nicht zwangsweise sortiert.
Dein Code liefert in Tabelle2 Spalte C nur:
2017
2017
2018
2018
2020
1899
1899
1899
1899... bis "C100"
hmm?...hast du von meiner Antwort...
17.07.2018 12:03:34
meiner
...nicht alles gelesen?
Hallo,
*WiederholungAn*
Hilfts?
Wenn nicht, zeig bitte per Upload eine Bsp-Datei.
*WiederholungAus*
Ciao
Thorsten
AW: Frechheit!
17.07.2018 12:16:44
Fennek
Hallo,
in der Eingangsfrage war diese Erweiterung in 19-te Jahrhundert nicht erkennbar und auch nicht erwartbar.
mfg
AW: Frechheit!
17.07.2018 13:37:36
Berg
Hallo Thorsten,
eine Beispieldatei kann ich dir erst heute Abend hochladen (entschuldige dies bitte).
Letzten Endes steht in dieser aber nicht viel drin.
In Tabelle3.range("C8:C100") werden über eine Userform Datum eingetragen.
Z.B so:
01.01.2017
01.02.2017
02.03.2019
05.02.2022 usw also nicht zwangsweise sortiert.
In Tabelle2.range("C8:C100") sollen diese dann zusammengefasst werden zu
2017
2018
2019
2020
2021
2022 (ist 2022 in Tabelle3 das letzte Datum ist auch in Tabelle2 2022 das letzte Datum)
Gruß
@Fennek: Erst fragen und denken, dann über andere urteilen und schimpfen. Das 1899 liefert der VBA-Code von Thorsten und hat nichts mit dem 19-ten Jahrhundert zu tun.
Anzeige
AW: Frechheit!
17.07.2018 13:41:24
Oberschlumpf
Hallo,
dann sende bitte heute Abend per Upload eine Bsp-Datei inkl Userform + sonstigem Code; wenn vorhanden, sind schon eingetragene Bsp-Datenzeilen auch gern gesehen.
Ciao
Thorsten
es kann sein, ...
17.07.2018 13:39:17
Oberschlumpf
Hi Fennek,
...das mein Code Jahreszahlen älter 1900 erzeugt.
Der Fragende weist ja darauf hin, dass die Einträge 1899 etc in Tabelle2 erscheinen.
Tabelle2 ist aber das Ziel, nicht die Quelle ;-)
Und mein Code macht einfach stur von 8-100, was im Code drin steht....aus dem Grund, weil ich ja nix zum Testen habe.
Keep cool, baby ;-)
Ciao
Thorsten
AW: VBA gleiche Jahreszahlen zusammenfassen
17.07.2018 19:34:37
Sepp
Hallo Berg,
das sollte genügen.
Sub groupYears()
  Dim varOut As Variant, lngIndex As Long, lngMin As Long, lngMax As Long

  With Sheets("Tabelle3")
    If Application.Count(.Range("C8:C100")) > 0 Then
      lngMin = Year(Application.Min(.Range("C8:C100")))
      lngMax = Year(Application.Max(.Range("C8:C100")))
    End If
  End With
  If lngMin > 0 And lngMax > 0 Then
    Redim varOut(1 To lngMax - lngMin + 1, 1 To 1)

    For lngIndex = 1 To Ubound(varOut, 1)
      varOut(lngIndex, 1) = lngIndex + lngMin - 1
    Next

    With Sheets("Tabelle2")
      .Range("C8:C100") = ""
      .Range("C8").Resize(Ubound(varOut, 1), 1) = varOut
    End With
  End If

End Sub

VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 16 - mit VBAHTML 12.6.0


 ABCDEF
1Gruß Sepp
2
3

Anzeige
AW: VBA gleiche Jahreszahlen zusammenfassen
17.07.2018 22:24:13
Berg
Servus Sepp,
in der Tat, das tut es :-) Genau so wollte ich das haben. Perfekt!!!!
Sepp, ich danke dir vielmals!!! Danke, danke und nochmals DANKE :)
VG Berg

305 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige