- #1
N
Nick_Stgt
Neues Mitglied
Themenersteller
- Dabei seit
- 29.05.2005
- Beiträge
- 4
- Reaktionspunkte
- 0
Hallo Zusammen,
das nachstehende Makro enthält einen Kopiervorgang. Darin sind die Quelle und das Ziel immer absolut angegeben. In der Auslesedatei wird immer ab Zeile 9 kopiert. Jetzt habe ich festgestellt, dass es vorkommen kann, dass in der Auslesedatei auch ab einer anderen Zeile kopiert werden muss z.B. 25 o.ä. Ich würde jetzt gerne eine Inputbox in den Code einbauen, in der die Zeile angeben werden kann, ab der der Kopiervorgang startet.
Als Quelle ist ja z.B. angeben Quelle(1)= AK3. Könnte man für die 3 nicht auch eine Variable verwenden z.B.:
Dim SZ as String->SZ=Startzeile
InputBox(Bitte Startzeile eingeben)
Ich habe sowas in der Richtung schon mal probiert zu schreiben aber es hat leider nicht funktioniert. Vielleicht hat ja hier jemand einen Tip, ob das geht und wenn ja, wie es funktioniert?
In einem anderen Forum habe ich erfahren, dass man es umsetzen kann, wenn nur eine Zelle ausgewählt werden muss und nicht ein ganzer Zellbereich. Mit einer Zelle geht es so:
Quelle(1) = AK & SZ
Wie geht es aber wenn ich folgendes habe?:
Quelle(1) = Q5:Q1000
Ich habe es so probiert:
Quelle(1) = Q & SZ : Q1000
So hat es aber nicht funktioniert, sonst würde ich ja auch nicht posten ;-).
Vielen Dank schon mal im Voraus.
Sub Kopieren()
'Öffnen des Dateiauswahlfensters
Datsuch = Application.GetOpenFilename
If Datsuch = False Then Exit Sub
Workbooks.Open Filename:=Datsuch
'Merken der Mappe
Dim curWB As String
curWB = ActiveWorkbook.Name
Dim Quelle(19), Ziel(19) As String
Quelle(1) = AK3
Quelle(2) = Q5
Quelle(3) = Q9:Q1000
Quelle(4) = U5
Quelle(5) = T5
Quelle(6) = V9:V1000
Quelle(7) = U9:U1000
Quelle(8) = AH9:AH1000
Quelle(9) = AG9:AG100
Quelle(10) = W9:W1000
Quelle(11) = X9:X1000
Quelle(12) = Y9:Y1000
Quelle(13) = Z9:Z1000
Quelle(14) = AI9:AI1000
Quelle(15) = AJ9:AJ1000
Quelle(16) = AL1000:AL1000
Quelle(17) = R9:R1000
Quelle(18) = AA9:AA1000
Ziel(1) = A5
Ziel(2) = B5
Ziel(3) = C5
Ziel(4) = G5
Ziel(5) = H5
Ziel(6) = I5
Ziel(7) = J5
Ziel(8) = K5
Ziel(9) = L5
Ziel(10) = M5
Ziel(11) = N5
Ziel(12) = O5
Ziel(13) = P5
Ziel(14) = Q5
Ziel(15) = R5
Ziel(16) = T5
Ziel(17) = W5
Ziel(18) = X5
For i = 1 To 19
Windows(curWB).Activate
Worksheets(Tabelle1).Activate
Worksheets(Tabelle1).Range(Quelle(i)).Select
Selection.Copy
On Error Resume Next
Windows(WIPL_4.xls).Activate
Worksheets(Ziel).Range(Ziel(i)).PasteSpecial Paste:=xlPasteValues
Next i
End Sub
das nachstehende Makro enthält einen Kopiervorgang. Darin sind die Quelle und das Ziel immer absolut angegeben. In der Auslesedatei wird immer ab Zeile 9 kopiert. Jetzt habe ich festgestellt, dass es vorkommen kann, dass in der Auslesedatei auch ab einer anderen Zeile kopiert werden muss z.B. 25 o.ä. Ich würde jetzt gerne eine Inputbox in den Code einbauen, in der die Zeile angeben werden kann, ab der der Kopiervorgang startet.
Als Quelle ist ja z.B. angeben Quelle(1)= AK3. Könnte man für die 3 nicht auch eine Variable verwenden z.B.:
Dim SZ as String->SZ=Startzeile
InputBox(Bitte Startzeile eingeben)
Ich habe sowas in der Richtung schon mal probiert zu schreiben aber es hat leider nicht funktioniert. Vielleicht hat ja hier jemand einen Tip, ob das geht und wenn ja, wie es funktioniert?
In einem anderen Forum habe ich erfahren, dass man es umsetzen kann, wenn nur eine Zelle ausgewählt werden muss und nicht ein ganzer Zellbereich. Mit einer Zelle geht es so:
Quelle(1) = AK & SZ
Wie geht es aber wenn ich folgendes habe?:
Quelle(1) = Q5:Q1000
Ich habe es so probiert:
Quelle(1) = Q & SZ : Q1000
So hat es aber nicht funktioniert, sonst würde ich ja auch nicht posten ;-).
Vielen Dank schon mal im Voraus.
Sub Kopieren()
'Öffnen des Dateiauswahlfensters
Datsuch = Application.GetOpenFilename
If Datsuch = False Then Exit Sub
Workbooks.Open Filename:=Datsuch
'Merken der Mappe
Dim curWB As String
curWB = ActiveWorkbook.Name
Dim Quelle(19), Ziel(19) As String
Quelle(1) = AK3
Quelle(2) = Q5
Quelle(3) = Q9:Q1000
Quelle(4) = U5
Quelle(5) = T5
Quelle(6) = V9:V1000
Quelle(7) = U9:U1000
Quelle(8) = AH9:AH1000
Quelle(9) = AG9:AG100
Quelle(10) = W9:W1000
Quelle(11) = X9:X1000
Quelle(12) = Y9:Y1000
Quelle(13) = Z9:Z1000
Quelle(14) = AI9:AI1000
Quelle(15) = AJ9:AJ1000
Quelle(16) = AL1000:AL1000
Quelle(17) = R9:R1000
Quelle(18) = AA9:AA1000
Ziel(1) = A5
Ziel(2) = B5
Ziel(3) = C5
Ziel(4) = G5
Ziel(5) = H5
Ziel(6) = I5
Ziel(7) = J5
Ziel(8) = K5
Ziel(9) = L5
Ziel(10) = M5
Ziel(11) = N5
Ziel(12) = O5
Ziel(13) = P5
Ziel(14) = Q5
Ziel(15) = R5
Ziel(16) = T5
Ziel(17) = W5
Ziel(18) = X5
For i = 1 To 19
Windows(curWB).Activate
Worksheets(Tabelle1).Activate
Worksheets(Tabelle1).Range(Quelle(i)).Select
Selection.Copy
On Error Resume Next
Windows(WIPL_4.xls).Activate
Worksheets(Ziel).Range(Ziel(i)).PasteSpecial Paste:=xlPasteValues
Next i
End Sub