Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1816to1820
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
Fortlaufende Nummer automatisch
03.03.2021 13:14:46
Ulrich
Hallo,
ich habe folgendes Problem.
In der folgender Datei lese ich Daten aus anderen Tabellen ein.(Aktualisieren)
Jetzt möchte ich in Spalte A zu jeder Zeile eine fortlaufende Nummer haben.
Ich habe schon einiges probiert, aber ich bekomme es leider nicht hin.
Vielleicht kann einer helfen. Danke vorab.
Gruß Ulli
https://www.herber.de/bbs/user/144406.xlsm

31
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: warum nicht eine einfache Formel ...
03.03.2021 13:33:07
neopa
Hallo Ulrich,
... in Spalte A könnte man einfach mit z.B.: =WENN(B#="";"";ANZAH2(B$#:B#)) zählen.
Der Bezug kann natürlich auch eine andere Spalte ausgerichtet sein.
Gruß Werner
.. , - ...

AW: warum nicht eine einfache Formel ...
03.03.2021 13:44:49
Ulrich
Hallo Werner,
danke für deine Nachricht.
Es wäre schon vorteilhaft die fortlaufende Nummerierung in das Aktualisierungs-Makro zu integrieren, da vor dem aktualisieren alle Daten und Formatierungen gelöscht werden und die Formel dann auch weg wäre.
Gruß Ulli

AW: warum nicht eine einfache Formel ...
03.03.2021 14:15:49
Nepumuk
Hallo Ulli,
teste mal:
Public Sub Test2()
    Cells(7, 1).Value = 1
    Range(Cells(7, 1), Cells(Cells(Rows.Count, 2).End(xlUp).Row, 1)).DataSeries
End Sub

Gruß
Nepumuk

Anzeige
AW: warum nicht eine einfache Formel ...
03.03.2021 14:54:44
Ulrich
Hallo Nepumuk,
danke, funktioniert einwandfrei.
Ich rufe das Makro über "Call" im Makro Aktualisieren auf.
Hätte ich den Code dort auch direkt integrieren können?
Gruß Ulli

AW: warum nicht eine einfache Formel ...
03.03.2021 14:59:03
Nepumuk
Hallo Ulli,
ja, würde ich auch.
Gruß
Nepumuk

AW: warum nicht eine einfache Formel ...
03.03.2021 15:05:07
Ulrich
Hallo Nepumuk,
ich weiss nur nicht an welcher Stelle bei den ganzen "With" Anweisungen.
Gruß Ulli
Public Sub Aktualisieren()
Const COLUMN_NUMBER As Long = 3
Dim objFileSearch As clsFileSearch, objFileDialog As FileDialog
Dim objWorkbook As Workbook
Dim ialngIndex As Long, lngFileCount As Long
Dim strFolder As String
Set objFileDialog = Application.FileDialog(fileDialogType:=msoFileDialogFolderPicker)
With objFileDialog
.AllowMultiSelect = False
.ButtonName = "Auswählen"
.Title = "Ordner auswählen"
.InitialFileName = ThisWorkbook.Path & "\"
If .Show Then strFolder = .SelectedItems(1)
End With
Set objFileDialog = Nothing
If strFolder  vbNullString Then
With Application
.Calculation = xlCalculationManual
.EnableEvents = False
.ScreenUpdating = False
End With
With Tabelle1
Call .Range(.Cells(7, 1), .Cells(.Rows.Count, 15)).ClearContents
Range(.Cells(7, 1), .Cells(.Rows.Count, 15)).Borders.LineStyle = xlNone
End With
With Tabelle1
Call .Range(.Cells(7, COLUMN_NUMBER), Cells(.Rows.Count, COLUMN_NUMBER)). _
ClearContents
End With
Set objFileSearch = New clsFileSearch
With objFileSearch
.CaseSenstiv = False
.Extension = "*.xlsm"
.FolderPath = strFolder
.SubFolders = True
.NewSearch = True
.SearchLike = "UA_*"
lngFileCount = .Execute(Sort_by_Name, Sort_Order_Ascending)
For ialngIndex = 1 To lngFileCount
With .Files(ialngIndex)
Set objWorkbook = Workbooks.Open(Filename:=.Path, UpdateLinks:=3, ReadOnly:= _
True)
Call Tabelle1.Hyperlinks.Add(Anchor:=Tabelle1.Cells(ialngIndex + 6,  _
COLUMN_NUMBER), _
Address:=.Path, TextToDisplay:=.Filename)
With objWorkbook.Worksheets(1)
'Tabelle1.Cells(ialngIndex + 6, 1).Value = .Cells(1, 8).Value
Tabelle1.Cells(ialngIndex + 6, 2).Value = .Range("Datum").Value
Tabelle1.Cells(ialngIndex + 6, 4).Value = .Range("Nachname").Value
Tabelle1.Cells(ialngIndex + 6, 5).Value = .Range("Vorname").Value
Tabelle1.Cells(ialngIndex + 6, 6).Value = .Range("N").Value
Tabelle1.Cells(ialngIndex + 6, 7).Value = .Range("U").Value
Tabelle1.Cells(ialngIndex + 6, 8).Value = .Range("Tä").Value
Tabelle1.Cells(ialngIndex + 6, 9).Value = .Range("A").Value
Tabelle1.Cells(ialngIndex + 6, 10).Value = .Range("U").Value
Tabelle1.Cells(ialngIndex + 6, 11).Value = .Range("V").Value
Tabelle1.Cells(ialngIndex + 6, 12).Value = .Range("").Value
Tabelle1.Cells(ialngIndex + 6, 13).Value = .Range("").Value
Tabelle1.Cells(ialngIndex + 6, 15).Value = .Range("").Value
'Tabelle1.Cells(ialngIndex + 6, 14).Value = .Range("").Value
End With
With Tabelle1
With .Range(.Cells(ialngIndex + 6, 1), .Cells(ialngIndex + 6, 15))
Call .BorderAround(LineStyle:=xlContinuous, Weight:=xlThin)
With .Borders(xlInsideVertical)
.LineStyle = xlContinuous
.Weight = xlThin
End With
End With
End With
Call objWorkbook.Close(SaveChanges:=False)
Set objWorkbook = Nothing
End With
Next
End With
Set objFileSearch = Nothing
With Application
.Calculation = xlCalculationAutomatic
.EnableEvents = True
.ScreenUpdating = True
End With
End If
Call Nummer
End Sub


Anzeige
AW: warum nicht eine einfache Formel ...
03.03.2021 15:08:57
Nepumuk
Hallo Ulli,
an das Ende nach: Set objFileSearch = Nothing
Gruß
Nepumuk

AW: warum nicht eine einfache Formel ...
03.03.2021 15:22:04
Ulrich
Hallo Nepumuk,
super, danke!!
Gruß Ulli

AW: warum nicht eine einfache Formel ...
03.03.2021 15:57:19
Ulrich
Hallo Nepumuk,
entschuldige, ich habe noch eine Frage.
Ist es mit wenig Aufwand möglich in dem Aktualisierung-Makro eine Abfrage einzubauen, das nur Daten aus Dateien eines bestimmten Zeitraums eingelesen werden? Datum ("von ...bis)?
In den Protokoll-Dateien ist ein Feld "Datum" vielleicht kann man dieses ansprechen.
Wenn es zu kompliziert ist einfach vergessen.
Gruß Ulli

AW: warum nicht eine einfache Formel ...
03.03.2021 16:05:41
Nepumuk
Hallo Ulli,
dazu musst du die Mappe erst öffnen, dann kannst du deine Abfrage starten.
Gruß
Nepumuk

Anzeige
AW: warum nicht eine einfache Formel ...
03.03.2021 16:09:36
Ulrich
Hallo Nepumuk,
oder kann man auf das Speicherdatum zurückgreifen, ginge auch?
Gruß Ulli

AW: warum nicht eine einfache Formel ...
03.03.2021 16:21:09
Nepumuk
Hallo Ulli,
ja das geht. Um wie viel soll das letzte Speicherdatum kleiner sein als heute?
Gruß
Nepumuk

AW: warum nicht eine einfache Formel ...
03.03.2021 16:43:24
Ulrich
Hallo Nepumuk,
ab 01.01.2019, weiter brauche ich nicht zurück.
Doof ist natürlich wenn eine der Dateien irgendwann noch einmal geöffnet und neu abgespeichert wird.
Dann passt das Protokolldatum nicht zum Speicherdatum.
(Das Datumsfeld in der Protokolldatei wäre schon optimal als Kriterium, die Dateien werden ja im Hintergrund geöffnet um die einzelnen Felder auszulesen, vielleicht ist es doch irgendwie möglich)
Gruß Ulli

Anzeige
AW: warum nicht eine einfache Formel ...
04.03.2021 09:09:26
Nepumuk
Hallo Ulli,
na dann frag doch einfach das Datum in der Zelle nach dem öffnen der Datei ab.
Gruß
Nepumuk

AW: warum nicht eine einfache Formel ...
04.03.2021 18:17:47
Ulrich
Hallo Nepumuk,
dafür reichen meine VBA Kenntnisse nicht aus, ich wüsste nicht wo ich es einbinden müsste.
Hier ist noch einmal der Komplette Code für das Auslesen der Dateien.
Wenn du noch eine Idee hast würde mich das freuen.
Viele Grüße Uli
Option Explicit
Public Enum SORT_BY
Sort_by_None
Sort_by_Name
Sort_by_Path
Sort_by_Size
Sort_by_Last_Access
Sort_by_Last_Modyfy
Sort_by_Date_Create
End Enum
Public Enum SORT_ORDER
Sort_Order_Ascending
Sort_Order_Descending
End Enum
Public Type FILEINFO
Filename As String
Path As String
Size As Long
LastAccess As Date
LastModify As Date
DateCreate As Date
End Type
Public Sub Aktualisieren()
Const COLUMN_NUMBER As Long = 3
Dim objFileSearch As clsFileSearch, objFileDialog As FileDialog
Dim objWorkbook As Workbook
Dim ialngIndex As Long, lngFileCount As Long
Dim strFolder As String
Set objFileDialog = Application.FileDialog(fileDialogType:=msoFileDialogFolderPicker)
With objFileDialog
.AllowMultiSelect = False
.ButtonName = "Auswählen"
.Title = "Ordner auswählen"
.InitialFileName = ThisWorkbook.Path & "\"
If .Show Then strFolder = .SelectedItems(1)
End With
Set objFileDialog = Nothing
If strFolder  vbNullString Then
With Application
.Calculation = xlCalculationManual
.EnableEvents = False
.ScreenUpdating = False
End With
With Tabelle1
Call .Range(.Cells(7, 1), .Cells(.Rows.Count, 15)).ClearContents
Range(.Cells(7, 1), .Cells(.Rows.Count, 15)).Borders.LineStyle = xlNone
End With
With Tabelle1
Call .Range(.Cells(7, COLUMN_NUMBER), Cells(.Rows.Count, COLUMN_NUMBER)). _
ClearContents
End With
Set objFileSearch = New clsFileSearch
With objFileSearch
.CaseSenstiv = False
.Extension = "*.xlsm"
.FolderPath = strFolder
.SubFolders = True
.NewSearch = True
.SearchLike = "UA_*"
lngFileCount = .Execute(Sort_by_Name, Sort_Order_Ascending)
For ialngIndex = 1 To lngFileCount
With .Files(ialngIndex)
Set objWorkbook = Workbooks.Open(Filename:=.Path, UpdateLinks:=3, ReadOnly:= _
True)
Call Tabelle1.Hyperlinks.Add(Anchor:=Tabelle1.Cells(ialngIndex + 6,  _
COLUMN_NUMBER), _
Address:=.Path, TextToDisplay:=.Filename)
With objWorkbook.Worksheets(1)
'Tabelle1.Cells(ialngIndex + 6, 1).Value = .Cells(1, 8).Value
Tabelle1.Cells(ialngIndex + 6, 2).Value = .Range("Datum").Value
Tabelle1.Cells(ialngIndex + 6, 4).Value = .Range("Nachname").Value
Tabelle1.Cells(ialngIndex + 6, 5).Value = .Range("Vorname").Value
Tabelle1.Cells(ialngIndex + 6, 6).Value = .Range("NL").Value
Tabelle1.Cells(ialngIndex + 6, 7).Value = .Range("UO").Value
Tabelle1.Cells(ialngIndex + 6, 8).Value = .Range("Tä").Value
Tabelle1.Cells(ialngIndex + 6, 9).Value = .Range("Ar").Value
Tabelle1.Cells(ialngIndex + 6, 10).Value = .Range("Un").Value
Tabelle1.Cells(ialngIndex + 6, 11).Value = .Range("V").Value
Tabelle1.Cells(ialngIndex + 6, 12).Value = .Range("KP").Value
Tabelle1.Cells(ialngIndex + 6, 13).Value = .Range("MP").Value
Tabelle1.Cells(ialngIndex + 6, 15).Value = .Range("GS").Value
'Tabelle1.Cells(ialngIndex + 6, 14).Value = .Range("").Value
End With
With Tabelle1
With .Range(.Cells(ialngIndex + 6, 1), .Cells(ialngIndex + 6, 15))
Call .BorderAround(LineStyle:=xlContinuous, Weight:=xlThin)
With .Borders(xlInsideVertical)
.LineStyle = xlContinuous
.Weight = xlThin
End With
End With
End With
Call objWorkbook.Close(SaveChanges:=False)
Set objWorkbook = Nothing
End With
Next
End With
Set objFileSearch = Nothing
Cells(7, 1).Value = 1     ' Fortlaufende Nummer
Range(Cells(7, 1), Cells(Cells(Rows.Count, 2).End(xlUp).Row, 1)).DataSeries
With Application
.Calculation = xlCalculationAutomatic
.EnableEvents = True
.ScreenUpdating = True
End With
End If
End Sub


Anzeige
AW: warum nicht eine einfache Formel ...
05.03.2021 08:20:06
Nepumuk
Hallo Ulli,
ein bisschen solltest du mittlerweile schon gelernt haben. Ich prüfe 1. ob das Datum des letzten Dateizugriffs größer gleich dem 1.1. deslaufenden Jahres ist, und wenn ja, dann 2. ob das Datum im Range("Datum") größer gleich dem 1.1. des laufenden Jahres ist.
Public Sub Aktualisieren()
    
    Const COLUMN_NUMBER As Long = 3
    
    Dim objFileSearch As clsFileSearch, objFileDialog As FileDialog
    Dim objWorkbook As Workbook
    Dim ialngIndex As Long, lngFileCount As Long
    Dim strFolder As String
    
    Set objFileDialog = Application.FileDialog(fileDialogType:=msoFileDialogFolderPicker)
    
    With objFileDialog
        
        .AllowMultiSelect = False
        .ButtonName = "Auswählen"
        .Title = "Ordner auswählen"
        .InitialFileName = ThisWorkbook.Path & "\"
        If .Show Then strFolder = .SelectedItems(1)
        
    End With
    
    Set objFileDialog = Nothing
    
    If strFolder <> vbNullString Then
        
        With Application
            .Calculation = xlCalculationManual
            .EnableEvents = False
            .ScreenUpdating = False
        End With
        
        With Tabelle1
            Call .Range(.Cells(7, 1), .Cells(.Rows.Count, 15)).ClearContents
            Range(.Cells(7, 1), .Cells(.Rows.Count, 15)).Borders.LineStyle = xlNone
            
            
        End With
        
        With Tabelle1
            Call .Range(.Cells(7, COLUMN_NUMBER), Cells(.Rows.Count, COLUMN_NUMBER)). _
                ClearContents
        End With
        
        Set objFileSearch = New clsFileSearch
        
        With objFileSearch
            
            .CaseSenstiv = False
            .Extension = "*.xlsm"
            .FolderPath = strFolder
            .SubFolders = True
            .NewSearch = True
            .SearchLike = "UA_*"
            
            lngFileCount = .Execute(Sort_by_Name, Sort_Order_Ascending)
            
            For ialngIndex = 1 To lngFileCount
                
                With .Files(ialngIndex)
                    
                    'Prüfen ob letzter Zugriff größer gleich dem 1.1. des laufenden Jahres
                    If .LastAccess >= DateSerial(Year(Date), 1, 1) Then
                        
                        Set objWorkbook = Workbooks.Open(Filename:=.Path, UpdateLinks:=3, ReadOnly:=True)
                        
                        'Prüfen ob Datum größer gleich dem 1.1. des laufenden Jahres
                        If objWorkbook.Worksheets(1).Range("Datum").Value >= DateSerial(Year(Date), 1, 1) Then
                            
                            Call Tabelle1.Hyperlinks.Add(Anchor:=Tabelle1.Cells(ialngIndex + 6, _
                                COLUMN_NUMBER), Address:=.Path, TextToDisplay:=.Filename)
                            
                            With objWorkbook.Worksheets(1)
                                'Tabelle1.Cells(ialngIndex + 6, 1).Value = .Cells(1, 8).Value
                                Tabelle1.Cells(ialngIndex + 6, 2).Value = .Range("Datum").Value
                                Tabelle1.Cells(ialngIndex + 6, 4).Value = .Range("Nachname").Value
                                Tabelle1.Cells(ialngIndex + 6, 5).Value = .Range("Vorname").Value
                                Tabelle1.Cells(ialngIndex + 6, 6).Value = .Range("NL").Value
                                Tabelle1.Cells(ialngIndex + 6, 7).Value = .Range("UO").Value
                                Tabelle1.Cells(ialngIndex + 6, 8).Value = .Range("Tä").Value
                                Tabelle1.Cells(ialngIndex + 6, 9).Value = .Range("Ar").Value
                                Tabelle1.Cells(ialngIndex + 6, 10).Value = .Range("Un").Value
                                Tabelle1.Cells(ialngIndex + 6, 11).Value = .Range("V").Value
                                Tabelle1.Cells(ialngIndex + 6, 12).Value = .Range("KP").Value
                                Tabelle1.Cells(ialngIndex + 6, 13).Value = .Range("MP").Value
                                Tabelle1.Cells(ialngIndex + 6, 15).Value = .Range("GS").Value
                                'Tabelle1.Cells(ialngIndex + 6, 14).Value = .Range("").Value
                            End With
                            
                            With Tabelle1
                                With .Range(.Cells(ialngIndex + 6, 1), .Cells(ialngIndex + 6, 15))
                                    Call .BorderAround(LineStyle:=xlContinuous, Weight:=xlThin)
                                    With .Borders(xlInsideVertical)
                                        .LineStyle = xlContinuous
                                        .Weight = xlThin
                                    End With
                                End With
                            End With
                            
                        End If
                        
                        Call objWorkbook.Close(SaveChanges:=False)
                        
                        Set objWorkbook = Nothing
                        
                    End If
                End With
            Next
        End With
        
        Set objFileSearch = Nothing
        
        Cells(7, 1).Value = 1 ' Fortlaufende Nummer
        Range(Cells(7, 1), Cells(Cells(Rows.Count, 2).End(xlUp).Row, 1)).DataSeries
        
        With Application
            .Calculation = xlCalculationAutomatic
            .EnableEvents = True
            .ScreenUpdating = True
        End With
        
    End If
    
End Sub

Gruß
Nepumuk

Anzeige
AW: warum nicht eine einfache Formel ...
05.03.2021 17:49:28
Ulrich
Hallo Nepumuk,
vielen Dank für deine Mühe und Geduld.
das funktioniert einwandfrei. Über diesen Code wird ja Range "Datum" gecheckt.
Wäre es denn so möglich z.B. über ein userform Fenster einen Datumsbereich vorzugeben?
z.B. vom 01.01.2020 bis 31.12.2021, das wäre dann die Top Lösung.
Viele Grüße Ulli

AW: warum nicht eine einfache Formel ...
05.03.2021 18:48:24
Ulrich
Hallo Nepumuk,
wirklich grossartig, funktioniert einwandfrei, genial.
Wenn du mir noch verraten könntest wie die Liste nicht nach Name sondern nach Datum sortiert wird, dann wäre ich glücklich und zufrieden.
Viele Grüße Ulli

Anzeige
AW: warum nicht eine einfache Formel ...
05.03.2021 18:52:20
Ulrich
Hallo Nepumuk,
sorry, Sortierung nach Range "Datum" wäre super.
Gruß Ulli

AW: warum nicht eine einfache Formel ...
05.03.2021 18:57:45
Nepumuk
Hallo Ulli,
das muss nach dem Einfügen der Daten passieren. Das kannst du per Makrorekorder aufzeichnen.
Gruß
Nepumuk

AW: warum nicht eine einfache Formel ...
05.03.2021 19:06:04
Ulrich
Hallo Nepumuk,
danke für den Hinweis.
Ein kleiner Fehler ist noch da mit der Datumvorgabe.
Wenn die Liste erst mehrere Daten hatte und ich danach nur ein Datum suche ist die Darstellung in der Liste nicht mehr korrekt, da wird dieser eine Datensatz in Zeile 2 dargestellt (Siehe Anhang)
Gruß Ulli
https://www.herber.de/bbs/user/144484.doc

Anzeige
AW: warum nicht eine einfache Formel ...
05.03.2021 19:20:38
Nepumuk
Hallo Ulli,
ich hab dir noch die Sortierung eingebaut:
Public Sub Aktualisieren()
    
    Const COLUMN_NUMBER As Long = 3
    
    Dim objFileSearch As clsFileSearch, objFileDialog As FileDialog
    Dim objWorkbook As Workbook
    Dim ialngIndex As Long, lngFileCount As Long, lngRow As Long
    Dim strFolder As String
    Dim dtmDateFrom As Date, dtmDateTo As Date
    Dim blnAbort As Boolean
    
    Set objFileDialog = Application.FileDialog(fileDialogType:=msoFileDialogFolderPicker)
    
    With objFileDialog
        
        .AllowMultiSelect = False
        .ButtonName = "Auswählen"
        .Title = "Ordner auswählen"
        .InitialFileName = ThisWorkbook.Path & "\"
        If .Show Then strFolder = .SelectedItems(1)
        
    End With
    
    Set objFileDialog = Nothing
    
    If strFolder <> vbNullString Then
        
        With UserForm1
            Call .Show
            dtmDateFrom = .DateFrom
            dtmDateTo = .DateTo
            blnAbort = .Abort
        End With
        
        Call Unload(UserForm1)
        
        If Not blnAbort Then
            
            With Application
                .Calculation = xlCalculationManual
                .EnableEvents = False
                .ScreenUpdating = False
            End With
            
            With Tabelle1
                Call .Range(.Cells(7, 1), .Cells(.Rows.Count, 15)).ClearContents
                Range(.Cells(7, 1), .Cells(.Rows.Count, 15)).Borders.LineStyle = xlLineStyleNone
            End With
            
            With Tabelle1
                Call .Range(.Cells(7, COLUMN_NUMBER), Cells(.Rows.Count, COLUMN_NUMBER)).ClearContents
            End With
            
            Set objFileSearch = New clsFileSearch
            
            With objFileSearch
                
                .CaseSenstiv = False
                .Extension = "*.xlsm"
                .FolderPath = strFolder
                .SubFolders = True
                .NewSearch = True
                .SearchLike = "UA_*"
                
                lngFileCount = .Execute(Sort_by_Name, Sort_Order_Ascending)
                
                lngRow = 6
                
                For ialngIndex = 1 To lngFileCount
                    
                    With .Files(ialngIndex)
                        
                        'Prüfen ob letzter Zugriff größer gleich dem 1.1. des laufenden Jahres
                        If .LastModify >= dtmDateFrom Then
                            
                            Set objWorkbook = Workbooks.Open(Filename:=.Path, UpdateLinks:=3, ReadOnly:=True)
                            
                            'Prüfen ob Datum größer gleich dem 1.1. des laufenden Jahres
                            If objWorkbook.Worksheets(1).Range("Datum").Value >= dtmDateFrom And _
                                objWorkbook.Worksheets(1).Range("Datum").Value <= dtmDateTo Then
                                
                                lngRow = lngRow + 1
                                
                                Call Tabelle1.Hyperlinks.Add(Anchor:=Tabelle1.Cells(lngRow, _
                                    COLUMN_NUMBER), Address:=.Path, TextToDisplay:=.Filename)
                                
                                With objWorkbook.Worksheets(1)
                                    'Tabelle1.Cells(lngRow, 1).Value = .Cells(1, 8).Value
                                    Tabelle1.Cells(lngRow, 2).Value = .Range("Datum").Value
                                    Tabelle1.Cells(lngRow, 4).Value = .Range("Nachname").Value
                                    Tabelle1.Cells(lngRow, 5).Value = .Range("Vorname").Value
                                    Tabelle1.Cells(lngRow, 6).Value = .Range("NL").Value
                                    Tabelle1.Cells(lngRow, 7).Value = .Range("UO").Value
                                    Tabelle1.Cells(lngRow, 8).Value = .Range("Tä").Value
                                    Tabelle1.Cells(lngRow, 9).Value = .Range("Ar").Value
                                    Tabelle1.Cells(lngRow, 10).Value = .Range("Un").Value
                                    Tabelle1.Cells(lngRow, 11).Value = .Range("V").Value
                                    Tabelle1.Cells(lngRow, 12).Value = .Range("KP").Value
                                    Tabelle1.Cells(lngRow, 13).Value = .Range("MP").Value
                                    Tabelle1.Cells(lngRow, 15).Value = .Range("GS").Value
                                    'Tabelle1.Cells(lngRow, 14).Value = .Range("").Value
                                End With
                                
                                With Tabelle1
                                    With .Range(.Cells(lngRow, 1), .Cells(lngRow, 15))
                                        Call .BorderAround(LineStyle:=xlContinuous, Weight:=xlThin)
                                        With .Borders(xlInsideVertical)
                                            .LineStyle = xlContinuous
                                            .Weight = xlThin
                                        End With
                                    End With
                                End With
                                
                            End If
                            
                            Call objWorkbook.Close(SaveChanges:=False)
                            
                            Set objWorkbook = Nothing
                            
                        End If
                    End With
                Next
            End With
            
            Set objFileSearch = Nothing
            
            'Sortieren nach Datum
            Call Range(Cells(6, 2), Cells(Rows.Count, 15)).Sort(Key1:=Cells(6, 2), Header:=xlYes)
            
            Cells(7, 1).Value = 1 ' Fortlaufende Nummer
            Range(Cells(7, 1), Cells(Cells(Rows.Count, 2).End(xlUp).Row, 1)).DataSeries
            
            With Application
                .Calculation = xlCalculationAutomatic
                .EnableEvents = True
                .ScreenUpdating = True
            End With
            
        End If
    End If
End Sub

Gruß
Nepumuk

Anzeige
AW: warum nicht eine einfache Formel ...
05.03.2021 19:34:44
Ulrich
Hallo Nepumuk,
ja funktioniert, aber eins ist noch komisch (siehe Anhang)
1. Bild alle Dateien
2. Bild nur der 03.02.2021 wurde gesucht (Datei-Link eine Zeile nach unten gerutscht)
3. Bild nur der 02.05.2021 wurde gesucht (es wird nichts angezeigt)
sehr seltsam.
Gruß Ulli
https://www.herber.de/bbs/user/144486.doc

AW: warum nicht eine einfache Formel ...
05.03.2021 19:41:04
Nepumuk
Hallo Ulli,
kann ich nicht nachvollziehen.
Gruß
Nepumuk

AW: warum nicht eine einfache Formel ...
05.03.2021 19:57:03
Ulrich
Hallo Nepumuk,
das ist wirklich seltsam.
Ich habe alle Dateien noch einmal gelöscht und 3 neue erstellt. (siehe Anlage)
Die Datei vom 01.02.21 kann ich einzeln suchen, wird dann auch angezeigt.
Die beiden Anderen werden wenn ich dieses Datum suche nicht angezeigt.
Wirklich komisch.
Gruß Ulli
https://www.herber.de/bbs/user/144488.doc

AW: warum nicht eine einfache Formel ...
06.03.2021 19:24:39
Ulrich
Hallo Nepumuk,
ich hatte noch einiges versucht, aber seltsamerweise kam der Fehler immer wieder.
Wenn ich viele Protokolldateien einlesen möchte dauert die Prozedur auch ziemlich lange.
Ich habe mir überlegt ob es nicht viel einfacher und eleganter wäre die Relevanten Daten aus dem Protokoll vor dem Abspeichern in das Arbeitsblatt "Übersicht" zu übergeben anstelle sie im Nachgang auszulesen.
d.h. ich habe die Übersichtliste als Arbeitsblatt mit in die Datei "Meldung" gebracht.
Wenn jetzt dort im Arbeitsblatt "Meldebogen" Daten eingegeben sind sollten die relevanten Daten (grüne Felder) mit Ausführen des Speicher-Makros als neue Zeile in das Arbeitsblatt "Übersicht" Übergeben werden, dann sollte die Speicherprozedur erfolgen und die Daten in der Vorlage wieder gelöscht werden (das funktioniert ja schon).
So würde mit jeder neu erfassten Meldung eine neue Zeile in dem Arbeitsblatt "Übersicht" erzeugt.
Vielleicht ist das unkompliziert umzusetzen.
Wenn du noch einmal Zeit und Muse haben solltest, kannst du es dir vielleicht mal ansehen.
Ich lade die Datei geändert noch einmal hoch.
Ich wünsche einen schönen Abend
Gruß Ulli
https://www.herber.de/bbs/user/144525.xlsm

AW: warum nicht eine einfache Formel ...
04.03.2021 18:21:13
Ulrich
Hallo Nepumuk,
das Datum befindet sich im Feld "AW5" in den Dateien
Viele Grüße Ulli

AW: warum nicht eine einfache Formel ...
03.03.2021 18:48:00
Ulrich
Hallo Nepumuk,
hattest du hierzu noch eine Idee?
Ich wünsche dir einen schönen Abend.
Gruß Ulli

AW: warum nicht eine einfache Formel ...
03.03.2021 16:13:47
Ulrich
Hallo Nepumuk,
werden die Dateien nicht so oder so im Hintergrund geöffnet um die gewünschten Daten heraus zu ziehen?
Gruß Ulli

Warum immer noch 'eine einfache Formel', ...
04.03.2021 00:49:02
Luc:-?
…wenn's doch längst nicht mehr darum geht?
Fragt sich Luc :-?

304 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige