Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1812to1816
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 sammeln

Daten sammeln
10.02.2021 09:20:29
Andreas
Hi, liebe Excelfreunde,
habe ein VBA am laufen welches mir die Daten aus verschiedenen Tagellen in eine neue Tabelle zusammenfasst.
Da immer einmal neue Daten dazukommen, muss ich händisch jedes mal im Macro die den Eintrag For i = x To ... ändern, sonst dauert es ewig mit der Auswertung.
Leider funktioniert es nicht wenn ich eingebe: For i = 91 To ... ändere in For i = vergleich("";B:B;-1) To ...
Also Zeile nach letzter Eintrag in B. In B ist keine Formel.
-------

Sub Makro1()
Dim i As Long, wbQuelle As Workbook
Application.ScreenUpdating = False
With ThisWorkbook.Worksheets("xx-xxxxxxxxx")
For i = 91 To .Cells(.Rows.Count, "B").End(xlUp).Row
If .Cells(i, "c")  "" Then
Set wbQuelle = Workbooks.Open _
("\\xxx\user$\a.p\Documents\xxx\xxx\xxx\" _
& .Cells(i, "c"))
wbQuelle.Worksheets("1. Deckblatt").Range("M54").Copy
.Cells(i, "f").PasteSpecial Paste:=xlPasteValuesAndNumberFormats
wbQuelle.Close False
End If
Next i
End With
End Sub

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
ohne Workbook open?
10.02.2021 09:53:13
Klaus
Hi Excelfreund,
"workbook open" ist generell sehr langsam. Ich habe ein Makro rumliegen, mit dem ich eine große Tabelle auslese ohne sie vorher zu öffnen. Vielleicht kannst du (oder jemand) diese Idee in das Mustermakro einbauen, um so den langsamen "open" Prozess zu umgehen.
Option Explicit
Const strSheetQ As String = "Data" '** Diese Tabelle wird ausgelesen"
Const strSheetZ As String = "Report" '** Die Tabelle in dieser Datei, in welche die Daten ü _
bertragen werden
Const strRange As String = "A1:AD3000" '** Der Bereich wird ausgelesen
Const strFile As String = "V:\xxx\Datei.xlsx" '** Pfad und Datei
Private Sub Worksheet_Activate()
'** Daten aus geschlossener Datei per Zell-Verknüpfung auslesen und Formel zur externen  _
Datei erzeugen
With ThisWorkbook.Worksheets(strSheetZ)
'** Eintragen der Formel
.UsedRange.ClearContents
.Range(strRange).Formula = "='" & Mid(strFile, 1, InStrRev(strFile, "\")) & "[" & _
Mid(strFile, InStrRev(strFile, "\") + 1) & "]" & strSheetQ & "'!" & strRange
'** Umwandeln der Formel in fixe Werte
.Range(strRange).Value = .Range(strRange).Value
End With
End Sub
LG,
Klaus M.
Anzeige
AW: ohne Workbook open?
10.02.2021 15:56:29
Yal
Hallo Andreas,
eigentlich alles richtig gemacht
Wenn Du den Konzept von Klaus versuchen möchtest, würde es ungefhr so aussehen:
Sub Makro1()
Dim i As Long
Dim wbQuelle As Workbook
Const wbPfad = "\\xxx\user$\a.p\Documents\xxx\xxx\xxx\"
Application.ScreenUpdating = False
With ThisWorkbook.Worksheets("xx-xxxxxxxxx")
For i = 91 To .Cells(100000, "B").End(xlUp).Row
If .Cells(i, "c")  "" Then
.Cells(i, "f").Formula = "='" & wbPfad & .Cells(i, "c") & "'[1. Deckblatt]!M54"
.Cells(i, "f").Calculate
.Cells(i, "f").Copy
PasteSpecial Paste:=xlPasteValuesAndNumberFormats
End If
Next i
End With
Application.ScreenUpdating = False
End Sub
VG
Yal
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige