Herbers Excel-Forum - das Archiv
Kopieren
- Kopieren von detlef vom 01.10.2003 12:49:08
Betrifft: Kopieren
von: detlef
Geschrieben am: 01.10.2003 12:49:08
Hallo,
ich möchte folgendes erreichen und ich hoffe Ihr könnt mir helfen.
Wenn der Wert Spalte N aus Tabelle1 in der Tabelle2 Spalte R vorhanden ist, dann soll der Wert in Spalte T aus Tabelle2 nach Tabelle1 in Spalte O kopiert werden.
Das Ganze hat max. 1000 Zeilen.
Die Tabelle2 wird nach dem Kopieren geschlossen und wird nach dem nächsten Öffnen anders aussehen. Bitte kein SVerweis bzw. Verknüpfung.
Ich hoffe ich habe mich verständlich ausgedrückt und jemand kann mir helfen.
Detlef
Betrifft: AW: Kopieren
von: Reinhard
Geschrieben am: 01.10.2003 14:07:48
Hi Detlef,
probier mal das da:
Option Explicit
Sub DEtlev()
Dim SuchSp As String
Dim VerglSp As String
Dim ZielSp As String
Dim QuellSp As String
Dim n As Long
SuchSp = "N"
VerglSp = "R"
ZielSp = "O"
QuellSp = "T"
For n = 1 To Tabelle1.Cells(Rows.Count, Asc(SuchSp) - 64).End(xlUp).Row
If Tabelle1.Cells(n, Asc(SuchSp) - 64) = Tabelle2.Cells(n, Asc(VerglSp) - 64) Then
Tabelle1.Cells(n, Asc(ZielSp) - 64) = Tabelle2.Cells(n, Asc(QuellSp) - 64)
End If
Next n
End Sub
Gruß
Reinhard
Betrifft: AW: Kopieren
von: Detlef
Geschrieben am: 01.10.2003 14:36:50
Hallo Reinhard,
ich habe Deinen Code übertragen, reagiert überhaubt nicht.
Noch zur Info, Tabelle1 ist Datei Daten.xls Sheet Aktuell gemeint, Tabelle2 ist Datei
Stand.xls sheet Tabelle1 gemeint.
Vielleicht kannst Du es nochmal probieren
Gruß
Detlef
Betrifft: AW: Kopieren
von: Reinhard
Geschrieben am: 01.10.2003 18:09:43
Hi Detlef,
so müßte es laufen.
Gruß
Reinhard
Sub DEtlev()
Dim SuchSp As String
Dim VerglSp As String
Dim ZielSp As String
Dim QuellSp As String
Dim n As Long
SuchSp = "N"
VerglSp = "R"
ZielSp = "O"
QuellSp = "T"
Workbooks.Open "c:\temp\Daten.xls"
Workbooks.Open "c:\temp\Stand.xls"
Set shquelle = Workbooks("Daten.xls").Worksheets("Aktuell")
Set shZiel = Workbooks("Stand.xls").Worksheets("Tabelle1")
For n = 1 To shquelle.Cells(Rows.Count, Asc(SuchSp) - 64).End(xlUp).Row
If shquelle.Cells(n, Asc(SuchSp) - 64) = shZiel.Cells(n, Asc(VerglSp) - 64) Then
shquelle.Cells(n, Asc(ZielSp) - 64) = shZiel.Cells(n, Asc(QuellSp) - 64)
End If
Next n
Workbooks.Close "c:\temp\Daten.xls"
Workbooks.Close "c:\temp\Stand.xls"
End Sub
Betrifft: AW: Kopieren
von: Detlef
Geschrieben am: 02.10.2003 08:13:00
Guten Morgen Reinhard,
funzt noch nicht,kann aber auch die beiden Dateien nicht hochladen, funktioniert nicht.
Darf ich Diese per Mail senden, wenn ja, E-Mail Adresse?
Danke
Detlef
Betrifft: AW: Kopieren
von: Reinhard
Geschrieben am: 02.10.2003 11:50:10
Hallo Detlev,
bei mir lief das Makro einwandfrei, zumindest eine Schleife weil ich nur einen Datenwert getestet habe.
Meine email steht links unter Profile in der Profilliste.
Vorab einige Fragen vielleicht steckt da ja der Fehler.
Kannst du beide Dateien manuell problemlos öffnen und in beiden in den genannten Spalten etwas probehalber ändern, also kein Schreibschutz oder so?
Den Pfad C:\temp\ musst du ja anpassen, ist da alles korrekt geschrieben, Groß/Kleinschrift.
Gehe dahin wo der Code steht und teste das Makro mit F8 Zeile für Zeile, wo bleibt es stehen mit welcher Meldung?
Gruß
Reinhard
Betrifft: Jetzt aber...
von: Reinhard
Geschrieben am: 02.10.2003 14:40:36
Hi Detlev,
schreib den folgenden Code in deine immer offene gmt2003.xls.
Ich hab jetzt mehrfach getestet, muss klappen.
Achja, ändere deine "Daten.xls
" in "Daten.xls" ab.
Gruß
Reinhard
Option Explicit
Sub Detlev()
Application.ScreenUpdating = False
Dim SuchSp As String
Dim VerglSp As String
Dim ZielSp As String
Dim QuellSp As String
Dim n As Long
Dim shQuelle As Worksheet
Dim shZiel As Worksheet
SuchSp = "N"
VerglSp = "R"
ZielSp = "O"
QuellSp = "T"
Workbooks.Open "c:\temp\Daten.xls"
Workbooks.Open "c:\temp\Stand.xls"
Set shQuelle = Workbooks("Daten.xls").Worksheets("Aktuell")
Set shZiel = Workbooks("Stand.xls").Worksheets("Tabelle1")
For n = 1 To shQuelle.Cells(Rows.Count, Asc(SuchSp) - 64).End(xlUp).Row
If shQuelle.Cells(n, Asc(SuchSp) - 64) = shZiel.Cells(n, Asc(VerglSp) - 64) Then
shQuelle.Cells(n, Asc(ZielSp) - 64) = shZiel.Cells(n, Asc(QuellSp) - 64)
End If
Next n
Workbooks("Daten.xls").Close savechanges:=True
Workbooks("Stand.xls").Close
Application.ScreenUpdating = True
End Sub