Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
692to696
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
692to696
692to696
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

SET zuweisen

SET zuweisen
11.11.2005 09:43:53
Regina
Hallo Zusammen,
ich habe ein Probelm, ich möchte 2 Tabellen miteinander vergleichen, die in verschiedenen Dateien stehen. und in verschiednen Verzeichnissen.
Tab1
"U:\201.2\Kontoauszüge\UMSATZ_200352069900_" & Datum & "064500.xls"
Hier heisst die Tabelle KH401
Tab2
"U:\201.2\Aktion EA\AnforderungenO+W_gesamt_ 011105.xls"
Hier ist es die Tabelle "Anfordern"
Hier mal der Code :
er meckert in der Zeile
Set tb2 = Worksheets("Anfordern") ' INDEX Außerhalb des gültigen Bereichs
Wäre schön, wenn jemand helfen kann.
Gruß Regina

Sub KH401AusTabSuchen()
'tab1 vergleichen mit tab2, wenn gleich dann tab2 Zeilen
'in tab3 kopieren und Zähler setzen.
ChDir "U:\201.2\Aktion EA"
Workbooks.Open Filename:= _
"U:\201.2\Aktion EA\AnforderungenO+W_gesamt_ 011105.xls"
Dim Datum As Long
Datum = Format(Date, "DD") & Format(Date, "MM") & Format(Date, "YY")
ChDir "U:\201.2\Kontoauszüge\"
Workbooks.Open Filename:= _
"U:\201.2\Kontoauszüge\UMSATZ_200352069900_" & Datum & "064500.xls"
Sheets("KH401").Activate
Dim i As Long
Dim c As Long
Dim tb1 As Worksheet
Dim VSN As String
Dim tb2 As Worksheet
Dim counter As String
Dim intAnfang As Integer
Dim intEnde As Integer
Dim ENDE1 As Long
Dim ENDE2 As Long
Set tb1 = Worksheets("KH401") 'Tabellennamen eintragen
Set tb2 = Worksheets("Anfordern")
counter = 1
ENDE1 = tb1.Cells(65536, 1).End(xlUp).Row  'von letzter Zeile aufwärts
ENDE2 = tb2.Cells(65536, 1).End(xlUp).Row
i = 2
c = 2
intAnfang = 2
For i = 2 To ENDE1
If tb1.Cells(i, 2) <> "" Then
VSN = tb1.Cells(i, 2) '.Value
For c = 2 To ENDE2
Application.StatusBar = i & " Von " & c
If tb2.Cells(c, 2) = VSN Then
If tb2.Cells(c, 2) <> tb2.Cells(c - 1, 2) And _
tb2.Cells(c, 2) = VSN Then
intAnfang = c
End If
If tb2.Cells(c + 1, 2) <> tb2.Cells(c, 2) Then
intEnde = c
tb2.Range(Cells(intAnfang, 16), tb2.Cells(intEnde, 16)) = counter
tb1.Cells(i, 3) = counter
Sheets(2).Rows(intAnfang & ":" & intEnde).Copy
Sheets(3).Cells(65536, 1).End(xlUp).Offset(1, 0).EntireRow.PasteSpecial
counter = counter + 1
Application.CutCopyMode = False
Exit For
End If
End If
Next
End If
Next
Application.StatusBar = False
End Sub

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

Betreff
Datum
Anwender
Anzeige
AW: SET zuweisen
11.11.2005 09:54:39
Harald
Moin Regina,
der Code steht in einer Datei. Und in dieser Datei gibt es dieses Blatt nicht sondern in einer zweiten Datei. Daher ausserhalb gültigem Index.
Set tb2 = workbooks("AnforderungenO+W_gesamt_ 011105.xls").Worksheets("Anfordern")
Externe bezüge explizit zuweisen, sollte helfen
Gruss Harald
AW: SET zuweisen
11.11.2005 09:58:07
Hilde
Hallo Regina,
ich bin mir nicht sicher, ob es das ist, aber:
Du aktivierst einige Zeilen vor Deiner Set-Anweisung das Sheet "KH401". Und das befindet sich ja in einer anderen Tabelle als das 2. Sheet, das Du refernzieren möchtest.
Vielleicht solltest Du Deine Set-Anweisungen also lieber direkt nach dem Öffnen der jeweiligen Datei plazieren, also noch bevor Du irgendein Blatt aktivierst.
Salut - Hilde
Anzeige
AW: SET zuweisen
11.11.2005 10:06:51
Luschi
Hallo Regina,
Du hast fast alles richtig gemacht. Endlich mal jemand, der nicht verlangt, Daten aus "geschlossenen" Arbeitsmappen zu lesen. Das kann noch nicht mal David Copperfield.
Also:: Nach dem Öffnen der jeweiligen Arnbeitsmappen sofort dieser jetzt aktiven AM eine Objekt-Variable zuweisen und dann beim Zuweisen der entsprechenden Tabellen diese Objekt-Variablen benutzen. Die beiden ChDir-Befehle sind an der Stelle nicht notwendig, da ja im Workbooks.Open-Befehl die volle Pfadangebe enthalten sind. Diesen Befehl benötigt man (merkwürdigerweise) beim Datei-Öffnen-Dialog.
Sub KH401AusTabSuchen()
Dim wb1 as Workbook, wb2 as Workbook, , _
tb1 as Worksheet, tb2 as Worksheet, _
Datum As Long
'ChDir "U:\201.2\Aktion EA"
Workbooks.Open Filename:= _
"U:\201.2\Aktion EA\AnforderungenO+W_gesamt_ 011105.xls"
Set wb1 = ActiveWorkbook
Datum = Format(Date, "DD") & Format(Date, "MM") & Format(Date, "YY")
'ChDir "U:\201.2\Kontoauszüge\"
Workbooks.Open Filename:= _
"U:\201.2\Kontoauszüge\UMSATZ_200352069900_" & Datum & "064500.xls"
Set wb2 = ActiveWorkbook
Set tb1 = wb1.Worksheets("KH401")
Set tb2 = wb2.Worksheets("Anfordern")
wb1.Activate
tb1.Activate
'usw.

Anzeige
Allen helfern Vielen Dank es klappt
11.11.2005 12:16:46
regina
o.t.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige