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

Vergleich per Makro

Vergleich per Makro
25.04.2016 15:34:51
Ma
Schönen guten Tag,
mein Problem liegt im Vergleich eines Wertes (Artikelnummer) in einer Matrix (mit Artikelnummern). Ich möchte per Makro ein Excel Sheet aktualisieren. Ich habe also eine Maske erstellt (siehe Datei) in der die Werte wöchentlich aus einer anderen Exceldatei(aus einem ERP System gezogen; Name Report707) zu aktualisieren sind.
Dabei soll die in der oberen linken Ecke stehende Artikelnummer(z.B. 00001) mit denen aus dem Report verglichen werden. Wenn diese Übereinstimmen sollen die Werte der entsprechenden Range z.B. für 00001--> D10:R14 aus dem Report (siehe Datei Sheet Report) kopiert und in die Maske an entsprechender Stelle für 00001 eingefügt werden.
Da ich blutiger Anfänger im VBA bin benötige ich dabei eure Hilfe. Ich denke für die Profis unter euch wird das ein Kinderspiel sein ;p
Mein bisheriger Code schaut so aus:

Private Sub Update_Click()
Dim wb As Excel.Workbook
Dim scr As Worksheet
Dim dst As Excel.Worksheet
Set wb = ActiveWorkbook
Set src = Workbooks.Open("C:\Users\Desktop\Report707.xlsx")
Set dst = wb.Sheets("Maske")
Dim i As Integer
Dim lngUZeile As Long
lngUZeile = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
For i = 15 To lngUZeile Step 12
If dst.Cells(i, 1) = src.Sheets("Report").Cells("A15:A2000") Then
src.Activate
src.Sheets("Report").Range("Di+6:Oi+10").Select
Selection.Copy
dst.Cells(i + 6, 4).Select
ActiveSheet.PasteSpecial xlValues
End If
Next i
Workbooks("Report707.xlsx").Close savechanges:=False
End Sub

Datei: https://www.herber.de/bbs/user/105225.xlsm

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

Betreff
Datum
Anwender
Anzeige
AW: Vergleich per Makro
26.04.2016 08:52:45
ChrisL
hi
Private Sub Update_Click()
Dim WB1 As Workbook, WB2 As Workbook
Dim WS1 As Worksheet, WS2 As Worksheet
Dim iZeile As Long, tempZeile As Long
Set WB1 = ThisWorkbook
Set WS1 = WB1.Worksheets("Maske")
'Set WB2 = Workbooks.Open("C:\Users\Desktop\Report707.xlsx")
Set WB2 = ThisWorkbook
Set WS2 = WB2.Worksheets("Report")
For iZeile = 15 To WS2.Cells(WS2.Rows.Count, 1).End(xlUp).Row Step 12
If WorksheetFunction.CountIf(WS1.Columns(1), WS2.Cells(iZeile, 1)) = 0 Then
MsgBox "Nummer " & WS2.Cells(iZeile, 1) & " ist nicht vorhanden."
Else
tempZeile = Application.Match(WS2.Cells(iZeile, 1), WS1.Columns(1), 0)
WS1.Range(WS1.Cells(tempZeile + 1, 4), WS1.Cells(tempZeile + 10, 18)) = _
WS2.Range(WS2.Cells(iZeile + 1, 4), WS2.Cells(iZeile + 10, 18)).Value
End If
Next iZeile
'wb2.Close savechanges:=False
End Sub

Die verbundenen Zelle würde ich soweit wie irgendwie möglich aufheben, da die nur Probleme machen.
cu
Chris

Anzeige
AW: Vergleich per Makro
27.04.2016 09:53:27
Ma
Erst einmal vielen Dank an dich ChrisL!! :)
Wäre es auch möglich anstatt der einzelnen Messagebox mit den nicht enthaltenen Artikeln eine Liste derer anzeigen zu lassen, sodass bei mehreren fehlenden nicht alle einzeln durchgeklickt werden müssen?
Grüße MA

AW: Vergleich per Makro
27.04.2016 10:07:42
ChrisL
Hi
So...
Private Sub Update_Click()
Dim WB1 As Workbook, WB2 As Workbook
Dim WS1 As Worksheet, WS2 As Worksheet
Dim iZeile As Long, tempZeile As Long
Dim sFehler As String
Set WB1 = ThisWorkbook
Set WS1 = WB1.Worksheets("Maske")
'Set WB2 = Workbooks.Open("C:\Users\Desktop\Report707.xlsx")
Set WB2 = ThisWorkbook
Set WS2 = WB2.Worksheets("Report")
For iZeile = 15 To WS2.Cells(WS2.Rows.Count, 1).End(xlUp).Row Step 12
If WorksheetFunction.CountIf(WS1.Columns(1), WS2.Cells(iZeile, 1)) = 0 Then
sFehler = sFehler & Chr(10) & WS2.Cells(iZeile, 1)
Else
tempZeile = Application.Match(WS2.Cells(iZeile, 1), WS1.Columns(1), 0)
WS1.Range(WS1.Cells(tempZeile + 1, 4), WS1.Cells(tempZeile + 10, 18)) = _
WS2.Range(WS2.Cells(iZeile + 1, 4), WS2.Cells(iZeile + 10, 18)).Value
End If
Next iZeile
If sFehler  "" Then MsgBox "Folgende Nummer/n sind nicht vorhanden:" & sFehler
'WB2.Close savechanges:=False
End Sub

cu
Chris

Anzeige
AW: Vergleich per Makro
27.04.2016 10:48:00
Ma
Super funktioniert einwandfrei! :)
ich hatte es über eine Listenbox probiert, aber so ist schön simpel vielen Dank nochmal!!

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige