Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA Script zum Einfügen/Überschreiben von Daten

VBA Script zum Einfügen/Überschreiben von Daten
18.02.2019 21:13:45
Daten
Hallo zusammen
Ich habe eine Excel Datei mit einem aktuellen Lagerbestand. Und eine zweite Excel Datei in der ich eintrage, was neu dazugekommen ist. Die ID ist sozusagen die Artikel Nummer. Entweder gibt es diese bereits, und dann sollen alle Daten (A Artikelnummer, B Artikelgrppe, C Artikelpreis ec.) überschrieben werden oder es gibt sie noch nicht, dann soll sie entsprechend am Ende eingefügt werden.
So etwas in der Richtung:
For Each Line in NEW.xlsm, if A1 ist vorhanden in A:A von Liste.xlsm, dann kopiere die ganze Zeile aus NEW und überschreibe die Zeile in Liste.xlsm. Wenn nicht vorhanden, dann füge die Zeile am Ende der Liste ein.
Das würde mir riesig helfen.
LG Matthias
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: VBA Script zum Einfügen/Überschreiben von Daten
19.02.2019 09:25:35
Daten
Hallo Matthias,
lad doch mal die Dateien(gekürzt)hoch.
Gruß Armin
AW: VBA Script zum Einfügen/Überschreiben von Daten
19.02.2019 10:28:39
Daten
Moin,
Sub aktualisieren()
Dim lastrowN, lastrowL, i, j As Integer
Dim BN, BL As String
lastrowN = IIf(IsEmpty(Workbook("NEU").Worksheet("Tabelle1").Cells(Rows.Count, 1)), _
Workbook("NEU").Worksheet("Tabelle1").Cells(Rows.Count, 1).End(xlUp).Row, Rows.Count)
For i = 2 to lastrowN
lastrowL = IIf(IsEmpty(ActiveWorkbook.Worksheet("Tabelle1").Cells(Rows.Count, 1)), _
ActiveWorkbook.Worksheet("Tabelle1").Cells(Rows.Count, 1).End(xlUp).Row, Rows.Count)
BN = FName.Worksheet("Tabelle1").Cells(i, 2)
For j = 2 To lastrowL + 1
BL = ActiveWorkbook.Worksheet("Tabelle1").Cells(j, 2)
If j = lastrow + 1 Then
ActiveWorkbook.Worksheet("Tabelle1").Range("A" & j, "E" & j) = _
Workbook("NEU").Worksheet("Tabelle1").Range("A" & i, "E" & i)
ElseIf BN = BL Then
ActiveWorkbook.Worksheet("Tabelle1").Range("A" & j, "E" & j) = _
Workbook("NEU").Worksheet("Tabelle1").Range("A" & i, "E" & i)
Exit For
End If
Next j
Next i
End Sub
Gib mal Bescheid, ob es funktioniert.
Liebe Grüße Marieke
Anzeige
AW: VBA Script zum Einfügen/Überschreiben von Daten
19.02.2019 10:56:02
Daten
Hi Marieke
Muss noch etwas definiert werden? Workbook wird markiert und dann kommt "Fehler beim Komplizieren: Sub oder Function nicht definiert".
Lieber Gruss
Matthias
VBA Script zum Einfügen/Überschreiben von Daten
19.02.2019 12:26:57
Daten
Hallo,
das muss WorkBooks und WorkSheets heißen.
Gruß
Rudi
AW: VBA Script zum Einfügen/Überschreiben von Daten
19.02.2019 12:51:06
Daten
Danke ihr beiden.
Dennoch klappt es noch nicht, es liegt vermutlich am File (Pfad? Name?) Fehler: Index ausserhalb des gültigen Bereichs.
Es wäre auch denkbar die Daten statt in einem separaten File einzugeben, beispielsweise in der Lasche "Import" zu erfassen und von dort in die Lasche "Tabelle1" zu kopieren ...
Anzeige
AW: VBA Script zum Einfügen/Überschreiben von Daten
19.02.2019 12:53:37
Daten
So lautet der Code im Moment:

Sub aktualisieren()
Dim lastrowN, lastrowL, i, j As Integer
Dim BN, BL As String
lastrowN = IIf(IsEmpty(Workbooks("Neu.xlsx").Worksheets("Tabelle1").Cells(Rows.Count, 1)),  _
_
Workbooks("Neu.xlsx").Worksheets("Tabelle1").Cells(Rows.Count, 1).End(xlUp).Row, Rows.Count) _
For i = 2 To lastrowN
lastrowL = IIf(IsEmpty(ActiveWorkbook.Worksheets("Tabelle1").Cells(Rows.Count, 1)), _
ActiveWorkbook.Worksheets("Tabelle1").Cells(Rows.Count, 1).End(xlUp).Row, Rows.Count)
BN = FName.Worksheets("Tabelle1").Cells(i, 2)
For j = 2 To lastrowL + 1
BL = ActiveWorkbook.Worksheets("Tabelle1").Cells(j, 2)
If j = lastrow + 1 Then
ActiveWorkbook.Worksheets("Tabelle1").Range("A" & j, "E" & j) = _
Workbooks("NEU").Worksheets("Tabelle1").Range("A" & i, "E" & i)
ElseIf BN = BL Then
ActiveWorkbook.Worksheets("Tabelle1").Range("A" & j, "E" & j) = _
Workbooks("NEU").Worksheets("Tabelle1").Range("A" & i, "E" & i)
Exit For
End If
Next j
Next i
End Sub

Anzeige
VBA Script zum Einfügen/Überschreiben von Daten
19.02.2019 13:41:13
Daten
Hallo,
keiner außer dir weiß, wie deine Mappen und Worksheets heißen.
Sub prcUpdate()
Dim wksLISTE As Worksheet, wksNEU As Worksheet, rngNEU As Range
Dim vntROW As Variant
Dim lngCOLUMNS As Long
Application.ScreenUpdating = False
Set wksLISTE = Workbooks("Liste.xlsm").Worksheets(1) 'anpassen
Set wksNEU = Workbooks("Neu.xlsx").Worksheets(1) 'anpassen
With wksNEU
lngCOLUMNS = .Cells(1, 1).CurrentRegion.Columns.Count
For Each rngNEU In Intersect(.Cells(1, 1).CurrentRegion, _
.Cells(1, 1).CurrentRegion.Offset(1)).Resize(, 1)
vntROW = Application.Match(rngNEU, wksLISTE.Columns(1), 0)
If IsError(vntROW) Then
vntROW = wksLISTE.Cells(Rows.Count, 1).End(xlUp).Row + 1
End If
rngNEU.Resize(, lngCOLUMNS).Copy wksLISTE.Cells(vntROW, 1)
Next rngNEU
End With
End Sub

Gruß
Rudi
Anzeige
AW: VBA Script zum Einfügen/Überschreiben von Daten
19.02.2019 13:55:23
Daten
Genial Rudi, herzlichen Dank das hat geklappt. Ich musste ausserdem beide Excel-Dateien geöffnet haben.
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige