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

Forumthread: Makro: Inhalt in Zeile überschreiben / hinzufügen

Makro: Inhalt in Zeile überschreiben / hinzufügen
04.03.2019 22:16:23
Matthias
Hallo zusammen
https://www.herber.de/bbs/user/128106.xlsx
In der ersten Lasche ist eine Artikelliste.
In der zweiten Lasche trage ich Änderungen/neue Artikel ein
Mit einem Makro möchte ich alle in der zweiten Lasche eingetragenen Änderungen / neuen Produkte in die erste Lasche übertragen.
Im Stil:
For each Line in Berechnungen
Check CSV if exist
if yes, replace price
if no, add new line and insert article id + price
Herzlichen Dank für eure Hilfe.
Matthias
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Makro: Inhalt in Zeile überschreiben / hinzufügen
05.03.2019 05:36:59
Hajo_Zi
Hallo Matthias,
das geht nicht, da eine XLSX Datei kein Makro enthalten kann.
Ich sehe keinen Grund eine Datei 2x zu speichern. Ich führe keine Liste unter welchem Dateinamen ich die Datei gespeichert habe.

Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
Die Beiträge werden auch ignoriert, es erfolgt keine Antwort.
Anzeige
AW: Makro: Inhalt in Zeile überschreiben / hinzufügen
05.03.2019 12:15:07
Matthias
OK, abgesehen davon, dass ich die Date im falschen Format vorbereitet habe, wie würde denn diese Funktion aussehen? Die Datei wird nicht 2x gespeichert. Oder habe ich etwas unklar formuliert?
AW: Makro: Inhalt in Zeile überschreiben / hinzufügen
05.03.2019 14:54:06
Peter
Hallo Matthias,
vieleicht so.
https://www.herber.de/bbs/user/128123.xlsm
Gruß
Peter (hpo)
Anzeige
Danke Peter :-)
05.03.2019 20:18:32
Matthias
Funktioniert super!
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Makro: Inhalte in Zeilen effizient überschreiben und hinzufügen


Schritt-für-Schritt-Anleitung

Um Änderungen und neue Artikel von einer Excel-Tabelle in eine andere zu übertragen, kannst Du ein Makro verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung, um dies zu realisieren:

  1. Öffne Excel und erstelle zwei Arbeitsblätter: eines für die Artikelliste und das andere für die neuen Produkte oder Änderungen.

  2. Drücke ALT + F11, um den Visual Basic for Applications (VBA) Editor zu öffnen.

  3. Füge ein neues Modul hinzu:

    • Klicke mit der rechten Maustaste auf „VBAProject (deineDatei.xlsx)“.
    • Wähle „Einfügen“ und dann „Modul“.
  4. Kopiere und füge den folgenden Code ein:

    Sub UpdateProducts()
        Dim wsArtikelliste As Worksheet
        Dim wsÄnderungen As Worksheet
        Dim lastRowArtikelliste As Long
        Dim lastRowÄnderungen As Long
        Dim i As Long
        Dim gefunden As Boolean
    
        Set wsArtikelliste = ThisWorkbook.Sheets("Artikelliste")
        Set wsÄnderungen = ThisWorkbook.Sheets("Änderungen")
    
        lastRowArtikelliste = wsArtikelliste.Cells(wsArtikelliste.Rows.Count, 1).End(xlUp).Row
        lastRowÄnderungen = wsÄnderungen.Cells(wsÄnderungen.Rows.Count, 1).End(xlUp).Row
    
        For i = 2 To lastRowÄnderungen ' Beginne bei 2, um Header zu überspringen
            gefunden = False
            For j = 2 To lastRowArtikelliste
                If wsArtikelliste.Cells(j, 1).Value = wsÄnderungen.Cells(i, 1).Value Then
                    ' Artikel gefunden, Preis ersetzen
                    wsArtikelliste.Cells(j, 2).Value = wsÄnderungen.Cells(i, 2).Value
                    gefunden = True
                    Exit For
                End If
            Next j
    
            ' Artikel nicht gefunden, füge neuen Artikel hinzu
            If Not gefunden Then
                wsArtikelliste.Cells(lastRowArtikelliste + 1, 1).Value = wsÄnderungen.Cells(i, 1).Value
                wsArtikelliste.Cells(lastRowArtikelliste + 1, 2).Value = wsÄnderungen.Cells(i, 2).Value
                lastRowArtikelliste = lastRowArtikelliste + 1
            End If
        Next i
    End Sub
  5. Schließe den VBA-Editor und kehre zu Excel zurück.

  6. Führe das Makro aus, indem Du auf „Entwicklertools“ > „Makros“ gehst und das Makro UpdateProducts auswählst.


Häufige Fehler und Lösungen

  • Fehler: "Die Arbeitsmappe kann keine Makros enthalten"

    • Stelle sicher, dass Du die Datei im XLSM-Format speicherst, da XLSX-Dateien keine Makros unterstützen.
  • Fehler: "Index außerhalb des Bereichs"

    • Überprüfe, ob Du die richtigen Arbeitsblattnamen im Code angegeben hast. Sie müssen exakt mit den Tabellennamen in Deiner Datei übereinstimmen.

Alternative Methoden

Wenn Du nicht mit Makros arbeiten möchtest, kannst Du auch folgende Methoden nutzen:

  • SVERWEIS-Funktion: Nutze die SVERWEIS-Funktion, um Preise in der Artikelliste basierend auf Artikel-ID zu aktualisieren.
  • Power Query: Importiere die Daten aus beiden Tabellen und führe die Aktualisierungen über Power Query durch.

Praktische Beispiele

Angenommen, Du hast folgende Daten in der Artikelliste:

Artikel-ID Preis
1001 10
1002 15

Und in der Änderungs-Liste:

Artikel-ID Preis
1001 12
1003 20

Nach Ausführung des Makros wird die Artikelliste wie folgt aussehen:

Artikel-ID Preis
1001 12
1002 15
1003 20

Tipps für Profis

  • Verwende Fehlerbehandlung im VBA-Code, um sicherzustellen, dass das Makro auch bei unerwarteten Eingaben stabil bleibt.
  • Implementiere Kommentare im Code, um die Funktionalität für andere Benutzer verständlicher zu gestalten.
  • Teste das Makro immer zuerst in einer Kopie Deiner Datei, um Datenverlust zu vermeiden.

FAQ: Häufige Fragen

1. Wie kann ich das Makro anpassen, um zusätzliche Spalten zu berücksichtigen? Du kannst weitere Cells-Zugriffe im Makro hinzufügen, um zusätzliche Spalten zu lesen und zu schreiben.

2. Funktioniert das Makro auch in Excel 2010? Ja, das vorliegende Makro funktioniert in Excel 2010 und neueren Versionen. Stelle sicher, dass Du die Datei im richtigen Format speicherst.

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