Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Kopieren bestimmter Daten in neues Blatt + Formatierung
#1
Guten Abend,

ich bin ganz frisch hier im Forum und bin leider nicht sonderlich fit wenn es über die Basics hinaus geht. Würde mich freuen wenn mir jemand unter die Arme greifen könnte.

Folgendes Problem:

Ich habe ein Blatt welches ich als Rechnung nutze. Die wesentlichen Zellen sind:

Datum in Zelle H2
Kundennummer in Zelle H4
Artikelnummern in Zellen B21:B43
Artikelanzahl in Zellen C21:C43
(Anzahl C21 gehört bspw. zu Artikelnummer B21 usw.)

Mein Anliegen ist es per Makro die letzte Bestellung eines Kunden in einem anderen Blatt vorzuhalten. Diese Bestellung soll bei nächster Bestellung wieder überschrieben werden. Dies für alle Kundennummern natürlich untereinander.

Wünschenswert wäre folgende Formatierung in dem neuen Blatt:
A1 Kundennummer 
A2 Datum der letzten Bestellung 
A3 Artikelnummer1
A4 Anzahl1
A5 Artikelnummer2
A6 Anzahl2
A7 Artikelnummer3
A8 Anzahl3

und so weiter

darunter in B1 die nächste Kundennummer mit der letzten Bestellung.

ich hoffe das war halbwegs verständlich.
Für Tipps und Lösungsvorschläge wäre ich sehr dankbar


Angehängte Dateien
.xlsm   MS-OFFICE-FORUM-DATEI-BESTELLUNGEN-HINTERLEGEN.xlsm (Größe: 27,82 KB / Downloads: 13)
Antworten Top
#2
Moin!
Nur weil Hajo charakterlich ein ziemlicher … ist, musst Du doch (noch) nicht das Forum wechseln.
HS(V) hat Dir "drüben" nochmal geantwortet:
https://www.ms-office-forum.net/forum/sh...p?t=353465

Wenn Du woanders schon gefragt hast, dann verlinke bitte zukünftig auf das andere Forum, so wie ich dies oben gemacht habe.

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#3
Hallo,

ich hätte nicht erwartet, daß Hajo noch steigerungsfähig ist, aber offensichtlich hat er einen Weg gefunden,
seinen Mist noch höher stapeln zu können.

Zum Problem des TE. Ich habe es nach Deiner Beschreibung immer  (noch)  nicht verstanden.
________________________________________________________________________
wer aufgibt, ohne es versucht zu haben, gibt einfach nur auf!

Grüße aus Norderstedt, Peter
Antworten Top
#4
Hallo :)

Ich wollte das Forum nicht wechseln sondern vielleicht noch den einen oder andern zusätzlich auf mein Problem aufmerksam machen.
Hatte die Antwort im MS-OFFICE-FORUM noch nicht gesehen.
Ihr müsst etwas Nachsicht mit mir haben :) bin nicht so fit was Excel angeht dass ich vielleicht immer die richtigen Worte finde.

Ich versuche es hier nochmal.

Grundsätzlich geht es mir darum dass ich Rechnungen schreiben möchte in denen folgende Merkmale auftauchen:

Die Kundennummer
Das Bestelldatum
Die Artikelnummern der jeweiligen Artikel
sowie deren bestellte Anzahl.

Ich würde diese für mich relevanten Merkmale für jede Kundennummer in einem seperaten Blatt vorhalten bis die Kundennummer eine neue Bestellung auslöst.

Hintergrund ist, dass ich ohne große Datenmengen anzuhäufen, stets den Zugriff auf die letzte Kundenbestellung habe.

Szenario:

Mein Telefon klingelt und Kunde 123 möchte eine Bestellung aufgeben, weiss allerdings nicht wie seine Sorte Wasser hieß die er zuletzt bestellt hat.
Für solche Eventualitäten hätte ich gerne die Möglichkeit unter eingabe der Kundennummer "123" in dem neuen Blatt aufzurufen, wann Kunde 123 zuletzt bestellt hat, welche Artikel und in welcher Menge er diese bestellt hat.

Hoffe meine Vorstellung ist dem einen oder anderen hier nun etwas deutlicher geworden :)

Danke für euer Feedback.
Antworten Top
#5
man könnte die Bestellungen als pdf exportieren in einen Ordner speichern (unter Kdnr. und Datum.) und mit Powerquery den Ordner erfassen. Somit kann man die Übersicht über alle Bestellungen erhalten und die Dateien dann über einen Hyperlink öffnen, wenn man sie einsehen möchte!
Eine Menge reden, aber nichts sagen können viele...
[-] Folgende(r) 1 Nutzer sagt Danke an Frogger1986 für diesen Beitrag:
  • AxtionAndy
Antworten Top
#6
Hi,

mit der Lösung von HSV bekommst Du immer alle Bestellungen untereinander.

Du könntest es vielleicht auch so lösen, daß Du die letzte Bestellung der jeweiligen Kundennummer immer überschreibst. Dann hast Du nur ein einziges Blatt für alle Kunden mit den jeweils letzten Bestellungen.
[-] Folgende(r) 1 Nutzer sagt Danke an Rabe für diesen Beitrag:
  • AxtionAndy
Antworten Top
#7
genau so hatte ich es mir gedacht . leider scheitere ich an der Lösung dazu ;)
Antworten Top
#8
hier ein Versuch von mir... 

ich habe leider gerade keine Zeit für die restliche Formatierung der Zellen, aber falls der Code soweit passt, würde ich das noch vollenden! 

Der Code legt automatisch neue Kundenummern und Artikelnummer an, falls nicht vorhanden! 

Es wird immer die letzte Bestellung des Kunden überschrieben!


Code:
Sub Artikel()

On Error Resume Next

LetzteZe = Sheets("Rechnung").Cells(Rows.Count, 2).End(xlUp).Row
LetzteZe2 = Sheets("Bestellungen").Cells(Rows.Count, 1).End(xlUp).Row

Set finden = Sheets("Bestellungen").Range("B:B").Find(Sheets("rechnung").Range("H4"))
Kundenummer_Ze = finden.Row

If finden Is Nothing Then
       Kundenummer_Ze = Sheets("Bestellungen").Cells(Rows.Count, 2).End(xlUp).Row + 1
       Sheets("Bestellungen").Cells(LetzteZe2 + 1, 1).Value = Sheets("Rechnung").Range("C12").Value
       Sheets("Bestellungen").Cells(LetzteZe2 + 1, 2).Value = Sheets("Rechnung").Range("H4").Value
End If

   
   Sheets("Bestellungen").Range(Cells(Kundenummer_Ze, 4), Cells(Kundenummer_Ze, Sheets("Bestellungen").Cells(Kundenummer_Ze, 256).End(xlToLeft).Column + 1)).Value = ""
   Sheets("Bestellungen").Cells(Kundenummer_Ze, 3) = Sheets("Rechnung").Range("H2").Value

For i = 21 To LetzteZe
   
   Set finden = Sheets("Bestellungen").Range("2:2").Find(Sheets("rechnung").Cells(i, 2))
   Artikelnummer_SP = finden.Column
   
If finden Is Nothing Then
   Artikelnummer_SP = Sheets("Bestellungen").Cells(2, 256).End(xlToLeft).Column
   Sheets("Bestellungen").Cells(2, Artikelnummer_SP + 1).Value = Sheets("rechnung").Cells(i, 2).Value
   Sheets("Bestellungen").Cells(2, Artikelnummer_SP + 1).Interior.Color = Sheets("Bestellungen").Cells(2, Artikelnummer_SP - 3).Interior.Color
   Sheets("Bestellungen").Columns(Artikelnummer_SP + 1).HorizontalAlignment = xlCenter
   Sheets("Bestellungen").Cells(2, Artikelnummer_SP + 2).Value = "M?nge"
   Sheets("Bestellungen").Cells(2, Artikelnummer_SP + 2).Interior.Color = Sheets("Bestellungen").Cells(2, Artikelnummer_SP - 3).Interior.Color
   Sheets("Bestellungen").Columns(Artikelnummer_SP + 2).HorizontalAlignment = xlCenter
For Each Cell In Sheets("Bestellungen").Range(Cells(2, Artikelnummer_SP - 1), Cells(LetzteZe2 + 2, Cells(2, 256).End(xlToLeft).Column))
    Cell.BorderAround Weight:=xlThin
    Cell.Interior.Color = Sheets("Bestellungen").Cells(2, Artikelnummer_SP - 3).Interior.Color
Next
   Artikelnummer_SP = Sheets("Bestellungen").Cells(2, 256).End(xlToLeft).Column - 1
End If
   
   Sheets("Bestellungen").Cells(Kundenummer_Ze, Artikelnummer_SP).Value = Sheets("Rechnung").Cells(i, 2).Value
   Sheets("Bestellungen").Cells(Kundenummer_Ze, Artikelnummer_SP + 1).Value = Sheets("Rechnung").Cells(i, 3).Value

Next

End Sub
Eine Menge reden, aber nichts sagen können viele...
Antworten Top
#9
Hi,

vorhandene Werte für Artikel, die in der neuen Rechnung nicht drin stehen, werden nicht gelöscht.
Antworten Top
#10
Ich dachte es sollte immer die letzte Bestellung sein?!
Jetzt ist auch die Formatierung komplett!

Code:
Sub Artikel()

On Error Resume Next

LetzteZe = Sheets("Rechnung").Cells(Rows.Count, 2).End(xlUp).Row
LetzteZe2 = Sheets("Bestellungen").Cells(Rows.Count, 1).End(xlUp).Row

Set finden = Sheets("Bestellungen").Range("B:B").Find(Sheets("rechnung").Range("H4"))
Kundenummer_Ze = finden.Row

If finden Is Nothing Then
       Kundenummer_Ze = Sheets("Bestellungen").Cells(Rows.Count, 2).End(xlUp).Row + 1
       Sheets("Bestellungen").Cells(LetzteZe2 + 1, 1).Value = Sheets("Rechnung").Range("C12").Value
       Sheets("Bestellungen").Cells(LetzteZe2 + 1, 2).Value = Sheets("Rechnung").Range("H4").Value
End If

   
   Sheets("Bestellungen").Range(Cells(Kundenummer_Ze, 4), Cells(Kundenummer_Ze, Sheets("Bestellungen").Cells(Kundenummer_Ze, 256).End(xlToLeft).Column + 1)).Value = ""
   Sheets("Bestellungen").Cells(Kundenummer_Ze, 3) = Sheets("Rechnung").Range("H2").Value

For i = 21 To LetzteZe
   
   Set finden = Sheets("Bestellungen").Range("2:2").Find(Sheets("rechnung").Cells(i, 2))
   Artikelnummer_SP = finden.Column
   
If finden Is Nothing Then
   Artikelnummer_SP = Sheets("Bestellungen").Cells(2, 256).End(xlToLeft).Column
   Sheets("Bestellungen").Cells(2, Artikelnummer_SP + 1).Value = Sheets("rechnung").Cells(i, 2).Value
   Sheets("Bestellungen").Cells(2, Artikelnummer_SP + 1).Interior.Color = Sheets("Bestellungen").Cells(2, Artikelnummer_SP - 3).Interior.Color
   Sheets("Bestellungen").Columns(Artikelnummer_SP + 1).HorizontalAlignment = xlCenter
   Sheets("Bestellungen").Cells(2, Artikelnummer_SP + 1).BorderAround Weight:=xlThin
   Sheets("Bestellungen").Cells(2, Artikelnummer_SP + 2).Value = "M?nge"
   Sheets("Bestellungen").Cells(2, Artikelnummer_SP + 2).Interior.Color = Sheets("Bestellungen").Cells(2, Artikelnummer_SP - 3).Interior.Color
   Sheets("Bestellungen").Columns(Artikelnummer_SP + 2).HorizontalAlignment = xlCenter
   Sheets("Bestellungen").Cells(2, Artikelnummer_SP + 2).BorderAround Weight:=xlThin
   Artikelnummer_SP = Sheets("Bestellungen").Cells(2, 256).End(xlToLeft).Column - 1
End If
   
   Sheets("Bestellungen").Cells(Kundenummer_Ze, Artikelnummer_SP).Value = Sheets("Rechnung").Cells(i, 2).Value
   Sheets("Bestellungen").Cells(Kundenummer_Ze, Artikelnummer_SP + 1).Value = Sheets("Rechnung").Cells(i, 3).Value

Next

Letzte_ze = Sheets("Bestellungen").Cells(Rows.Count, 1).End(xlUp).Row
Letzte_Sp = Sheets("Bestellungen").Cells(2, 256).End(xlToLeft).Column


For Each cell In Sheets("Bestellungen").Range(Cells(3, 1), Cells(Letzte_ze, Letzte_Sp))
       Spalte = cell.Column
       cell.Interior.Color = Sheets("Bestellungen").Cells(2, Spalte).Interior.Color
       cell.BorderAround Weight:=xlThin
Next
End Sub
Eine Menge reden, aber nichts sagen können viele...
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste