Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

VBA Zellen markieren bis Inhalt sich ändert

Frage Microsoft Microsoft Office

Mitglied: charlyby

charlyby (Level 1) - Jetzt verbinden

30.12.2014, aktualisiert 18:30 Uhr, 960 Aufrufe, 3 Kommentare

stelle mich mal wieder blöd an.

Das Problem:
es besteht eine Tabelle mit Nummern in der Spalte 1. Die Nummern können über mehrere Zeilen gleich sein aber auch sich ändern.
Nun wollte ich den Bereich der gleichen Nummern mit den Inhalt der daneben liegenden Spalten markieren, in einer PDF Datei abspeichern,
(dateiname ist der Inhalt aus A2) also die Nummer die in der Spalte 1 steht. Den bearbeiteten Bereich löschen und die nachfolgenden Daten
nach oben ziehen. Nun wieder die gleichen Nummern in Spalte 1 markieren, im PDF ablegen und so weiter.

Bei einzelnen Zeilen bekomme ich es schon hin, diese in ein PDF zu kopieren - aber ich schaffe es nicht alle gleichlautenden Zellen zu markieren.

Beispiel:

Spalte 1 Spalte 2 Spalte 3 Spalte 4
111005 Muster 1 grün breit
111005 Weber gelb schmal
111005 Sommer blau lang
120687 Winter weiß kalt
241001 Herbst braun windig
241001 Frühling grün mild


jetzt soll per VBA die Datensätze von 111005 als PDF abgelegt werden danach die Datensätze von 111005 gelöscht werden
120687 und nachfolgende nach oben rücken und der Datensatz 120687 als PDF abgelegt werden ..... uns so weiter bis
kein Datensatz mehr da ist.

Hoffe ich habe mich einigermaßen verständlich ausgedrückt und es hat jemand einen Lösungsvorschlag

Danke

Charly

Mitglied: colinardo
LÖSUNG 30.12.2014, aktualisiert um 19:01 Uhr
Hallo Charly,
guckst du hier:
export_filtered_as_pdf_258709.xlsm
01.
Sub FilterAndSave() 
02.
    'Exportpfad für die PDF Dateien 
03.
    Const EXPORT_PATH = "D:\export" 
04.
    'Variablen 
05.
    Dim keys, strNumber As String, cell As Range, fso As Object, dic As Object, i as integer 
06.
    'Objects 
07.
    Set dic = CreateObject("Scripting.Dictionary") 
08.
    Set fso = CreateObject("Scripting.FileSystemObject") 
09.
     
10.
    'Ausgabeordner erstellen falls nicht vorhanden 
11.
    If Not fso.FolderExists(EXPORT_PATH) Then MkDir EXPORT_PATH 
12.
     
13.
    Application.ScreenUpdating = False 
14.
    With ActiveSheet 
15.
        'AutoFilter deaktivieren 
16.
        .AutoFilterMode = False 
17.
        'einmalige Nummern im Dictionary speichern 
18.
        For Each cell In .Range("A2:A" & .Cells(Rows.Count, 1).End(xlUp).Row) 
19.
            If cell.Value <> "" And Not dic.Exists(cell.Value) Then 
20.
                dic.Add cell.Value, "" 
21.
            End If 
22.
        Next 
23.
         
24.
        keys = dic.keys 
25.
        'Für alle Nummern im Dictionary 
26.
        For i = 0 To dic.Count - 1 
27.
            strNumber = keys(i) 
28.
            'Filtere das Sheet nach der Nummer 
29.
            .UsedRange.AutoFilter 1, strNumber 
30.
            'Speichere das Sheet als PDF 
31.
            .ExportAsFixedFormat xlTypePDF, EXPORT_PATH & "\" & strNumber & ".pdf" 
32.
        Next 
33.
        'AutoFilter deaktivieren 
34.
        .AutoFilterMode = False 
35.
         
36.
        'Exportierte Zeilen löschen 
37.
        .Range("A2:E" & .Cells(Rows.Count, 1).End(xlUp).Row).ClearContents 
38.
    End With 
39.
     
40.
    Application.ScreenUpdating = True 
41.
    MsgBox "Fertig", vbInformation 
42.
    Set fso = Nothing 
43.
    Set dic = Nothing 
44.
End Sub
Grüße Uwe
Bitte warten ..
Mitglied: charlyby
30.12.2014 um 18:33 Uhr
Hallo Uwe,

herzlichen Dank für deine Mühe - vba hat nur kurz ein paarmal gemeckert weil "dic" und "i" nicht deklariert waren und
bei .ExportAsFixedFormat xlPDF habe ich Type noch eingefügt bei xlTypePDF ...

Danke nochmal und einen guten Rutsch ins neue Jahr

Charly
Bitte warten ..
Mitglied: colinardo
30.12.2014, aktualisiert um 21:55 Uhr
Zitat von charlyby:
- vba hat nur kurz ein paarmal gemeckert weil "dic" und "i" nicht
deklariert waren und
bei .ExportAsFixedFormat xlPDF habe ich Type noch eingefügt bei xlTypePDF ...
Ja, da war ich etwas fix , ist oben korrigiert.
Danke nochmal und einen guten Rutsch ins neue Jahr
Wünsche ich Dir ebenfalls.

Grüße Uwe
Bitte warten ..
Ähnliche Inhalte
VB for Applications
VBA - Welchen Inhalt hat eine Zelle die mit der Taste Enft geleert wird? (3)

Frage von Juckie zum Thema VB for Applications ...

Microsoft Office
VBA Code zum Kopieren von einzelnen Zellen in Excel (3)

Frage von SebastianL zum Thema Microsoft Office ...

VB for Applications
gelöst Excel VBA Eine oder mehrere Zellen Verschieben (2)

Frage von batchnewbie zum Thema VB for Applications ...

Neue Wissensbeiträge
Windows Tools

Zeit für Energiesparmodus, Bildschirmabschaltung etc. schnell anpassen

Anleitung von hannsgmaulwurf zum Thema Windows Tools ...

Linux Netzwerk

Ping und das einstellbare Bytepattern

(1)

Erfahrungsbericht von LordGurke zum Thema Linux Netzwerk ...

Windows Update

Microsoft Update KB4034664 verursacht Probleme mit Multimonitor-Systemen

(4)

Tipp von beidermachtvongreyscull zum Thema Windows Update ...

Heiß diskutierte Inhalte