EXCEL_Wert ausgeben bis nächster Wert erscheint

The_hurricane

Ensign
Registriert
Apr. 2011
Beiträge
161
Hallo zusammen

Ich habe ein kleines Excel Problem welches ich nicht so einfach gelöst bekomme.

Folgende Ausgangslage:
Ich erhalte einen Excel Export aus einem anderen Programm. Mit unter anderem diesem Inhalt: Mitarbeiter, Datum und Bemerkungstext (siehe Beispiel Anhang)
Da ich das ganze am Schluss nach dem Datum sortieren will müssen zuerst alle Felder der Mitarbeiter ergänzt werden. Beim Export wird nur jeweils die erste Zeile mit dem Mitarbeiter Namen ausgefüllt

Was ich möchte:
Die leeren Mitarbeiterfelder müssen mit dem richtigen Mitarbeiter aufgefüllt werden. Bedeutet solange das Feld B oder C Inhalt hat fülle das Feld A mit dem richtigen Mitarbeiter (der in der obenstehenden Zeile) auf.
Der Vorteil ist, dass bei jedem Mitarbeiterwechsel eine Leerzeile vorhanden ist.

Ich habe es versucht über eine Hilfsspalte und der WENN Funktion in Kombination mit ISTLEER zu lösen. Komme aber nicht darauf wie ich definieren kann welcher Mitarbeiter eingesetzt wird und wie ich den wechsel auf den nächsten vornehme.

Ich hoffe Ihr könnt mir hiermit weiterhelfen.

Besten Dank!

Anhang anzeigen Beispiel.xlsx
 
Hallo,
Kannst du bitte nochmal die Prüflogik anhand der Mitarbeiter Name gefunden wird erklären ohne Bezug auf eine Excel Funktion? Bitte mit zwei Beispielnamen (Müller, Schulz?).

Erdt wenn man eine Prüflogik hat kannan diese in Excel gießen imho.
 
Hier ist ein kleiner Codeschnipsel. Diesen einfach in das VBA Tabellenblatt deines Reports kopieren (Alt + F11). Ohne Hilfszeile.

Name in A und Datum in B

Sollte soweit selbsterklaerend sein.

Wenn du die Datei als .xlsx speicherst, ist der Code auch weg...keiner merkt was :-)

Viel Spass

Code:
Sub Ausfuellen()
Dim lngZeile         As Long
Dim strAktuellerName As String

'Startzeile festlegen
lngZeile = 3

With ThisWorkbook.Worksheets(1)
    Do
        lngZeile = lngZeile + 1
        If Not .Cells(lngZeile, 1).Value = "" And Not .Cells(lngZeile, 2).Value = "" Then
            strAktuellerName = .Cells(lngZeile, 1).Value
        ElseIf Not .Cells(lngZeile, 2).Value = "" Then
            .Cells(lngZeile, 1).Value = strAktuellerName
        End If
    
    If lngZeile = 500 Then Exit Do 'Sicherheits Unterbrechung nach 500 Zeilen
    Loop Until .Cells(lngZeile + 0, 1).Value = "" And _
               .Cells(lngZeile + 1, 1).Value = "" And _
               .Cells(lngZeile + 2, 1).Value = ""
End With
End Sub
 
Ein Makro?
Formeltechnisch wäre es
=WENN(ISTTEXT(A4);A4;WENN(ISTLEER(B4);"";D3))
einzutragen und runterzuziehen in die Hilfsspalte ab Zeile 4, wenn
- die Hilfsspalte Spalte D ist
- die Tabelle mit den Namen ab Zeile 4 beginnt
- in Spalte A die Namen oder nichts stehen
- in Spalte B nur ein Datum steht, wenn es um einen Mitarbeiter geht und ansonsten leer
 
Zurück
Oben