Excel Frage Auflistung chronologisch?

4 Antworten

Das geht mittlerweile ganz einfach mit der Funktion FILTER.

Bild zum Beitrag

Die Auswahlboxen müssen halt mit den entsprechenden Feldern in einer Spalte verknüpft sein.

 - (Computer, Microsoft, Formel)

Hey, ich habe mal vor einiger Zeit ein Tool gebaut, womit ich einen kleinen Text Editor in Excel habe. Der eingegebene Text wurde dann anhand von Tags formatiert, ähnlich den HTML Tags. Also um eine Schrift fett zu machen, konnte man den Text auswählen, dann auf einen Button klicken und davor und danach wurde ein <b> bzw. </b> gesetzt. Also z.B.: "Hier ist mein <b>fettes</b> Wort".
Die Tags wurde dann in die Word Datei mit geschrieben und anschließend in Word formatiert. So kann man in Excel Texte schreiben, formatieren mittels Tag und anschließend in Word automatisch formatieren lassen.
Es gehen auch Aufzählungen, einfach mittels <ul> und </ul>

Du könntest also z.B. in deiner Excel Arbeitsmappe die Aufzählungen erstellen und davor ein <ul> und dahinter ein </ul> setzen. (Für Aufzählungen oder ein <ol> und </ol> für Nummerierungen) Dann das Makro entsprechend verwenden und anpassen und es sollte gehen. Hier das Makro. Habe ich selbst erstellt:

Sub TagConverter(wordApp As Word.Application)

' This sub converts certain Tags to Word formatting and inserts images

' Tags might be: <b>text</b> to bold text

' Images have the form <Bild [path]> with [path] being the path to the image, e.g. c:\example.jpg

' Tags are aligned to some HTML tags, but also individual ones are used

' Replacement.Style Enumeration numbers: https://learn.microsoft.com/de-de/office/vba/api/word.wdbuiltinstyle

   

  Application.ScreenUpdating = False

   

  With wordApp.ActiveDocument.Range.Find

    ' Introduction

    .ClearFormatting

    .Format = True

    .Forward = True

    .MatchWildcards = True

    .Wrap = wdFindContinue

    .Replacement.text = "\2"

         

    ' Headline 1 <h1>

    .Replacement.ClearFormatting

    .text = "\<(h1\>)(*)\</\1"

    .Replacement.Font.size = 24

    .Replacement.Style = wdStyleHeading1

    .Execute Replace:=wdReplaceAll

     

    ' Headline 2 <h2>

    .Replacement.ClearFormatting

    .text = "\<(h2\>)(*)\</\1"

    .Replacement.Font.size = 18

    .Replacement.Style = wdStyleHeading2

    .Execute Replace:=wdReplaceAll

     

    ' Headline 3 <h3>

    .Replacement.ClearFormatting

    .text = "\<(h3\>)(*)\</\1"

    .Replacement.Font.size = 14

    .Replacement.Style = wdStyleHeading3

    .Execute Replace:=wdReplaceAll

     

     

    ' Text Underline <u>

    .Replacement.ClearFormatting

    .text = "\<(u\>)(*)\</\1"

    .Replacement.Font.Underline = True

    .Execute Replace:=wdReplaceAll

     

    ' Bold text <b>

    .Replacement.ClearFormatting

    .text = "\<(b\>)(*)\</\1"

    .Replacement.Font.Bold = True

    .Execute Replace:=wdReplaceAll

     

    ' Italic <i>

    .Replacement.ClearFormatting

    .text = "\<(i\>)(*)\</\1"

    .Replacement.Font.Italic = True

    .Execute Replace:=wdReplaceAll

     

     

     

    ' unordered list (bullet list) <ul>

    .Replacement.ClearFormatting

    .text = "\<(ul\>)(*)\</\1"

    .Replacement.Style = wdStyleListBullet

    .Execute Replace:=wdReplaceAll

     

    ' ordered list (numbered list) <ol>

    .Replacement.ClearFormatting

    .text = "\<(ol\>)(*)\</\1"

    .Replacement.Style = wdStyleListNumber

    .Execute Replace:=wdReplaceAll

     

    ' Keep text together in paragraph (between page change)

    .Replacement.ClearFormatting

    .text = "\<(ktt\>)(*)\</\1"

    .Replacement.ParagraphFormat.KeepWithNext = True

    .Replacement.ParagraphFormat.KeepTogether = True

    .Execute Replace:=wdReplaceAll

     

    ' Carriage Return / Line Shift, next line <br>

    .Replacement.ClearFormatting

    .text = "<br>"

    .Replacement.text = "^p"

    .Execute Replace:=wdReplaceAll

     

  End With

   

   

  ' Insert images at specific positions in Word

  ' Image is structured: <Bild [path]> So e.g. <Bild C:\Data\Example.jpg>

  ' So within Word, a search is made for "<Bild" and for ">" Everything in between is the path.

   

  Dim strPath As String

   

  With wordApp.ActiveDocument.Content.Find

    .text = "\<Bild " & "(*)" & "\>"

    .Forward = True

    .Wrap = wdFindStop

    .MatchWildcards = True

    .Replacement.text = ""

    .Execute ' Find first one

    Do While .Found = True

      strPath = Mid(.Parent.text, 7, Len(.Parent.text) - 7)

      .Parent.Delete

      wordApp.ActiveDocument.InlineShapes.AddPicture fileName:=strPath, LinkToFile:=False, SaveWithDocument:=True, Range:=.Parent

      .Execute ' Find next ones

    Loop

  End With

  Application.ScreenUpdating = True

   

End Sub

Woher ich das weiß:Berufserfahrung

z.B. so ... in einer Hilfsspalte die Auswahl zählen lassen und per SVerweis abholen.

Bild zum Beitrag

 - (Computer, Microsoft, Formel)

Gipfelstuermer  14.10.2024, 00:21

schönes Tool, nur inwiefern hilft das bei der Auflistung der Werte, bei denen der Haken gesetzt ist.

z.B. so

Bild zum Beitrag

=ZEILENWAHL(A1:A28;ZUZEILE(WENN(B1:B28=WAHR;ZEILE(1:28);#NV);2))
=FILTER(A1:A28;B1:B28=WAHR)

wobei ich den Filter bevorzugen würde.

Edit Filter bitte ignorieren, @DaCypher hat schon die gleiche Antwort gegeben, die helfen sollte, die sogar noch ein ticken kürzer ist.

Woher ich das weiß:Berufserfahrung – sowohl Beruf als auch Hobby
 - (Computer, Microsoft, Formel)