Thema Datum  Von Nutzer Rating
Antwort
04.01.2022 08:14:33 Tung
Solved
Blau Sortieren von Terminen
05.01.2022 00:55:39 Gast36944
NotSolved
05.01.2022 07:12:47 Gast30911
NotSolved

Ansicht des Beitrags:
Von:
Gast36944
Datum:
05.01.2022 00:55:39
Views:
467
Rating: Antwort:
  Ja
Thema:
Sortieren von Terminen

Hallo Tung,

nur zwei Beispieldatensätze sind natürlich herzlich wenig. Gibts denn die Termine nur zur vollen Stunde oder kann auch ein Termin um 11:25 bzw. 13:19 stattfinden? Sind die Spalten im Textfile wirklich durch 5 bzw. 4 Leerzeichen getrennt oder erfolgt die Trennung anders? Und woher weißt du eigentlich um welche Woche es sich handelt? Kann der Kalender auch Wochenübergreifend sein, also z.B. zwei verschiedene Dienstage haben?

Mit VBA kann man da schon etwas machen. Im Prinzip müsste der Code dafür dann in etwa so aussehen. Probier ihn aus. Natürlich musst du die Variablen entsprechend anpassen.

Option Explicit
Sub Kalender()

Dim Überschrift As Boolean, Datei As Variant, Terminzeile As String
Dim Tag As String, Zeit As String, Termin As String
Dim BegZeit As Long, BegTermin As Long, spa As Long, zei As Long, sh As Worksheet, cl As Range

BegZeit = 8 'die Uhrzeit beginnt am 8. Zeichen. und ist 5 Zeichen lang.
BegTermin = 17 'Der Termin beginnt am 17. Zeichen und kann unterschiedlich lang sein.

Überschrift = False 'True wenn die erste Zeile im textfile Spaltenüberschriften enthält.
Datei = Application.GetOpenFilename("Text Files (*.txt), *.txt")
If Datei = False Then End


Set sh = Sheets.Add
sh.Range("B1:H1") = Array("Mo", "Di", "Mi", "Do", "Fr", "Sa", "So")

Open Datei For Input As #1
 zei = 1
 Do While Not EOF(1)
  Line Input #1, Terminzeile
  If Überschrift = False Then
  
   Tag = Left(Terminzeile, 2)
   Zeit = Trim(Mid(Terminzeile, BegZeit, 5))
   Termin = Trim(Right(Terminzeile, Len(Terminzeile) - BegTermin + 1))
  
   spa = sh.Range("B1:H1").Find(Tag).Column
   Set cl = sh.Range("A:A").Find(Zeit)
   If cl Is Nothing Then
    zei = zei + 1
    Cells(zei, 1) = Zeit
   Else
    zei = cl.Row
   End If
  
   If Cells(zei, spa).Value = "" Then Cells(zei, spa).Value = Termin Else Cells(zei, spa).Value = Cells(zei, spa).Value & ", " & Termin
   Überschrift = False
  End If
 Loop
Close #1

sh.UsedRange.Sort Key1:=sh.UsedRange.Range("A:A"), Header:=xlYes 'sortiert die Uhrzeiten aufsteigend

End Sub

Gruß Mr. K.

 

 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
04.01.2022 08:14:33 Tung
Solved
Blau Sortieren von Terminen
05.01.2022 00:55:39 Gast36944
NotSolved
05.01.2022 07:12:47 Gast30911
NotSolved