Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

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

Sichtbare Zellen (gefiltert und ausgeblendet) aus einem Workbook in ein neues Kopieren

Frage Microsoft Microsoft Office

Mitglied: VBAFloh

VBAFloh (Level 1) - Jetzt verbinden

08.09.2011, aktualisiert 22:05 Uhr, 6992 Aufrufe, 4 Kommentare

Hallo zusammen,

bin noch grün im VBA und sehe den Wald vor lauter Bäumen nicht mehr. Kann mir bitte jemand die Augen öffnen...
Hab eine Tabelle gefiltert und Spalten ausgeblendet, diese Darstellung soll so mit VBA in eine neue Datei kopiert werden.

Die Tabelle ist umfangreich (hier wsQData), die Länge ist variabel

Dim wsData as Worksheet 'Quell - Daten
Dim wsNewReport as Worksheet 'Ziel -Daten

Mit verschiedenen Funktionen sind auf der Tabelle einige Zeilen herausgefiltert worden
gleichzeitig habe ich einige Spalten ausgeblendet (verschiedene VBA module)

Jetzt möchte ich genau diese Darstellung in eine neue Datei + neues Worksheet kopieren.
Also die ausgeblendeten Zeilen und Spalten sollen nicht kopiert werden.

Der MakroRecorder ergab so etwas:
01.
                           wsData.Activate 
02.
                           Cells.Select 
03.
                           Selection.Copy 
04.
                           wsNewReport.Activate 
05.
                           Application.CutCopyMode = False 
06.
                           ActiveSheet.PasteSpecial Format:=1, Link:=1, DisplayAsIcon:=False, _ 
07.
                                                  IconFileName:=False
Da gibt es aber eine Fehlermeldung in der letzten Zeile "Worksheet class" Fehler

ein weiterer Versuch war dies hier, aber auch ohneErfolg
01.
           wsData.Range.SpecialCells(xlVisible).Copy_ 
02.
           Destination:=wsNewReport.Range("A1")
Für jegliche Unterstützung wäre ich sehr dankbar!

Gruß
Floh

[Edit Biber] Auch Donnerstags Codetags [/Edit]
Mitglied: 76109
09.09.2011 um 20:20 Uhr
Hallo VBAFloh!

Eher so:
01.
Sub CopySpecialCells1() 
02.
    Sheets("Tabelle1").Cells.SpecialCells(xlVisible).Copy Destination:=Sheets("Tabelle2").Range("A1") 
03.
End Sub
oder so:
01.
Sub CopySpecialCells2() 
02.
    Dim Wks1 As Worksheet, Wks2 As Worksheet 
03.
     
04.
    Set Wks1 = Sheets("Tabelle1") 
05.
    Set Wks2 = Sheets("Tabelle2") 
06.
     
07.
    Wks1.Cells.SpecialCells(xlVisible).Copy Destination:=Wks2.Range("A1") 
08.
End Sub
Gruß Dieter
Bitte warten ..
Mitglied: VBAFloh
10.09.2011 um 14:17 Uhr
Hallo Dieter,

vielen Dank!!!!!!
Ja mit "Cells" hat er es dann genommen.
Allerdings hatte er dann irgendwie Probleme mit der Datenmenge gekriegt und ist abgeschmiert.


Es funktioniert jetzt, wenn ich einen genauen Range angebe.


Sub CopySpecialCells3()
Dim Wks1 As Worksheet, Wks2 As Worksheet

Set Wks1 = Sheets("Tabelle1")
Set Wks2 = Sheets("Tabelle2")

Wks1.Range("A1:EZ300").SpecialCells(xlVisible).Copy Destination:=Wks2.Range("A1")

End Sub



Das ist für mich auch ok, nur "EZ300" muß ich noch dynamisch ermitteln und dann variable übergeben.
Hierzu muß ich jetzt mal das Froum durchforsten, steht hier sicher schon irgendwo....

Was mir auch noch nicht gefällt ist, er übernimmt alle Formate außer die Spaltenbreite.
Gibt es hierfür noch einen Parameter, den ich dahinter schreiben muß?

Vielen Dank für die Unterstützung!

Gruß
Floh
Bitte warten ..
Mitglied: 76109
10.09.2011 um 17:41 Uhr
Hallo Floh!

Sofern sich im Kopierbereich keine Leerzeilen/Leerspalten befinden, in etwa so:
01.
Sub CopySpecialCells3() 
02.
    Dim Wks1 As Worksheet, Wks2 As Worksheet, CopyRange As Range, ColCount As Long 
03.
     
04.
    Set Wks1 = Sheets("Tabelle1") 
05.
    Set Wks2 = Sheets("Tabelle2") 
06.
     
07.
   'Kopierbereich bis zur 1. Leerzeile/Leerspalte 
08.
    Set CopyRange = Wks1.Range("A1").CurrentRegion 
09.
     
10.
   'Daten nach Ziel kopieren 
11.
    CopyRange.SpecialCells(xlVisible).Copy Destination:=Wks2.Range("A1") 
12.
  
13.
    With Wks2 
14.
        'Letzte Spalte in Ziel ermitteln 
15.
         ColCount = .Range("A1").CurrentRegion.Columns.Count 
16.
     
17.
        'Spaltenbreite automatisch anpassen 
18.
        .Range(.Columns(1), .Columns(ColCount)).AutoFit 
19.
    End With 
20.
End Sub
Gruß Dieter
Bitte warten ..
Mitglied: VBAFloh
10.09.2011 um 19:52 Uhr
Hallo Dieter,


vielen Dank!
Hat super geklappt mit der Region!

Das mit dem "AutoFit" ergibt nicht ganz das gewünschte Ergebnis, da ich Zellen mit Zeilenumbruch habe.

Aber da wird mir noch was einfallen.
Glaube ich hab Prinzip verstanden.
Wird wahrscheinlich auf eine Schleife mit der Queel Spaltenbreite hinauslaufen.

Vielen Dank nochmal und ein schönes WE.

Gruß
Floh
Bitte warten ..
Ähnliche Inhalte
Microsoft Office
VBA Code zum Kopieren von einzelnen Zellen in Excel (3)

Frage von SebastianL zum Thema Microsoft Office ...

Microsoft Office
gelöst Wenn Inhalt Zelle X dann bestimmte Zellen (2)

Frage von Knuefi zum Thema Microsoft Office ...

Windows 10
gelöst Onedrive-Daten kopieren ohne neu zu synchronisieren? (5)

Frage von 1410640014 zum Thema Windows 10 ...

Microsoft Office
gelöst Formel für eine automatische Füllung anderer Zellen (1)

Frage von michael1306 zum Thema Microsoft Office ...

Neue Wissensbeiträge
Viren und Trojaner

Neues Botnetz über IoT-Geräte

Information von certifiedit.net zum Thema Viren und Trojaner ...

Ubuntu

Ubuntu 17.10 steht zum Download bereit

(3)

Information von Frank zum Thema Ubuntu ...

Datenschutz

Autofahrer-Pranger - Bewertungsportal illegal

(9)

Information von BassFishFox zum Thema Datenschutz ...

Heiß diskutierte Inhalte
Windows Installation
Windows 10 neu installieren (17)

Frage von imebro zum Thema Windows Installation ...

Router & Routing
Externe IP von innen erreichbar machen (15)

Frage von Windows10Gegner zum Thema Router & Routing ...

Windows Server
Frage zu Server Rack (11)

Frage von rainergugus zum Thema Windows Server ...