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

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

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.

307 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige