Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1076to1080
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

2 Zellen aus verschiedenen Dateien vergleichen

2 Zellen aus verschiedenen Dateien vergleichen
08.06.2009 00:57:53
Joni
Hi,
ich sollte die Werte aus 2 Zellen aus verschiedenen Dateien miteinander vergleichen und verwende dafür folgende Zeile:
If .Cells(j, 2) = Workbooks(DNSB).Worksheets(Bericht1).Cells(jj, 2) Then
Leider erhalte ich immer eine Fehler. Ich habe auch schon andere Varianten probiert. Doch alle ohne Erfolg.
Bin ganz Ohr für eure Ideen.
Danke Joni

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Anführungszeichen...
08.06.2009 01:04:14
Jens
Hi Joni
Versuch mal so:
If .Cells(j, 2) = Workbooks("DNSB").Worksheets("Bericht1").Cells(jj, 2) Then
Gruß aus dem Sauerland
Jens
AW: Anführungszeichen...
08.06.2009 12:20:23
joni
Hi Jens,
war wohl gestern dann doch zu spät :-(
Mit den Anführungszeichen funktioniert es (beim Workbook brauche ich sie nicht, da das eine Variable ist).
Jetzt will aber dafür das Kopieren wieder nicht. Habe hier die gleiche Logic angewandt, was aber nicht will.
Workbooks(DNSB).Worksheets("Bericht1").Range(Cells(jj, 6), Cells(jj, 77)).Copy Range(Cells(j, 77), Cells(j, 149))
Hast du hier auch einen Tipp?
thx Joni
AW: Anführungszeichen...
08.06.2009 12:49:35
Jens
Hi Joni
Wo soll das denn hinkopiert werden?
in Range(Cells(j, 77), Cells(j, 149)) ?
Gleiche Mappe?
Zeig mal den ganzen Code.
Gruß aus dem Sauerland
Jens
Anzeige
AW: Anführungszeichen...
08.06.2009 12:58:43
joni
Es soll vom einen Workbook in das andere etwas kopiert werden.
Hier der ganze Code
Dim Datei As String
Dim Pfad As String
Dim y As Integer
Dim z As Integer
Dim max As Integer
Dim i As Integer
Dim j As Integer 'Zeile
Dim jj As Integer 'Zeile in Sollbetragsdatei
Dim SOSB As String
Dim DNSB As String
Dim Stammdaten As Workbook
Dim Sollbeträge As Workbook
Application.ScreenUpdating = False
SOSB = (Cells(11, 2)) 'Speicherort Datei Sollbeträge
DNSB = (Cells(12, 2)) 'Dateiname Datei Sollbeträge
y = 1 'Beginnzeile für Liste mit ausgelesenen Werten
z = 1 'Beginnzeile mit den Dateinamen die abgearbeitet werden sollen
max = 1000 'letzte Zeile
Pfad = ThisWorkbook.Path 'Ausgangs- und Zieldatei müssen im gleichen Ordner gespeichert sein
Workbooks.Open Filename:=SOSB & DNSB 'Datei mit Sollbeträgen öffnen
Set Sollbeträge = Workbooks(DNSB)
Workbooks("!Makroarbeitsmappe.xls").Activate
For i = z To max 'Beginn der Schleife
With ActiveSheet
If .Cells(z, 8).Value <> "" Then 'Wert aus Spalte H darf nicht leer sein
Datei = (Cells(z, 8)) 'H1 und folgende Dateinamen auslesen
Workbooks.Open Filename:=Pfad & "\" & Datei 'Ausgangsdatei öffnen
Set Stammdaten = Workbooks(Datei)
'Formeln einfügen für maximal 1000 Zeilen
With ActiveSheet
For j = 2 To 1000 Step 1 'Beginn in Zeile 2 Stammdatendatei
For jj = 2 To 20000 Step 1 'Beginn in Zeile 2 Sollbetragsdatei
If .Cells(j, 2) = Workbooks(DNSB).Worksheets("Bericht1").Cells(jj, 2) Then 'Klient vergleichen
If .Cells(j, 3) = Workbooks(DNSB).Worksheets("Bericht1").Cells(jj, 3) Then 'EDV vergleichen
Workbooks(DNSB).Sheets("Bericht1").Range(Cells(jj, 6), Cells(jj, 77)).Copy 'Ausgangsdatei kopieren
Workbooks(Datei).Sheets("Top_BN").Range(Cells(j, 77), Cells(j, 149)).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False 'Zieldatei Werte einfügen
End If
End If
jj = jj + 1
Next
j = j + 1
Next
End With
ActiveWorkbook.Save 'Speichern fertige Datei mit Objektnummer
ActiveWorkbook.Close 'fertige Datei schließen
End If
z = z + 1 'eine Zeile runter
End With
Next 'Ende der Schleife
Application.ScreenUpdating = True
Anzeige
AW: Vollständige Ref. innerhalb von Range()
08.06.2009 22:37:47
Range()
Hi
wird eine Range über 2 Cells definiert, so muss die vollständige Referenzierung an den beiden CELLS-Objekten innerhalb der RANGE-Anweisung erfolgen, dh.

Workbooks(DNSB).Sheets("Bericht1").Range(Cells(jj, 6), Cells(jj, 77)).Copy


ist falsch, korrekt wäre:


Range(Workbooks(DNSB).Sheets("Bericht1").Cells(jj, 6), Workbooks(DNSB).Sheets("Bericht1").Cells(jj, 77)).Copy


da sowas den Code natürlich aufbläht, arbeite ich in solchen Fällen lieber mit der .Resize-Methode:


Workbooks(DNSB).Sheets("Bericht1").Cells(jj, 6).Resize(1, 72).Copy


außerdem reicht es, nach Copy beim Einfügen nur die linke obere Ecke des Einfügebereichs anzugeben:


Workbooks(DNSB).Sheets("Bericht1").Cells(jj, 6).Resize(1, 72).Copy
Workbooks(Datei).Sheets("Top_BN").Cells(j, 77).PasteSpecial xlPasteall


Gruß, Daniel

Anzeige
AW: Vollständige Ref. innerhalb von Range()
08.06.2009 23:25:12
Range()
Hi Daniel,
da habe ich wieder etwas dazugelernt. Ich werde das mal ausprobieren.
Ich bin in der Zwischenzeit mit einer anderen Methode auch ans Ziel gekommen. Ist zwar nicht ganz so elegant, hat aber auch funktioniert.
Windows(DNSB).Activate
Range(Cells(jj, 6), Cells(jj, 77)).Select
Selection.Copy
Windows(Datei).Activate
Range(Cells(j, 77), Cells(j, 149)).Select
ActiveSheet.Paste
Ist es bei resize auch möglich das paste in der gleichen Zeile hinten anzuhängen?
Workbooks(DNSB).Sheets("Bericht1").Cells(jj, 6).Resize(1, 72).Copy Workbooks(Datei).Sheets("Top_BN").Cells(j, 77)
Den ersten Testlauf mit einem Teil der Daten habe ich absolviert. Mit den ganzen Daten schaut es so aus als ob mein Rechner einen Tag beschäftigt wäre!?! Naja Hauptsache keine Handarbeit.
Danke für deine Hilfe.
Joni
Anzeige

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige