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

Artikeldaten aus zweiter Datei holen

Artikeldaten aus zweiter Datei holen
17.05.2004 13:06:35
Stefan
Hallo liebe Excel-genies,
ich habe zwei Dateien:
1.Quelldatei mit Artikelnummern in Spalte A und Preisen zu jedem Artikel
2.Zieldatei mit Artikelnummern in Spalte A und leeren Spalten rechts daneben
Ich möchte jetzt in die Zieldatei (mit unterschiedlich vielen Tabellenblättern)
die Daten aus der Quelldatei dazulesen (rechtsneben die Artikelnummer)
(Nicht mit sverweis, da die Datei sonst irregroß wird)
Ich hab`s innerhalb einer Datei bereits geschafft, aber
1. nicht wenn das ganze in zwei .xls Dateien steht.
2. nicht wenn die Anzahl Tabellenblätter variieren
ich bräuchte da irgendeine vba-syntax die "for each worksheet...oder so"
alle Tabellenblätter der Zieldatei durchwühlt und sucht ob die Artikelnummern in der Quelldatei vorhanden sind, und wenn ja, die Zeile mit den Preisen rüberzieht.
Hier mal mein bisheriger Stand den ich auch schon aus dem Forum abgespickt habe:

Sub vergleichenKopieren()
' vergleichenKopieren Makro
Dim rng As Range
Dim iRow As Integer
iRow = 1
Do Until IsEmpty(Cells(iRow, 1))
Set rng = Worksheets("Tabelle2").Columns(1).Find(what:=Cells(iRow, 1), lookat:=xlWhole, LookIn:=xlValue)
If Not rng Is Nothing Then
Range(rng.Offset(0, 4), rng.Offset(0, 21)).Value = Range(Cells(iRow, 10), Cells(iRow, 29)).Value
End If
iRow = iRow + 1
Loop
iRow = 1
Do Until IsEmpty(Cells(iRow, 1))
Set rng = Worksheets("Tabelle3").Columns(1).Find(what:=Cells(iRow, 1), lookat:=xlWhole, LookIn:=xlValue)
If Not rng Is Nothing Then
Range(rng.Offset(0, 4), rng.Offset(0, 21)).Value = Range(Cells(iRow, 10), Cells(iRow, 29)).Value
End If
iRow = iRow + 1
Loop
End Sub

Hier der Link zur Datei:https://www.herber.de/bbs/user/6446.xls
Vielen Dank für Eure Mühe ich schaff`s leider nicht selbst !
Stefan

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

Betreff
Datum
Anwender
Anzeige
AW: Artikeldaten aus zweiter Datei holen
17.05.2004 17:30:16
Dieter
Hallo Stefan,
versuch es mal mit dem folgenden Makro (unterzubringen in der Zieldatei):

Sub Zuordnen()
Dim ArtikelBereich As Range
Dim fehl As Boolean
Dim letzteZeile As Long
Dim wbQ As Workbook
Dim wbZ As Workbook
Dim wsQ As Worksheet
Dim wsZ As Worksheet
Dim zeileQ As Long
Dim zeileZ As Long
Set wbQ = Workbooks.Open(Filename:=ThisWorkbook.Path & "\QuellDatei.xls")
Set wbZ = ThisWorkbook
Set wsQ = wbQ.Worksheets(1)
letzteZeile = wsQ.Cells(wsQ.Rows.Count, 1).End(xlUp).Row
Set ArtikelBereich = wsQ.Range("A2", Cells(letzteZeile, 1))
For Each wsZ In wbZ.Worksheets
letzteZeile = wsZ.Cells(wsZ.Rows.Count, 1).End(xlUp).Row
For zeileZ = 3 To letzteZeile
If IsNumeric(wsZ.Cells(zeileZ, 1)) Then
If wsZ.Cells(zeileZ, 1) <> 0 Then
zeileQ = ZeilenNr(Suchbegriff:=wsZ.Cells(zeileZ, 1), _
Datenbereich:=ArtikelBereich, _
Fehler:=fehl) + 1
If Not fehl Then
wsQ.Range(wsQ.Cells(zeileQ, "K"), _
wsQ.Cells(zeileQ, "AA")).Copy _
Destination:=wsZ.Cells(zeileZ, "G")
Else
wsZ.Cells(zeileZ, "G") = "Art. nicht vorhand."
End If
End If
End If
Next zeileZ
Next wsZ
End Sub


Function ZeilenNr(Suchbegriff As Double, _
Datenbereich As Range, _
Fehler As Boolean) As Long
' Funktion zur Ermittlung der Zeilen-Nr.
' zum Suchbegriff
Fehler = False
On Error GoTo Fehlerbeh
ZeilenNr = Application.WorksheetFunction. _
Match(Suchbegriff, Datenbereich, 0)
On Error GoTo 0
Exit Function
Fehlerbeh:
Fehler = True
End Function

MfG
Dieter
Anzeige
AW: Artikeldaten aus zweiter Datei holen
Stefan
Hallo Dieter,
total super von Dir !
hab`s etwas abgeändert, da ich nur Werte und keine Zellformate brauchen konnte.
Hier das Fertige produkt (überträg nur die Werte) und ist irreschnell(obwohl ich mangels kenntniss jede einzelne Zelle anspreche

Sub Zuordnen()
Dim ArtikelBereich As Range
Dim fehl As Boolean
Dim letzteZeile As Long
Dim wbQ As Workbook
Dim wbZ As Workbook
Dim wsQ As Worksheet
Dim wsZ As Worksheet
Dim zeileQ As Long
Dim zeileZ As Long
Set wbQ = Workbooks.Open(Filename:=ThisWorkbook.Path & "\QuellDatei.xls")
Set wbZ = ThisWorkbook
Set wsQ = wbQ.Worksheets(1)
letzteZeile = wsQ.Cells(wsQ.Rows.Count, 1).End(xlUp).Row
Set ArtikelBereich = wsQ.Range("A2", Cells(letzteZeile, 1))
For Each wsZ In wbZ.Worksheets
letzteZeile = wsZ.Cells(wsZ.Rows.Count, 1).End(xlUp).Row
For zeileZ = 3 To letzteZeile
If IsNumeric(wsZ.Cells(zeileZ, 1)) Then
If wsZ.Cells(zeileZ, 1) <> 0 Then
zeileQ = ZeilenNr(Suchbegriff:=wsZ.Cells(zeileZ, 1), _
Datenbereich:=ArtikelBereich, _
Fehler:=fehl) + 1
If Not fehl Then
'ORIGINALwsQ.Range(wsQ.Cells(zeileQ, "K"), wsQ.Cells(zeileQ, "AA")).Copy Destination:=wsZ.Cells(zeileZ, "G")
wsZ.Cells(zeileZ, "E").Value = wsQ.Cells(zeileQ, "J")
wsZ.Cells(zeileZ, "F").Value = wsQ.Cells(zeileQ, "K")
wsZ.Cells(zeileZ, "G").Value = wsQ.Cells(zeileQ, "L")
wsZ.Cells(zeileZ, "H").Value = wsQ.Cells(zeileQ, "M")
wsZ.Cells(zeileZ, "I").Value = wsQ.Cells(zeileQ, "N")
wsZ.Cells(zeileZ, "J").Value = wsQ.Cells(zeileQ, "O")
wsZ.Cells(zeileZ, "K").Value = wsQ.Cells(zeileQ, "P")
wsZ.Cells(zeileZ, "L").Value = wsQ.Cells(zeileQ, "Q")
wsZ.Cells(zeileZ, "M").Value = wsQ.Cells(zeileQ, "R")
wsZ.Cells(zeileZ, "N").Value = wsQ.Cells(zeileQ, "S")
wsZ.Cells(zeileZ, "O").Value = wsQ.Cells(zeileQ, "T")
wsZ.Cells(zeileZ, "P").Value = wsQ.Cells(zeileQ, "U")
wsZ.Cells(zeileZ, "Q").Value = wsQ.Cells(zeileQ, "V")
wsZ.Cells(zeileZ, "R").Value = wsQ.Cells(zeileQ, "W")
wsZ.Cells(zeileZ, "S").Value = wsQ.Cells(zeileQ, "X")
wsZ.Cells(zeileZ, "T").Value = wsQ.Cells(zeileQ, "Y")
wsZ.Cells(zeileZ, "U").Value = wsQ.Cells(zeileQ, "Z")
wsZ.Cells(zeileZ, "V").Value = wsQ.Cells(zeileQ, "AA")
Else
wsZ.Cells(zeileZ, "G") = "Art. nicht vorhand."
End If
End If
End If
Next zeileZ
Next wsZ
End Sub


Function ZeilenNr(Suchbegriff As Double, _
Datenbereich As Range, _
Fehler As Boolean) As Long
' Funktion zur Ermittlung der Zeilen-Nr.
' zum Suchbegriff
Fehler = False
On Error GoTo Fehlerbeh
ZeilenNr = Application.WorksheetFunction. _
Match(Suchbegriff, Datenbereich, 0)
On Error GoTo 0
Exit Function
Fehlerbeh:
Fehler = True
End Function

Anzeige
AW: Artikeldaten aus zweiter Datei holen
18.05.2004 14:27:52
Dieter
Hallo Stefan,
vielen Dank für die Rückmeldung. An die Formate hatte ich nicht gedacht.
An Stelle der vielen Einzelzuweisungen kannst du auch folgendes schreiben:
wsZ.Range(wsZ.Cells(zeileZ, "E"), wsZ.Cells(zeileZ, "V")).Value = _
wsQ.Range(wsQ.Cells(zeileQ, "J"), wsQ.Cells(zeileQ, "AA")).Value
MfG
Dieter
AW: Artikeldaten aus zweiter Datei holen
stefan
Danke !
hat mir wirklich sehr geholfen !
Gruß,
Stefan

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige