Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1436to1440
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

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

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

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?

Anzeige
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

364 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige