Anzeige
Archiv - Navigation
1516to1520
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

Makro For Schleife Variable Spalten

Makro For Schleife Variable Spalten
06.10.2016 15:21:37
Christian
Hallo zusammen,
dieses Forum hat mir schon oft weitergeholfen, aber jetzt hänge ich an einem Fall, bei dem ich einfach nicht weiterkomme.
Es geht darum,ein Makro zu erstellen, welches aus einer aufgerufenen Datei immer die selben Spalten kopiert und sie dann in mein Tabellenblatt in unterschiedliche Spalten schreibt.
Hat alles bereits gut funktioniert, bis ich die Einfügespalten statt zusammenhängend in vordefinierte Spalten umändern musste.
Nun kann man nämlich nichtmehr wie zuvor alle SPalten gleichzeitig kopieren und in der selben Reihenfolge wieder einfügen, sondern muss jede Zelle einzeln kopieren und dann in eine definierte Spalte schreiben.
Habe es jetzt mit Arrays versucht, aber das mag auch nicht so wirklich funktionieren..
Ich hoffe ihr versteht was ich meine, ist vermutlich auch kein Hexenwerk diese For-Schleife, aber ich bekomme sie einfach nicht zum Laufen...
Hier ist mein Makro:
Sub Precheck_laden()
MsgBox ("Bitte Datei auswählen und mit Doppelklick bestätigen")
Dim strVerweis As String               'Verweis auf Zelle in anderer Datei
Dim x As Workbook, y As Workbook
Dim ws1 As Worksheet, ws2 As Worksheet
fileToOpen = Application.GetOpenFilename("Microsoft Excel-Dateien (*.xlsm), *.xlsm")
Workbooks.Open (fileToOpen)
Set x = ActiveWorkbook
Set y = Workbooks("LISTE.xlsm")
Set ws1 = x.Sheets("Eingabe")
Set ws2 = y.Sheets("Kalender")
Dim Z(1 To 16) As Integer
Z(1) = 29
Z(2) = 42
Z(3) = 44
Z(4) = 46
Z(5) = 48
Z(6) = 50
Z(7) = 52
Z(8) = 54
Z(9) = 56
Z(10) = 58
Z(11) = 60
Z(12) = 61
Z(13) = 62
Z(14) = 63
Z(15) = 64
Z(16) = 65
Dim C(1 To 16) As Integer
C(1) = 10
C(2) = 11
C(3) = 12
C(4) = 13
C(5) = 14
C(6) = 15
C(7) = 16
C(8) = 17
C(9) = 18
C(10) = 19
C(11) = 20
C(12) = 21
C(13) = 22
C(14) = 23
C(15) = 24
C(16) = 25
Dim i As Integer
For i = 1 To 15
With ws1
.Cells(135, C(i)).Copy
Sheets("Eingabe").Close SaveChanges:=False
Sheets("Kalender").Select
zeile = ActiveCell.Row
ActiveSheet.Cells(zeile, Z(i)).Select
Selection.NumberFormat = "@"
Selection.PasteSpecial
End With
Next i
End Sub

Vielen Dank schonmal für eure Hilfe!
Christian

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro For Schleife Variable Spalten
06.10.2016 15:52:20
Mirko
Hi Christian,
auf den ersten Blick sieht es so aus, als ob du in der For Next Schleife das With nicht richtig hast. M.E. kannst du das sogar weglassen. Ferner mußt du m.e. die Feldvariablen Z(.) C(.) als Array dimensionieren.
For i = 1 To 15
ws1.Cells(135, C(i)).Copy
Sheets("Eingabe").Close SaveChanges:=False
Sheets("Kalender").Select
zeile = ActiveCell.Row
ActiveSheet.Cells(zeile, Z(i)).Select
Selection.NumberFormat = "@"
Selection.PasteSpecial
Next
Kann es leider gerade nicht tiefer testen.
Viele Grüße
Mirko
AW: Makro For Schleife Variable Spalten
06.10.2016 17:05:52
Christian
Hallo Mirko,
danke für deine Hilfe, aber funktioniert leider immer noch nicht.
Als Fehlermeldung kommt: Objekt unterstützt diese Eigenschaft oder Methode nicht.
Ich verstehe einfach nicht wieso es nicht durchläuft
Gruß
Christian
Anzeige
AW: Makro For Schleife Variable Spalten
06.10.2016 18:16:31
MatthiasG
Hallo Christian,
da referenzierst du so schön mit Set x=, y=, ws1= und ws2, und dann arbeitest du mit .Activate und .Select? Warum?
Wie ermittelst du die Variable Zeile? Die aktive Zeile vor Aufruf des Makros?
Dann schreib den Befehl zeile = ... vor dem Öffnen der anderen Datei. Das wird ja in der Schleife nicht geändert.
Und Worksheet.Close gibt es nicht, nur Workbook.Close. Deshalb wahrscheinlich der Fehler.
Dann könntest du die Schleife so versuchen:

zeile = ActiveCell.Row
' Mappe öffnen etc.
For i = 1 To 15
With ws2.Cells(zeile, Z(i))
.NumberFormat = "@"
.Value = ws1.Cells(135, C(i)).Value
End With
Next i
x.Close SaveChanges:=False

Anzeige
AW: Makro For Schleife Variable Spalten
07.10.2016 08:16:47
Christian
Hallo Matthias,
vielen, vielen Dank!
Jetzt funktioniert es tatsächlich genau so, wie ich es mir vorgestellt habe.
Tausend Dank!
LG
Christian

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige