Kundenkonto suchen und Guthaben ausgeben - Teil 2

Hallo w-w-w-Gemeinde,

ich möchte hier an einen weiter untenstehenden Thread (zur Zeit noch der unterste) „Kundenkonto suchen und Guthaben ausgeben“

http://www.wer-weiss-was.de/cgi-bin/f

anknüpfen, da ich glaube fast am Ziel zu sein und für den Endspurt eure Hilfe brauche. :smile:

Es geht um eine Excellösung, bei der ich aus einem Adressenpool einen bestimmten Datensatz auswählen kann, und diesem Satz einen Rabatt auf das entsprechende Guthabenkonto gutschreibe oder abziehe. Mit Hilfe vom www-Mitglied Reinhard bin ich schon ziemlich weit gekommen.

Eine Testdatei kann unter

http://rapidshare.de/files/10934957/T

runtergeladen werden.

Hier die aktuelle Beschreibung der Exceldatei:

Es gibt drei Tabellenblätter. Blatt 1 = Eingabe, Blatt 2 = Adressen, Blatt 3 = Protokoll.

In Blatt 1 wird der Name in Zelle B5 aus einer Dropdownliste ausgewählt. Dazu habe ich den Adressdatenbereich in „Adressen“ in Bereich benannt. Unter Daten -> Gültigkeit-> Zulassen-> Liste = Bereich in der Zelle B5 eine Dropdownliste von „Bereich“ eingerichtet.

VB-Code aus Blatt 1:

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Target.Address(0, 0) „B5“ Then Exit Sub
Set wsA = Worksheets(„Adressen“)
Set wsP = Worksheets(„Protokoll“)
zeiA = wsA.Range(„A65536“).End(xlUp).Row
zeiP = wsP.Range(„A65536“).End(xlUp).Row
zei = Application.WorksheetFunction.Match(Range(„B5“), wsA.Range(„I1:I“ & zeiA), 0)
wsA.Range(„A“ & zei & „:H“ & zei).Copy wsP.Range(„A“ & zeiP + 1)
wsA.Range(„A“ & zei & „:H“ & zei).Copy Range(„A2“)
Application.EnableEvents = True
End Sub

In den Zellen A2-H2 werden dann die Kundendaten aus „Bereich“ wie folgt ausgegeben:

Kd-Nr. | Anrede | Name | Vorname | Straße | PLZ | Ort | G-Konto

In Zelle C5 wird der Rabatt eingegeben, welcher vom G-Konto aufgerechnet oder abgezogen wird. Dies wird durch Makros erreicht die über „+“ & „-“-Buttons aktiviert werden. Der neue Betrag wird in Zelle H2 angezeigt.

VB-Code „+“ & „-“, sowie Protokollierung:

Sub Plus()
Call neu(1)
End Sub

______________________________________________________________________

Sub Minus()
Call neu(-1)
End Sub

______________________________________________________________________

Sub neu(faktor As Integer)
Set wsA = Worksheets(„Adressen“)
Set wsP = Worksheets(„Protokoll“)
Set wsE = Worksheets(„Eingabe“)
If wsE.Range(„C5“) = „“ Or wsE.Range(„C5“) = 0 Then
MsgBox „C5 ist leer!“
Exit Sub
End If
zeiA = wsA.Range(„A65536“).End(xlUp).Row
zei = Application.WorksheetFunction.Match(Range(„B5“), :wsA.Range(„I1:I“ & zeiA), 0)
wsE.Range(„H2“) = wsE.Range(„H2“) + faktor * wsE.Range(„C5“)
wsA.Range(„H“ & zei) = wsA.Range(„H“ & zei) + faktor * wsE.Range(„C5“)
wsP.Range(„I“ & wsP.Range(„A65536“).End(xlUp).Row) = wsA.Range(„H“ & zei)
wsP.Range(„J“ & wsP.Range(„A65536“).End(xlUp).Row) = wsP.Range(„I“ & wsP.Range(„A65536“).End(xlUp).Row) - wsP.Range(„H“ & wsP.Range(„A65536“).End(xlUp).Row)
wsP.Range(„K“ & wsP.Range(„A65536“).End(xlUp).Row) = Date
wsP.Range(„L“ & wsP.Range(„A65536“).End(xlUp).Row) = Time
Range(„C5“) = „“
End Sub

Die Eingabezellen hießen vorher anders. Ich habe Sie der Übersichtlichkeit anders angeordnet und die entsprechenden Verweise im Code angepasst. Seitdem muss ich nach jedem eingegebenen Betrag unter C5 den Button „Funktion reaktivieren“ klicken, damit der ausgewählte Datensatz in den Zellen A2-H2 in „Eingabe“ angezeigt wird.

VBA-Code „Funktion reaktivieren“:

Sub MakrosEin()
Application.EnableEvents = True
End Sub

So sieht der VB-Code in „Adressen“ aus:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column > 1 Then Exit Sub
zei = Range(„A65536“).End(xlUp).Row
ActiveWorkbook.Names.Add Name:=„Bereich“, RefersTo:="=Adressen!$I$2:blush:I$" & zei
MsgBox ActiveWorkbook.Names(„Bereich“).RefersTo
End Sub

Dort hab ich noch einen Button welches den Befehl aus Daten -> Maske öffnet:

Private Sub CommandButton1_Click()
ActiveSheet.ShowDataForm
End Sub

Zur Zeit sind nur drei Datensätze in „Adressen“ eingegeben. In der „echten“ Adressliste sind aber einige Hundert Andressen gespeichert. Da die Dropdownliste nur ein manuelles suchen per scrollen erlaubt, wird es etwas schwierig den richtigen Kunden schnell zu finden. Gibt es noch eine Möglichkeit, den Namen einzugeben, oder den ersten Buchstaben zuerst auszuwählen, wie es Reinhard schon im untenstehenden Archiv angedeutet hat?

Noch eins zur Klärung:

Von dem was hier geschrieben steht, versteh ich nur die Hälfte und kam auch nur zustande, da Reinhard mir den größten Teil „gebastelt“.

Darum bitte ich Euch um verständliche Hilfestellungen.
Vieln Dank! :smile:

Achim

Hallo achim,
ich habe dich nicht vergessen, aber ich habe schlichtweg derzeit keine Zeit für Excel. In Frankfurt sind jetzt die großen Messen und ich mache mit Auf- und Abbau viele 10-12 Stunden Tage.
Ich hatte schon an deiner Datei gearbeitet, das mit der Auswahl des Anfangsbuchstabens klappte schon, dann scheiterte ich an einem eher banalen Sortierproblem. D. h. ich wollte auf einem zweiten Blatt deine Daten nach dem Nachnamen sortieren, auf deinem Originalblatt kann ja ne andre Reihenfolge sein, und dann nach der Sortierung aufgrund des Anfangsbuchstabens für die zweite Ausgabebox den Listfill bereich definieren, aber irgendwie sortiert da Excel nicht oder falsch, da blieb ich hängen.
Ih habe die Datei hochgeladen, vielleicht können andre meinen Pfad witergehen oder dir sonstwie helfen.
Ich mache weiter wenn ich wieder Zeit habe.
Die Datei: http://www.badongo.com/file.php?file=achimsdatei__20…
Gruß
Reinhard

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hi Achim,
vielleicht ist das schon gut so:
http://www.badongo.com/file.php?file=Testdatei3+mit+…
Gruß
Reinhard

Hallo Reinhard,

bitte entschuldige, dass ich mich erst jetzt melde. Wenns drunter und drüber geht, verlier ich schon mal meinen Kopf. *schäm*

Hi Achim,
vielleicht ist das schon gut so:
http://www.badongo.com/file.php?file=Testdatei3+mit+…
Gruß
Reinhard

Unter dem genannten Link kann ich leider nichts finden.
Könntest Du die Datei noch einmal uploaden?
Vielen Dank!

Achim

Unter dem genannten Link kann ich leider nichts finden.
Könntest Du die Datei noch einmal uploaden?

Hi Achim,
klar,
http://www.badongo.com/file.php?file=nochma__2006-02…
Gruß
Reinhard

Hi Achim,
klar,
http://www.badongo.com/file.php?file=nochma__2006-02…
Gruß
Reinhard

Super schau ich mir gelich an!

Danke Dir!

Schöne Grüße

Achim