Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Kopieren und Einfügen via VBA Code

Kopieren und Einfügen via VBA Code
30.07.2015 06:34:30
Tommy241
Hallo
Ich nutze folgenden Code, den Klexy mir erstellt hat.
Dazu erstmal großes Lob und vielen Dank dafür.
Der Code funzt prima, jedoch möchte ich beim kopieren, die Formatierung, bzw.
die Spaltenbreite mit kopieren, sodass das Tabellenblatt 1 zu 1 kopiert wird.
Makros, die auf dem Tabellenblatt liegen, sollen nicht mitkopiert werden.
Was mich ich in folgendem Code ändern, damit das funzt?
Sub Öffnen_auslesen_schließen()
Dim ZielDatei As String, QuellDatei As String
Dim ImportDatei, wks As Worksheet
ZielDatei = ThisWorkbook.Name
ImportDatei = Application.GetOpenFilename
If ImportDatei  False Then
Set wks = Workbooks.Open(ImportDatei).Sheets("Tabelle1")
Else
Exit Sub
End If
wks.Select
QuellDatei = ActiveWorkbook.Name
Range("A1:J50").Select
Selection.Copy
Windows(ZielDatei).Activate
Worksheets.Add after:=Worksheets(Worksheets.Count)
ActiveSheet.Paste
ActiveWorkbook.Save
Windows(QuellDatei).Activate
ActiveWorkbook.Close SaveChanges:=True
End Sub

Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Kopieren und Einfügen via VBA Code
30.07.2015 08:08:58
Nepumuk
Hallo,
teste mal:
Sub Öffnen_auslesen_schließen()
    
    Dim objWorkbook As Workbook
    Dim objWorksheet As Worksheet
    Dim vntReturn As Variant
    
    vntReturn = Application.GetOpenFilename
    If vntReturn <> False Then
        Set objWorkbook = Workbooks.Open(vntReturn)
    Else
        Exit Sub
    End If
    
    With ThisWorkbook
        Set objWorksheet = .Worksheets.Add(After:=.Worksheets(.Worksheets.Count))
    End With
    
    objWorkbook.Worksheets("Tabelle1").UsedRange.Copy
    
    With objWorksheet.Cells(1, 1)
        .PasteSpecial Paste:=xlPasteAll
        .PasteSpecial Paste:=xlPasteColumnWidths
    End With
    
    Application.CutCopyMode = False
    
    objWorkbook.Close SaveChanges:=False
    
    ThisWorkbook.Save
    
End Sub

Gruß
Nepumuk

Anzeige
AW: Kopieren und Einfügen via VBA Code
30.07.2015 10:17:27
Tommy241
Danke schön.
So funzt es.

AW: Kopieren und Einfügen via VBA Code
30.07.2015 10:48:58
Tommy241
Kann man den Code erweitern, sodass auch die Spaltenhöhe mit übernommen wird und
das der eingefügte bereich nicht markiert ist?
Danke.

AW: Kopieren und Einfügen via VBA Code
30.07.2015 11:00:31
Nepumuk
Hallo,
Zeilenhöhe geht nicht so einfach, da müsste man Zeile für Zeile auslesen und in der anderen Tabelle einstellen.
Zelle A1 auswählen kannst du einfach so:
    With objWorksheet.Cells(1, 1)
.PasteSpecial Paste:=xlPasteAll
.PasteSpecial Paste:=xlPasteColumnWidths
.Select
End With
Gruß
Nepumuk

Anzeige
AW: Kopieren und Einfügen via VBA Code
30.07.2015 11:38:27
Tommy241
Ok. Ich sehe, das dies ein riesen aufwand ist.
Wie kann ich es denn machen, das der eingefügte Bereich nicht markiert ist?

AW: Kopieren und Einfügen via VBA Code
30.07.2015 12:03:54
Tommy241
Haken vergessen ;-)

AW: Kopieren und Einfügen via VBA Code
30.07.2015 13:10:04
Werner
Hallo Tommy,
das hat Nepumuk dir doch geschrieben. Einfach dadurch, dass er im Paste-Bereich des Makros noch ein .select eingefügt hat. Damit wird A1 ausgewählt.
Gruß Werner
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige