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, 916 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 ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung! - BNG - Broadband Network Gateway

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Ähnliche Inhalte
VB for Applications
gelöst VBA Zellen dublizieren plus Wenn Dann Funktion (4)

Frage von grasihuepfer zum Thema VB for Applications ...

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

Frage von batchnewbie zum Thema VB for Applications ...

Microsoft Office
gelöst Excel 2010 Zellen mit bestimmten Inhalt mit Makro formartierten (5)

Frage von packmann2016 zum Thema Microsoft Office ...

VB for Applications
gelöst Wie mittels VBA beim Import von CSV dateien das Format aller Zellen auf "Zahl" ändern? (2)

Frage von Glibber4 zum Thema VB for Applications ...

Heiß diskutierte Inhalte
Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (17)

Frage von JayyyH zum Thema Switche und Hubs ...

Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

DSL, VDSL
DSL-Signal bewerten (14)

Frage von SarekHL zum Thema DSL, VDSL ...