13.07.2018, 14:30
Hallo Zusammen liebe Excel-Freunde,
ich bin auf der Suche nach Informationen zu meinem Problem auf euer schönes Excel-Forum gestoßen und hoffe ihr könnt mir hier helfen! Zu meiner Situation ich bin momentan im E-commerce tätig und habe mich noch nicht so intensiv mit Excel beschäftigen können.
Hier meine Problemstellung:
Wir hatten bis jetzt immer für jeden Kunden eine Preisliste und mussten uns mit Ordnern und Unterordnern beschäftigen und uns durchs Datenchaos kämpfen. Nun bin ich dabei eine Masterpreisliste zu erstellen (Einen Liste, sie zu knechten, sie alle zu finden :P). Soweit so gut ich erstelle mein Layout, füge Überschriften und sonstiges ein und habe damit meine Basispreisliste. Nun kopiere ich diese, sagen wir als Beispiel für 10 Kunden und stelle diese Kopien in relation zum Tabellenblatt "Basis". Lediglich Kundenspezifische Konditionen werden, außerhalb des Druckbereiches, auf den einzelnen Tabellenblättern gepflegt. Wie zum Beispiel % Rabatt für EK netto Berechnung.
Jetzt zu der Herausforderung, die ich gerne lösen würde. Ich würde gerne zwei Makros auf dem Basisblatt verbauen. Zum einen ein Makro, dass in der markierten Zeile an der gleichen Stelle auf allen Preislisten eine Zeile hinzufügt und diese zum Basisblatt verknüpfen (Anlage eines neuen Artikels). Die andere Funktion wäre dann ein Produkt bzw. eine Zeile entfernen auf alle Tabellen blättern / Kunden.
Ich habe in einem englischen Forum ein Makro gefunden, dass eigentlich nur eine Zeile in alle Blätter einfügen soll. Dies war am Anfang bei mir auch so aber nach weiterem "rumdoktorn" kopiert das Makro mir nun die markierte Zeile und fügt diese direkt als Verknüpfung zur Basis ein (Ich habe keine Ahnung warum). Also eigentlich eine "Fehlfunktion", obwohl es im Endeffekt fast das Ergebnis liefert das ich möchte.
Hier zum Marko:
Es sollte eigentlich den "NewName" in die Spalte B packen, da in Spalte A immer die Kategorie steht.
Sub Schaltfläche1_Klicken()
Dim Response As String, NewName As String
Dim ws As Worksheet
Response = MsgBox("Ist die richtige Zeile markiert, in die ein Artikel eingefügt werden soll?", vbYesNo)
If Response = vbNo Then Exit Sub
NewName = InputBox("Hier eine Artikelnummer einfügen")
If NewName = vbNullString Then
MsgBox "Ungültige Eingabe"
Exit Sub
End If
r = ActiveCell.Row
'note these must be the names of the sheets as they appear
'on the worksheet tab
For Each ws In Sheets(Array("Basis", "OBI", "Bauhaus"))
With ws
.Rows(r).EntireRow.Insert
.Cells(r, 1) = NewName
.Cells(r - 1, 2).Resize(2, 256).FillDown
End With
Next
End Sub
Ich habe euch eine bereinigte Datei der Preisliste angefügt, damit ihr direkt sehen könnt worum es geht. Ich hoffe ihr könnt mir hier weiterhelfen.
Vielen dank schon mal für eure Mühen!
Viele Grüße
Sebastian
ich bin auf der Suche nach Informationen zu meinem Problem auf euer schönes Excel-Forum gestoßen und hoffe ihr könnt mir hier helfen! Zu meiner Situation ich bin momentan im E-commerce tätig und habe mich noch nicht so intensiv mit Excel beschäftigen können.
Hier meine Problemstellung:
Wir hatten bis jetzt immer für jeden Kunden eine Preisliste und mussten uns mit Ordnern und Unterordnern beschäftigen und uns durchs Datenchaos kämpfen. Nun bin ich dabei eine Masterpreisliste zu erstellen (Einen Liste, sie zu knechten, sie alle zu finden :P). Soweit so gut ich erstelle mein Layout, füge Überschriften und sonstiges ein und habe damit meine Basispreisliste. Nun kopiere ich diese, sagen wir als Beispiel für 10 Kunden und stelle diese Kopien in relation zum Tabellenblatt "Basis". Lediglich Kundenspezifische Konditionen werden, außerhalb des Druckbereiches, auf den einzelnen Tabellenblättern gepflegt. Wie zum Beispiel % Rabatt für EK netto Berechnung.
Jetzt zu der Herausforderung, die ich gerne lösen würde. Ich würde gerne zwei Makros auf dem Basisblatt verbauen. Zum einen ein Makro, dass in der markierten Zeile an der gleichen Stelle auf allen Preislisten eine Zeile hinzufügt und diese zum Basisblatt verknüpfen (Anlage eines neuen Artikels). Die andere Funktion wäre dann ein Produkt bzw. eine Zeile entfernen auf alle Tabellen blättern / Kunden.
Ich habe in einem englischen Forum ein Makro gefunden, dass eigentlich nur eine Zeile in alle Blätter einfügen soll. Dies war am Anfang bei mir auch so aber nach weiterem "rumdoktorn" kopiert das Makro mir nun die markierte Zeile und fügt diese direkt als Verknüpfung zur Basis ein (Ich habe keine Ahnung warum). Also eigentlich eine "Fehlfunktion", obwohl es im Endeffekt fast das Ergebnis liefert das ich möchte.
Hier zum Marko:
Es sollte eigentlich den "NewName" in die Spalte B packen, da in Spalte A immer die Kategorie steht.
Sub Schaltfläche1_Klicken()
Dim Response As String, NewName As String
Dim ws As Worksheet
Response = MsgBox("Ist die richtige Zeile markiert, in die ein Artikel eingefügt werden soll?", vbYesNo)
If Response = vbNo Then Exit Sub
NewName = InputBox("Hier eine Artikelnummer einfügen")
If NewName = vbNullString Then
MsgBox "Ungültige Eingabe"
Exit Sub
End If
r = ActiveCell.Row
'note these must be the names of the sheets as they appear
'on the worksheet tab
For Each ws In Sheets(Array("Basis", "OBI", "Bauhaus"))
With ws
.Rows(r).EntireRow.Insert
.Cells(r, 1) = NewName
.Cells(r - 1, 2).Resize(2, 256).FillDown
End With
Next
End Sub
Ich habe euch eine bereinigte Datei der Preisliste angefügt, damit ihr direkt sehen könnt worum es geht. Ich hoffe ihr könnt mir hier weiterhelfen.
Vielen dank schon mal für eure Mühen!
Viele Grüße
Sebastian