Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1552to1556
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

Daten zusammenfassen - mit Formelbezug

Daten zusammenfassen - mit Formelbezug
18.04.2017 17:28:06
lutz
Guten Tag liebe Excel-Spezialisten,
leider komme ich mal wieder nicht mehr weiter.
Ich habe ein Makro das mir verschiedene Daten ausliest und mit einer Schleife durch ein wählbares Verezichnis läuft.
Die Daten werden immer als Werte in die Zieldatei eingefügt.
Nun benötige ich aber nicht mehr die Werte sondern die Verknüpfung zur Quelldatei (als wenn man + drückt und in die Querlldatei wechselt und dann diese Formel einfach in den Zielbereich kopiert.
So sieht das heute aus:
wksInput.Visible = xlSheetVisible
wksInput.Activate
wksInput.Range("A6:V" & Cells(Rows.Count, 22).End(xlUp).Row).Copy
meins.Activate
MySheet.Activate
With MySheet
.Range("A" & .Cells(Rows.Count, 5).End(xlUp).Row + 1).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
End With
Hier müsste man wahrschenlich nur die erste Zelle also A6 kopieren?
wksInput.Range("A6:V" & Cells(Rows.Count, 22).End(xlUp).Row).Copy
Aber nach dem Wechsel in das Zielsheet weiß ich nicht , wie ich das machen kann/soll.
Weiß jemand Rat?
Vielen Dank und viele Grüße Lutz

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Daten zusammenfassen - mit Formelbezug
19.04.2017 10:00:26
ChrisL
Hi
Hier mal ein Beispiel:
Sub t()
Dim MySheet As Worksheet
Dim WB As Workbook, wksInput As Worksheet
' erstmal ein paar Pseudo-Daten erzeugen
Set MySheet = ThisWorkbook.Worksheets(1)
Set WB = Workbooks.Add
Set wksInput = WB.Worksheets(1)
wksInput.Range("A6:V20") = 1
WB.SaveAs ThisWorkbook.Path & "\test.xlsx"
' Übertrag ab hier
Dim rng1 As Range, rng2 As Range
Dim letzteZeile As Long
Set rng1 = wksInput.Range("A6:V" & wksInput.Cells(Rows.Count, 22).End(xlUp).Row)
letzteZeile = MySheet.Cells(Rows.Count, 5).End(xlUp).Row + 1
Set rng2 = MySheet.Range("A" & letzteZeile & ":V" & letzteZeile + rng1.Rows.Count - 1)
rng2.Formula = "='" & WB.Path & "\[" & WB.Name & "]" & wksInput.Name & "'!A" & rng1.Row
WB.Close False
End Sub

Beide Mappen müssen gespeichert sein.
cu
Chris
Anzeige
AW: Daten zusammenfassen - mit Formelbezug
19.04.2017 11:37:00
lutz
Hallo Chris,
vielen Dank für Deine Hilfe.
Ich habe inzwischen auch ein bisschen rumgebastelt und habe jetzt diesen Code hier:
' Daten auslesen und inAuswertung kopieren
'-------------------------------------'
wksInput.Visible = xlSheetVisible
wksInput.Activate
meins.Activate
MySheet.Activate
With MySheet
.Range("A" & .Cells(Rows.Count, 1).End(xlUp).Row + 1) = "=+'[" & strFile & "]Conso'!A2"
.Range("A" & .Cells(Rows.Count, 1).End(xlUp).Row).Select
.Range("A" & .Cells(Rows.Count, 1).End(xlUp).Row).Copy
.Range("A" & .Cells(Rows.Count, 1).End(xlUp).Row, "CZ" & .Cells(Rows.Count, 1).End(xlUp).Row + 152).Select
.Paste
End With
'-------------------------------------'
' Datei schließen
'-------------------------------------'
d.h. er nimmt Zelle A2 aus der jeweiligen Datei, kopiert diese und fügt sie dann im Bereich bis CZ und +152 Zeilen ein.
Das klappt auch:)
Die Frage wäre jetzt nur noch, ob man das auch ohne Select machen kann - das wäre wahrscheinlich eleganter und schneller. Leider erschlisst sich mir die syntax ohne selektieren meistens nicht.
Kennst Du (oder jemand anders) sich da aus?
In jedem Fall vielen Lieben Dank für Deine Mühe und Hilfe. Ich wünsche Dir noch einen schönen Tag.
Viele Grüße Lutz
Anzeige
AW: Daten zusammenfassen - mit Formelbezug
19.04.2017 12:46:50
Rudi
Hallo,
was soll die Activiererei?
With MySheet
.Range("A" & .Cells(Rows.Count, 1).End(xlUp).Row + 1) = "=+'[" & strFile & "]Conso'!A2"
.Range("A" & .Cells(Rows.Count, 1).End(xlUp).Row).Copy .Range("A" & .Cells(Rows.Count, 1).End( _
xlUp).Row, "CZ" & .Cells(Rows.Count, 1).End(xlUp).Row + 152)
End With
Gruß
Rudi
AW: Daten zusammenfassen - mit Formelbezug
19.04.2017 13:06:18
lutz
Hallo Rudi,
vielen lieben Dank - geht wunderbar, schneller und kürzer.
Leider bin ich ein selectierer - ohne select schaffe ich leider das Ergebnis nicht.
Nochmals vielen lieben Dank für die Hilfe und noch einen schönen Tag.
Viele Grüße Lutz
Anzeige
AW: Daten zusammenfassen - mit Formelbezug
19.04.2017 12:58:14
ChrisL
Hi
So ist dann halt die Zeilenzahl (152) nicht mehr variable...
With MySheet
letzteZeile = .Cells(Rows.Count, 1).End(xlUp).Row + 1
.Range("A" & letzteZeile & ":CZ" & letzteZeile + 151) = "='[" & strFile & "]Conso'!A2"
End With
Im Prinzip hättest du meinen Code (ab Übertrag) nur Copy/Pasten müssen. Zeile 6 in 2 und Spalte 5 in 1 ändern, da sich die Ausgangslage scheinbar geändert hat.
cu
Chris
AW: Daten zusammenfassen - mit Formelbezug
19.04.2017 13:08:37
lutz
Hallo Chris,
da hast Du recht - die 152 Zeilen habe ich erst später reingenommen weil ich das erst mal für eine Zeile aufbauen wollte und dann kopieren.
Ich bedanke mich in jedem Fall sehr herzlich für Deine Hilfe und wünsche Dir noch einen schönen Tag.
Viele Grüße Lutz
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige