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

mit VBA Teile einer unbekannten Excel Datei in eine neue kopieren

Frage Microsoft Microsoft Office

Mitglied: Shaggy84

Shaggy84 (Level 1) - Jetzt verbinden

07.03.2008, aktualisiert 11.03.2008, 12495 Aufrufe, 3 Kommentare

Hallo Forum User, bastla, biber und alle die anderen,

ich bin mal wieder kurzzeitig von meinen Servern weg und stehe erneut vor einem kleinen VBA Problem.

Ich möchte per Makro aus einer unbestimmten Datei Teile in meine Datei kopieren.

Dieser erste Code soll den gesammten Inhalt von der Quelldatei in meine Zieldatei kopieren. Das Makro starte ich von der Zieldatei heraus.
Bis jetzt kopiert er den Inhalt der Quelldatei in die Zwischenablage. Wie wechsel ich zur Zieldatei zurück, ohne ihren Namen dafür angeben zu müssen? (falls nicht möglich natürlich auch mit Namen)

01.
Application.Dialogs(xlDialogOpen).Show 
02.
 
03.
Sheets("Tabelle1").Range("1:65535").Copy 
04.
 
05.
'wie wechsel ich hier zur Zieldatei zurück? 
06.
Sheets("TT").Range("1:65535").PasteSpecial _ 
07.
Paste:=xlPasteValues 
08.
 
09.
Sheets("TT").Activate 
10.
Sheets("TT").Cells(1, 1).Select
Anschließend möchste ich in der Zieldatei "ausmisten", d.h. Zeilen Löschen wenn in Spalte xy nicht "Y" drin steht und ähnliches. Welchen Befehl kann man nehmen, um nur z.B. die ersten beiden Buchstaben einer Zelle ab zu fragen? (mit den WENN Funktionen kenne ich dies, aber mit VBA?)

Grüße, Gregor
Mitglied: wakko
07.03.2008 um 16:25 Uhr
Moin,

das geht folgendermaßen:
01.
Dim wb As Workbook 'Arbeitsmappe def. 
02.
Set wb = ActiveWorkbook 'Arbeitsmappe auf das aktive Workbook setzen 
03.
Application.Dialogs(xlDialogOpen).Show 'Nun ist das aktive Workbook das neu geöffnete 
04.
Sheets("Tabelle1").Range("1:65535").Copy 
05.
 
06.
'wie wechsel ich hier zur Zieldatei zurück? -> wb ansprechen 
07.
wb.Sheets(1).Range("1:65535").PasteSpecial _ 
08.
Paste:=xlPasteValues 
Abfrage der ersten beiden Zeichen einer Zelle:
01.
erstebeidezeichen = Left(ActiveSheet.Cells(1,1).value, 2)
MfG,
Henrik
Bitte warten ..
Mitglied: bastla
07.03.2008 um 16:54 Uhr
Hallo Shaggy84!

Einfach die aktuelle Mappe als Objekt zwischenspeichern:
01.
... 
02.
Dim Ziel As Workbook 
03.
Set Ziel = ThisWorkbook 
04.
 
05.
Application.Dialogs(xlDialogOpen).Show 
06.
 
07.
Worksheets("Tabelle1").Range("1:65535").Copy 
08.
Ziel.Worksheets("TT").Range("1:65535").PasteSpecial _ 
09.
Paste:=xlPasteValues 
10.
Application.CutCopyMode = False 
11.
 
12.
Ziel.Worksheets("TT").Activate 
13.
Worksheets("TT").Cells(1, 1).Select 
14.
...
"Sheets()" habe ich durch "Worksheets()" ersetzt, da es hier ja um Tabellenblätter geht (besonders dann ein Thema, wenn Du nicht über den Namen, sondern über Index darauf zugreifen willst).
Für die ersten 2 Zeichen einer Zeichenkette kannst Du "Left()" verwenden, also etwa
01.
If Left(Worksheets("TT").Cells(3, 5).Value, 2) = "AB" Then ...
Weitere in diesem Zusammenhang nützliche Funktionen wären "Right()" und "Mid()" sowie "InStr()" ...

Grüße
bastla

[Edit] Wer hat an der Uhr gedreht? Sorry, wakko, als ich mit dem Kommentar begonnen habe, war Dein Posting noch nicht da ... [/Edit]
Bitte warten ..
Mitglied: Shaggy84
11.03.2008 um 08:09 Uhr
Funktioniert wunderbar, danke ihr beiden
Bitte warten ..
Ähnliche Inhalte
Microsoft Office
gelöst CSV-Datei mit einem VBA Makro in Excel einlesen und leicht anpassen (5)

Frage von JoSiBa zum Thema Microsoft Office ...

VB for Applications
gelöst VB Skript Excel Datei (3)

Frage von Frager zum Thema VB for Applications ...

Neue Wissensbeiträge
Drucker und Scanner

Samsung SL-M4025ND, firmware update und (kompatible) Tonerkassetten

(1)

Erfahrungsbericht von markus-1969 zum Thema Drucker und Scanner ...

Router & Routing

PfSense auf Supermicro Intel Xeon D-15x8 SoC Bare Bone

Tipp von Dobby zum Thema Router & Routing ...

Windows Server

Exchange 2010 auf Windows Server 2016 und AD

(2)

Tipp von Herbrich19 zum Thema Windows Server ...

KVM

How to: Libvirt Port forwarding

(2)

Anleitung von fundave3 zum Thema KVM ...

Heiß diskutierte Inhalte
Basic
Programmierung von Windows Programmen (9)

Frage von Ghost108 zum Thema Basic ...

C und C++
Fehlendes verständiss von C und C++ (8)

Frage von zelamedia zum Thema C und C ...