Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1928to1932
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
Inhaltsverzeichnis

AutoFilter/Remove Hidden Rows + Werte

AutoFilter/Remove Hidden Rows + Werte
21.04.2023 08:05:44
Sassi

Hallo Zusammen,

ich verzweifle aktuell an einer Programmierung.

Ziel der Sache:
Durch Klick auf den Button "Report starten" im Tabellenblatt "Partnerübersicht" soll

1. Pro Kundennummer der Datenbasis im Tabellenblatt "Gesamtplanung" eine neue .xls-Datei gespeichert werden.
2. Die Tabellenblätter "Partnerübersicht", "Liste Hersteller 90002" und "Liste Hersteller 90035" in die jeweiligen neuen Dateien kopiert werden
3. Im Tabellenblatt "Partnerübersicht" in Zelle B4 soll die jeweilige Kundennummer eingetragen werden

bis hierhin funktioniert alles bestens! Aber jetzt fangen die Probleme an:

4. Die beiden Tabellenblätter "Liste Hersteller 90002" + "Liste Hersteller 90035" sollen entweder anhand der Kundennummer der Datei oder anhand des Zellwerts aus 3. oben gefiltert werden und die restlichen Daten entfernt werden.
5. die Daten in den neu erstellten/gespeicherten Dateien sollen ALLE in Werte eingefügt werden (also ohne Formeln, oder Datenbankabfragen), jedoch soll die Formatierung beibehalten bleiben
6. Die VBA-Schaltflächen müssen auch verschwinden und
7. aktuell erhalte ich eine Fehlermeldung, wenn ich die Datei öffne, dass das erwartete Format nicht zusammenpasst. Kann man das auch irgendwie umgehen?

Kann mir hier jemand helfen?

Mein aktueller Code:

Private Sub Schaltfläche7_Klicken()

Dim ws As Worksheet
Dim lr As Long
Dim custNum As String
Dim custName As String
Dim wb As Workbook
Dim newFilePath As String

' Aktives Tabellenblatt auf "Gesamtplanung" setzen
Set ws = ThisWorkbook.Sheets("Gesamtplanung")

' Letzte Zeile mit Daten in Spalte D finden
lr = ws.Cells(Rows.Count, "D").End(xlUp).Row

' Schleife durch alle einzigartigen Kundennummern gehen
For i = 2 To lr
    custNum = ws.Cells(i, "D").Value
    custName = ws.Cells(i, "E").Value
    
    ' Überprüfen, ob bereits eine Datei für diese Kundennummer existiert
    If Dir("C:\Users\XXX\Desktop\Test VBA\" & custNum & " " & custName & " Abgleich.xls") = "" Then 'Dateipfad anpassen
    
        ' Neue Arbeitsmappe erstellen
        Set wb = Workbooks.Add
        
        ' Arbeitsmappe umbenennen
        wb.SaveAs "C:\Users\XXX\Desktop\Test VBA\" & custNum & " " & custName & " Abgleich.xls" 'Dateipfad anpassen
        
        ' Tabellenblätter kopieren
        ThisWorkbook.Sheets("Partnerübersicht").Copy Before:=wb.Sheets(1)
        ThisWorkbook.Sheets("Liste Hersteller 90002").Copy Before:=wb.Sheets(2)
        ThisWorkbook.Sheets("Liste Hersteller 90035").Copy Before:=wb.Sheets(3)
        
        ' Tabelle1 löschen
        Application.DisplayAlerts = False
        wb.Sheets("Tabelle1").Delete
        Application.DisplayAlerts = True
        
         ' Kundennummer in Partnerübersicht einsetzen
        wb.Sheets("Partnerübersicht").Range("B4").Value = custNum
             
        ' Arbeitsmappe speichern und schließen
        wb.Save
        wb.Close
        
    End If
Next i

MsgBox "Alle Dateien wurden erstellt."

End Sub



Anbei noch eine Beispieldatei: https://www.herber.de/bbs/user/158813.xlsx

Vielen Dank schon einmal vorab.
Viele Grüße
Sassi

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: AutoFilter/Remove Hidden Rows + Werte
24.04.2023 11:34:06
Franc
Zumindest schon mal wegen der Fehlermeldung beim öffnen.

Das ".xls" am Ende vom Dateinamen bewirkt nicht, dass er das als ".xls" speichert.
Du musst Excel beim Speichern das Dateiformat mitteilen. Standardmäßig nimmt VBA xlsx.

wb.SaveAs "C:\Users\XXX\Desktop\Test VBA\" & custNum & " " & custName & " Abgleich.xls", FileFormat:=xlExcel8 'Dateipfad anpassen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige