Thema Datum  Von Nutzer Rating
Antwort
29.09.2021 15:46:26 Simone
NotSolved
Blau Datei nach Variablen filtern und Ergebnis in eine extra Datei speichern
29.09.2021 17:56:58 Nobody
NotSolved
30.09.2021 09:32:35 Gast81167
NotSolved
30.09.2021 13:21:05 Nobody
Solved
01.10.2021 08:19:57 Gast82441
Solved

Ansicht des Beitrags:
Von:
Nobody
Datum:
29.09.2021 17:56:58
Views:
407
Rating: Antwort:
  Ja
Thema:
Datei nach Variablen filtern und Ergebnis in eine extra Datei speichern

Hallo

zuerst habe ich mal deinen Makro Recorder Code bereinigt.  Das zweite Makro ist voll funktionfähig, wurde bei mir zur Probe getestet. Statt Autofilter verwende ich eine For Next Schleife, und kopiere immer nur den Bereich des entsprechenden Mitarbeiters. In der Variablen EAdr = End Adresse kannst du selbst festlegen wieviele Spalten mit Personaldaten kopiert werden sollen. Zur Zeit wird Spalte A-C kopiert.

In der With Anweisung musst du unbedingt noch den Tabellen Namen deiner Personalliste angeben. Ich haber sie zum testen "Personal" genannt.

mfg Nobody


Sub Makro2()
Dim PersNr As Variant
    ActiveSheet.Range("$A$1:$AS$2332").AutoFilter Field:=7, Criteria1:="xxxx"
    Selection.SpecialCells(xlCellTypeVisible).Copy
    PersNr = Range("g2")  'VOR ADD laden, sonst lädst du aus falschem Workbook!
    Workbooks.Add
    ActiveSheet.Paste
    ActiveWorkbook.SaveAs Filename:="C:\Users\*\Desktop\Test\" & PersNr
End Sub

 

Sub Personaldatei_erstellen()
Dim MtaName As String
Dim PersNr As Variant, a As Long
Dim AAdr As String, EAdr As String
Dim AC As Range, j As Long, lz1 As Long
'** Hier bitte den Namen deiner Personal Tabelle angeben!!
With ThisWorkbook.Worksheets("Personal")
     'LastZell in Personalliste suchen Spalte A
     lz1 = .Cells(Rows.Count, 1).End(xlUp).Row
     '1. Personal Nummer + Anfangs Adresse setzen
     PersNr = .Range("A2").Value
     MtaName = .Range("B2").Value   '** diese Zeile kann gelöscht werden!  Mitarbeiter Name!
     AAdr = "A2"    '1.Copy Adr.
     Application.ScreenUpdating = False
     On Error GoTo Fehler
     'Schleife zum abarbeiten aller Personal Nummern
     For j = 2 To lz1
        If .Cells(j + 1, 1) <> PersNr Then
            '** zu kopierende Spaltenbreite selbst festlegen
            EAdr = .Cells(j, 3).Address   '3=Spalte C
           .Range(AAdr, EAdr).Copy        'Bereich A-C kopieren
            Workbooks.Add
            ActiveSheet.Paste
            'Neue Datei mit Pers. Nummer + Mitarbeiter Name speichern
            ActiveWorkbook.SaveAs Filename:="C:\Users\*\Desktop\Test\" & PersNr & " " & MtaName
            ActiveWorkbook.Close savechanges:=False
            'nächste Personal Nummer + Mitarbeiter Name laden
            PersNr = .Cells(j + 1, 1)
            MtaName = .Cells(j + 1, 2)
            AAdr = .Cells(j + 1, 1).Address
        End If
     Next j
End With
Exit Sub
Fehler:  MsgBox PersNr & "  unerwarteter Fehler aufgetreten" & vbLf & Error()
End Sub

 


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
29.09.2021 15:46:26 Simone
NotSolved
Blau Datei nach Variablen filtern und Ergebnis in eine extra Datei speichern
29.09.2021 17:56:58 Nobody
NotSolved
30.09.2021 09:32:35 Gast81167
NotSolved
30.09.2021 13:21:05 Nobody
Solved
01.10.2021 08:19:57 Gast82441
Solved