Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1620to1624
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

VBA

VBA
26.04.2018 18:25:52
Felix
Hallo zusammen,
ich bin leider absoluter VBA Anfänger und hoffe ihr könnt mir helfen.
Ich habe eine Datei, in der ich in einigen Spalten die Werte löschen möchte (in manchen neue einfügen möchte) und die Zeilenüberschriften aus einer anderen Datei einfügen möchte (da sonst das ERP System die Datei nicht korrekt importiert).
Die Ursprungsdatei in der die Werte gelöscht bzw. ersetzt werden hat dabei immer einen anderen Dateinamen. Die Datei aus der die Kopfzeile kopiert werden soll heißt immer gleich und liegt immer am gleichen Platz.
Bis zum Öffnen der anderen Datei und kopieren der Werte habe ich es mit Makro Aufzeichnung und Durchkämpfen auch geschafft... dann klemmt es aber und ich finde die Lösung nicht.
Sub PN3_v2()
' PN3_v2 Makro
Dim myExcel As Object
Dim ext_wb As Object
Dim mySheet As Object
Range("Table[[Year]:[Months]]").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.ClearContents
Range("Table[Name]").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.ClearContents
Range("Table[Name]").Select
ActiveCell.FormulaR1C1 = "1"
Range("Table[Type]").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.ClearContents
Range("Table[Type]").Select
ActiveCell.FormulaR1C1 = "0"
Range("I3").Select
ActiveWindow.LargeScroll ToRight:=1
Columns("V:V").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlToRight)).Select
Selection.Delete Shift:=xlToLeft
ActiveWindow.LargeScroll ToRight:=-2
'Application.screenupdate = False
Set myExcel = GetObject(, "Excel.Application")
Set ext_wb = Workbooks.Open("\\clusterfs\KFM\AX\VORLAGE\PN3.xlsx")
ext_wb.Sheets("Tabelle1").Range("A1:AL1").Copy
ext_wb.Close
==> hier fehlt m.E. jetzt die korrekte Funktion um das kopiert in die Zeile A1:AL1 des jetzt  _
aktiven Workbooks einzufügen.
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
Vielen Dank im voraus für Eure Hilfe,
Felix

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA
27.04.2018 10:48:34
MCO
Moin!
Select gilt es zu vermeiden! Macht den code nur langsam.
Leider keine Beispielmappe, daher nur eingeschränkt optimiert.
siehe Kommentare im Code...
Sub PN3_v2()
' PN3_v2 Makro
Dim ext_wb As Object
Dim mySheet As Object
Range(Range("Table[[Year]:[Months]]"), Range("Table[[Year]:[Months]]").End(xlDown)). _
ClearContents
Range(Range("Table[Name]"), Range("Table[Name]").End(xlDown)).ClearContents
Range(Range("Table[Type]"), Range("Table[Type]").End(xlDown)).ClearContents
Range("Table[Name]") = "1"
Range("Table[Type]") = "0"
Dim rng As Range
'hier wäre eine feste spaltenbreite besser. Wenn nicht möglich, dann vielleicht "benutze  _
spalten" (activesheet.usedrange.columns.count)
Set rng = Columns("V:V")
Set rng = Range(rng, rng.End(xlToRight))
Set rng = Range(rng, rng.End(xlToRight))
rng.Delete Shift:=xlToLeft
Set ext_wb = Workbooks.Open("\\clusterfs\KFM\AX\VORLAGE\PN3.xlsx")
'beim einfachen kopieren wird der Zielbereich einfach hinter den kopierwert geschrieben
ext_wb.Sheets("Tabelle1").Range("A1:AL1").Copy Range("A1")
'schließen gern auch mit Parametern: 0 nicht speichern, 1 speichern
ext_wb.Close , 0
'Application.DisplayAlerts = True 'war gar nicht abgeschaltet
'Application.ScreenUpdating = True 'schaltet sich am Ende der Prozedur selbst wieder ein
End Sub
Gruß, MCO
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige