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

Importierung von Daten / Preislistenänderung

Importierung von Daten / Preislistenänderung
09.07.2015 15:38:32
Daten
Hallo liebes Excel-Forum,
und zwar habe ich folgendes Problem. Ich habe eine Excel-Liste, in der Name, Produktnummer und der Preis enthalten sind.
Wöchentlich bekomme ich eine Liste mit aktualisierten Preisen bzw neuen Produkten.
Jetzt würde ich gerne ein Makro haben, dass die wöchentliche Liste (kann auch manuell dementsprechend formatiert werden) importiert wird.
Daraufhin wird anhand der Produktnummer nach Duplikaten geprüft. Wenn die Produktnummer noch nicht vorhanden ist, wird eine Zeile
hinzugefügt mit dem entsprechenden Namen, Produktnummer und Preis. Sollte die Produktnummer schon vorhanden sein, wird nur der Preis
aktualisiert.
Ist das technisch umsetzbar mit Makros und vba?
Bin langsam am Verzweifeln! Smile
Vielen Dank im Voraus und beste Grüße,

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Importierung von Daten / Preislistenänderung
09.07.2015 16:52:53
Daten
Hallo Tobias
im Beispiel ist Produktnummer in Spalte 1 Name in Spalte 2 und der Preis in Spalte 3
beide Dateien öffnen und das Makro von der Zieldatei aus starten
Gruss Beni
Sub Daten_sammeln()
Windows("Daten.xls").Activate 'anpassen
If Workbooks.Count > 2 Then MsgBox "Es darf nur eine Quelldatei offen sein!", vbCritical, " _
Datei schliessen": Exit Sub
If Workbooks.Count = 1 Then MsgBox "Bitte Quelldatei öffnen!", vbInformation, "Datei öffnen":  _
Exit Sub
For wkb = 1 To Workbooks.Count
If Not Workbooks(wkb).Name = ActiveWorkbook.Name Then Set wb = Workbooks(wkb).Sheets(1) '  _
Name Quelldatei setzen, da nicht bekannt
Next wkb
For i = 2 To wb.Cells(Rows.Count, 1).End(xlUp).Row ' bis Ende Quelldatei
Prod = Cells(i, 1)
Set p = Columns(1).Find(What:=Prod, LookIn:=xlValues, LookAt:=xlWhole)
If Not p Is Nothing Then
Cells(p.Row, 3) = wb.Cells(i, 3) ' Spalte 3
Else
nz = Cells(Rows.Count, 1).End(xlUp).Row + 1 ' neue Zeile
Cells(nz, 1) = wb.Cells(i, 1) ' Spalte 1
Cells(nz, 2) = wb.Cells(i, 2) ' Spalte 2
Cells(nz, 3) = wb.Cells(i, 3) ' Spalte 3
End If
Next i
End Sub

Anzeige
AW: Importierung von Daten / Preislistenänderung
10.07.2015 09:19:18
Daten
Hallo Beni,
vielen Dank für deine Antwort. Wenn ich wie du sagst beide Dateien offen habe und das Makro ausführe, sagt er mit "Es darf nur eine Quelldatei offen sein!" aus deinem Script.
Wenn ich nur eine Datei geöffnet habe und dein Makro ausführe, sagt er mir: "Run-Time error 9: Subscript out of range".
Ich muss doch lediglich in der zweiten Zeile den Namen der Datei einbinden, die die neuen Daten enthält.
Zeile 9 - Name Quelldatei setzen, da nicht bekannt - Was muss ich dafür genau ändern?

AW: Importierung von Daten / Preislistenänderung
10.07.2015 11:06:46
Daten
Hallo Tobias
ja, in dem Fall sind mehr als zwei offem
Gruss Beni

Anzeige
AW: Importierung von Daten / Preislistenänderung
10.07.2015 11:14:19
Daten
Ich habe lediglich meine Quelldatei, die Datei mit den frischen Daten und meine personal.xlsb offen.
Windows("Daten.xlsx").Activate --- Hier gebe ich den Dateinamen der neuen Preisliste ein?
For wkb = 1 To Workbooks.Count
If Not Workbooks(wkb).Name = ActiveWorkbook.Name Then Set wb = Workbooks(wkb).Sheets(1) ' -- Hier ersetze ich Name durch den Dateinamen meiner Quelldatei ohne .xlsx Endung? Was ist mit .Sheets(1)? Muss mein Sheet auch genauso heißen?
Vielen Dank im Voraus und schon einmal recht herzlichen Dank für deine bisherige Hilfe.
Gruß,
Tobias

AW: Importierung von Daten / Preislistenänderung
10.07.2015 14:50:47
Daten
Hallo Tobias
also sind es drei, personal.xlsb wird auch gezählt.
wenn der Name der Quelldatei immer gleich ist, dann den Teil löschen
If Workbooks.Count > 2 Then MsgBox "Es darf nur eine Quelldatei offen sein!", vbCritical, "Datei schliessen": Exit Sub
dann nur
Set wb = Workbooks("DeineQuelldatei").Sheets(1) ' anpassen
Sheets(1) ist der Tabellenindex, die erste von links
Gruss Beni

Anzeige
AW: Importierung von Daten / Preislistenänderung
10.07.2015 15:28:51
Daten
Ich kann Ihnen leider nicht ganz folgen. Hab es jetzt folgendermaßen probiert, aber es funktioniert nicht.
Sub Daten_sammeln()
Windows("Daten.xlsx").Activate 'anpassen
Set wb = Workbooks(test.xlsx).Sheets(1) ' Name Quelldatei setzen, da nicht bekannt
For i = 2 To wb.Cells(Rows.Count, 1).End(xlUp).Row ' bis Ende Quelldatei
Prod = Cells(i, 1)
Set p = Columns(1).Find(What:=Prod, LookIn:=xlValues, LookAt:=xlWhole)
If Not p Is Nothing Then
Cells(p.Row, 3) = wb.Cells(i, 3) ' Spalte 3
Else
nz = Cells(Rows.Count, 1).End(xlUp).Row + 1 ' neue Zeile
Cells(nz, 1) = wb.Cells(i, 1) ' Spalte 1
Cells(nz, 2) = wb.Cells(i, 2) ' Spalte 2
Cells(nz, 3) = wb.Cells(i, 3) ' Spalte 3
End If
Next i
End Sub

Anzeige
AW: Importierung von Daten / Preislistenänderung
10.07.2015 15:47:24
Daten
Hallo Tobias
ist Spalte1 ProdkteNr, Spalte2 ProduktName, und Spalte3 der Preis?
das Makro muss von der Zieldatei aus gestartet warden, darum,
Windows("Zieldatei.xlsx").Activate 'anpassen

AW: Importierung von Daten / Preislistenänderung
13.07.2015 12:16:20
Daten
Hallo Beni,
genau so ist es!

AW: Importierung von Daten / Preislistenänderung
14.07.2015 14:07:33
Daten
Hallo Tobias
Die Zieldatei als xlsm-Format speicher und dateiname anpassen, dann müsste eigendlich funktionieren
Beni

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige