1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Dismiss Notice

Kd.-Nr. aus mehreren gleichnamigen Kd.-Namen ermitteln und in Rechnungsform übergeben

Discussion in 'Office-Programme' started by LotharX, Jun 4, 2008.

Thread Status:
Not open for further replies.
  1. LotharX

    LotharX Byte

    Kaum ist ein Problem super gelöst dank Urs2, da taucht schon ein neues auf, und mit der Suchfunktion habe ich leider nichts gefunden, was mir weiter hilft.

    In meiner Tabelle Test_01 (s. Anhang) möchte ich durch Eingabe eines Kundennamens in Zelle K4 des Tabellenblattes "Rechnung" als Ausgabe alle – hier begrenzt auf die ersten zehn – Kundennummern zzgl. Kundennamen und -vornamen erhalten, die in dem Tabellenblatt "Kunden" aufgeführt sind.

    Bisher hatte ich diese Abfrage mit der Formel

    =WENN(ISTFEHLER(INDEX(Kunden!$B$2:$B$1000;VERGLEICH(K9;Kunden!B:B;0);1));"";INDEX(Kunden!A:A;VERGLEICH(K9;Kunden!B:B;0);1))

    gelöst, aber die hat einen entscheidenden Nachteil: sie gibt nur einen Kunden zurück, auch wenn bei Namensgleichheit wie in meinem Tabellenblatt "Kunden" mehrere Kunden den Namen "Müller" führen und somit mehrere Kundennummern zurückgegeben werden könnten.

    Ich habe den Abfrageblock (J2:M14) des Tabellenblattes "Rechnung" neu gestaltet.

    Nun suche ich nach einer Möglichkeit, dass z. B. bei Eingabe des Kundennamens "Müller" alle Müllers aus dem Tabellenblatt "Kunden", hier begrenzt auf die ersten zehn, in der Ausgabeliste (K5:M14) des Tabellenblattes "Rechnung" erscheinen.
    Sodann sollen die Daten durch Anklicken einer der nun ausgegebenen Kundennummern in K5:K14 in folgende Zellen übernommen werden:

    Zelle Übernahme von
    H15: Kundennummer
    A10: Name
    A11: Vorname
    A12: Strasse und Hausnummer
    A14: PLZ
    B14: Ort

    Weiss jemand eine Lösungsmöglichkeit?

    Gruss

    Lothar

    PS
    Die Tabelle Tabelle Test_01 bekomme ich nicht hochgeladen, ich versuche es weiter.
     

    Attached Files:

    Last edited: Jun 4, 2008
  2. Urs2

    Urs2 Megabyte

    @Lothar

    So ist es oft: Eine kleine, schnelle Anwendung wächst und wächst und...
    ...bis sie dann nur noch von Insidern gewartet oder nur schon bedient werden kann...

    Zuerst:
    Grössenordnung des Kundenstamms? 100, 1000, 10000...?
    Wer benutzt die Tabelle? Geübte Anwender oder absolute Frischlinge?

    Ob man Deine Zellen so füllen könnte, und wenn ja wie, weiss ich nicht.
    Mir stellt sich jedoch die Sinnfrage > Die Suche aller Namensvettern nach Eintippen des Namens.
    Tipp- oder Denkfehler beim Eintippen in die Blätter "Kunden" oder "Rechnung" bedeuten falsche oder keine Auflistung... und dann zwingend Erfassen eines "neuen" Kunden...

    Schon bei den Meiers gibt es einige Varianten, bei alten Namen, Doppelnamen, Firmennamen oder fremdsprachigen Namen sind Flüchtigkeitsfehler gar nicht mehr zu verhindern...

    Warum lässt Du nicht direkt im Blatt "Kunden" den passenden Namen suchen und dann markieren?
    Diese Tabelle müsste man natürlich vorher nach Namen sortieren lassen.
    Die Zeile des markierten Namens würde dann ausgelesen und ins Blatt "Rechnung übertragen...

    Gruss Urs
     
  3. Hascheff

    Hascheff Moderator

    :guckstdu:Krücke Excel

    Ich habe euch beide schon im vorigen Thread bewundert. Das wird jetzt noch mal so eine Aktion.

    @ LotharX: Was hältst du von Access?
     
  4. LotharX

    LotharX Byte

    @Urs

    Der Kundenstamm wird hoffentlich grösser als 100 Kunden werden, ob 1000 erreicht werden, das wissen nur die Götter.

    Diese Tabelle werden die Freundin von mir und ihre Kinder (19 und 17 Jahre alt) benutzen, alle drei sind "geübte Frischlinge", die von Excel noch weniger Ahnung haben als ich.

    Ob jetzt die Kundennummer so ermittelt werden soll, wie ich es mir gedacht hatte oder so, wie du es vorschlägst, ist mir egal, es soll nur funktionieren, und da bin ich für jede Lösung dankbar.

    Dein Vorschlag hört sich mehr praktikabel an als meine Idee.

    Die Tabelle habe ich nun nach Namen, Vornamen und Kundennummer sortiert und mit dem Menu Bearbeiten => Suchen => Alle suchen erhalte ich dann auch z. B. alle Müllers.

    Aber wie kann ich die Zeile des markierten Namens auslesen und ins Blatt "Rechnung" übertragen?

    Da fehlen mir einfach die Kenntnisse.

    Gruss

    Lothar
     
  5. Urs2

    Urs2 Megabyte

    ...aber auf meinen, damals verzweifelten, Hilferuf hatten weder Beverly noch Du geantwortet....
    Access > davon verstehe ich gar nichts, nur dass es ab einem gewissen Punkt unabdingbar sein muss...
    ...ich hatte Dich dazu auch schon als Fachmann zitiert...

    Gruss Urs
     
  6. LotharX

    LotharX Byte

    @Hascheff

    Ich bin auch von der Eigendynamik dieser Sache völlig überrascht worden. Anfangs dachte ich, dass ich so ein Formular zusammenschustern kann, aber dann wurden die Probleme immer grösser.

    Ich habe Excel nie gelernt, die grundsätzlichen Dinge habe ich mir mühsam selbst beigebracht, aber wenn es kompliziert wird, dann fehlen mir einfach die Kenntnisse.

    Die Formeln, die ich in meiner Tabelle hinterlegt habe, habe ich mir hauptsächlich aus verschiedenen Beiträgen aus dem Internet besorgt und dann durch viel Ausprobieren "passend" gemacht. Dann war ich immer heilefroh, wenn nach dem xten Abändern der Formel endlich ein Ergebnis herauskam, das passte und keine Fehlermeldung produzierte.

    Und dann kommst Du an mit Access! ;-)

    Mit Excel komme ich in einfachen Sachen so einigermassen klar, von Access habe ich bisher nur gehört, dass es viel komplizierter sein soll als Excel und eigentlich nur für riesige Datenbestände gedacht ist. Mit Access habe ich bisher noch nie etwas gemacht. Ich weiss auch gar nicht, wie es funktioniert.

    Ich hoffe, dass ich die paar Sachen, die ich ja nur für mich mache, mit Excel und viel Zeit und Geduld noch schaffe. Excel oder gar Access zu erlernen lohnt sich für mich nicht, ich bin in Pension, und das was ich mache, ist nicht so viel auch nicht.

    Gruss

    Lothar
     
  7. Urs2

    Urs2 Megabyte

    Das wäre nun wirklich kein Problem... das könnte das Makro im Vorbeigehen jedes mal auch noch machen...

    Die Frage, die Du beantworten musst, ist diese:
    - soll nach eingetippten Namen gesucht werden? Das wäre, immer meiner Ansicht nach, unvernünftig...dafür wäre ich nicht zu haben...
    - oder soll, nach dem Alphabet, danach ausgesucht werden, was passen dürfte?

    Da enge Bekannte die Anwendung verwenden sollen, wirst Du doch wohl mit dem Stock für Ordnung sorgen können...

    Diese Frage bleibt offen > Darfst Du das Blatt "Kunden" den Benutzern zugänglich machen? Oder besser nicht?

    Ein Dropdown, der nur das Auslesen erlauben würde, wäre sicher machbar, aber etwas aufwändig...
    ...oder, nur für das Auslesen, eine Kopie des Blattes "Kunden"...

    Gruss Urs
     
  8. LotharX

    LotharX Byte

    @Urs

    "- oder soll, nach dem Alphabet, danach ausgesucht werden, was passen dürfte?"

    "Darfst Du das Blatt "Kunden" den Benutzern zugänglich machen?"

    Da kann ich nur zweimal JA sagen!

    Ich bin für einfache Lösungen, wenn diese möglich sind.

    Die ganze Angelegenheit bleibt in der Familie, da sind keine Geheimhaltungen notwendig.

    Gruss

    Lothar
     
  9. Urs2

    Urs2 Megabyte

    @Lothar

    OK - ich habe schon eine Idee...
    Wenn nichts Böses passieren wird... bis Samstag zum Frühstück...

    Gruss Urs
     
  10. Urs2

    Urs2 Megabyte

    @Lothar

    Ich habe gebastelt... schau ob es einigermassen tut was es soll...

    VB-Modul 2 >> im Sub habe ich eine Sortierfunktion hinzugefügt.
    VB-Modul Tabelle3-Kunden >> hier sind 3 Subs - die müssen dort bleiben, oder besser, sie müssen im Modul sein, das zum Blatt mit den "versenkbaren" Buttons gehört.

    Alle anderen Erklärungen habe ich direkt in die Datei oder in den VB-Code geschrieben.

    Die Datei ist jetzt etwas grösser, Du kannst sie hier herunterladen.
    Es ist eine XLS-, keine ZIP-Datei. Einfach hinten das -ZIP entfernen.
    http://www.siteupload.de/p769839-VorschlagKundeSuchenxlszip.html

    Hoffentlich funktioniert es bei Dir... all zulange habe ich nicht getestet, aber es müsste schon gehen...

    Gruss Urs
     
  11. LotharX

    LotharX Byte

    @Urs

    Bis auf eine Kleinigkeit funktioniert alles bestens!

    Mit der Kleinigkeit kann ich zwar leben, aber vielleicht hast Du trotzdem eine Lösungsmöglichkeit parat:

    Wenn ich die Datei (ich habe sie bei mir unter dem Namen "Vorschlag Kunde-Suchen_2" gespeichert) öffnen will, erscheint das im Anhang beigefügte Fenster.

    Aufgefallen ist mir nun folgendes:

    Wenn ich in der Menuzeile unter Extras => Makro => Makros öffne, erscheinen drei Makros:

    - Tabelle3.SucheKunde,
    - NeuerKunde und
    - RechnungsnrUndDrucken.

    Klicke ich nun mit der rechten Maustaste die entsprechende Schaltfläche an, dann "Makro zuweisen" auswähle, erscheint unter Makroname

    - 'Vorschlag Kunde-Suchen_2.xls'!Tabelle3.SucheKunde,
    - 'Vorschlag Kunde-Suchen_2.xls'!NeuerKunde und
    - 'Vorschlag Kunde-Suchen_2.xls'!RechnungsnrUndDrucken.

    Besteht die Möglichkeit, ohne grossen Aufwand ( wie gesagt, ich kann damit leben) diese Fehlermeldung beim Öffnen der Datei auszuschalten?

    Die Datei habe ich unter

    http://www.siteupload.de/p770336-VorschlagKundeSuchen2xlszip.html

    hochgeladen, weil si grösser ist als 100 kb.


    @ Hascheff

    bitte übe Nachsicht, ich weiss es wirklich nicht!

    Gruss

    Lothar
     

    Attached Files:

  12. Hascheff

    Hascheff Moderator

    :sorry:Da habe ich wohl was überlesen.

    Nochmal :sorry:, dass ich diesmal den Thread nur überflogen habe, liegt einfach daran, das ich zur Zeit wenig Zeit habe.

    Noch ein Wort zu Access: Ich habe auch zwei Anläufe gebraucht.
    aber Access an sich ist ziemlich intuitiv zu benutzen, das Problem liegt wo anders:
    Man muss verstanden haben, was eine Datenbank ist. Das versteht man aber am besten am konkreten Beispiel.
     
  13. Urs2

    Urs2 Megabyte

    @Lothar

    Ich sehe Deinen Beitrag erst jetzt... ich werde das morgen mal anschauen... wenn es noch nötig sein wird...

    Nachdem wir das Eröffnungsspiel an der EM gegen die Tschechen so grandios verloren hatten, habe ich meine Nerven mit VB-Code eingeschläfert........
    Und das Resultt gefällt mir persönlich bedeutend besser, als der erste Versuch.

    Es öffnet sich jetzt ein Dropdown, wo man den Kunden auswählen kann. Das verhindert schon einmal, dass man aus Versehen in der Kundendatenbank etwas verändert...

    Modul2 > ein Sub dazugefügt, das nur das Formular öffnet.
    Modul4 > unverändert
    KundenSuchen_frm > das enthält das Formular und den ganzen Code (wenn Du im Editor auf das Formular klickst, erscheint der Code...)

    Schau Dir das an.
    Aendern kann man natürlich noch... vor lauter EM-Kummer hatte ich keine Lust auf lange Tests.
    Nur den Code in eine andere Mappe eintragen geht hier nicht, das Formular selbst muss auch exportiert werden.

    Wenn es im Prinzip gefällt, werden wir weiter sehen...

    Gruss Urs

    >>> http://www.siteupload.de/p770489-VorschlagKundeSuchenDropdownxlszip.html

    PS
    Ich habe jetzt doch noch schnell Deine Probleme angeschaut. Ich glaube zwar, dass Dir die Variante von heute auch besser gefallen wird, aber...

    - Die Meldung von Excel ist eine Warnung, weil fremde, unbekannte Dateien mit Vorsicht zu behandeln sind.
    Es ist ja auch eine fremde Datei, nämlich meine, wenn Du sie unter anderem Namen abspeicherst... ist das dann Deine Datei...

    - Die langen Makronamen sind richtig.
    Unten in der Auswahl wird nur der Name des Subs angezeigt, und oben der komplette Name, mit vorangestelltem Dateinamen.
    Es sind die gleichen Namen/Makros, Du kannst sie zuweisen.
     
    Last edited: Jun 8, 2008
  14. LotharX

    LotharX Byte

    @Urs

    Die Meldungen beim Öffnen und beim Schliessen der Tabelle habe ich deaktivieren können, sie funktioniert nun einwandfrei!

    Deine Variante von heute gefällt mir aus sehr gut, ich weiss nun nicht, welcher ich den Vorzug geben soll, aber ich möchte Dich und das Forum hier nicht überstrapazieren.


    @ Hascheff

    Ich bin froh, dass ich mit Excel so einigermassen klar komme, und so (für mich) komplizierte Sachen mache ich auch nur alle paar Jahre einmal! Da freue ich mich schon, wenn ich in der Zwischenzeit nicht alles vergessen habe (ich bin seit über 7 Jahren in Pension, und schon Excel brauche ich für mich persönlich recht wenig), aber ich glaube, Access wäre für mich völlig überdimensioniert, auch wenn es ei noch so tolles Programm ist!


    Gruss

    Lothar
     
  15. Urs2

    Urs2 Megabyte

    ...das Forum ist zur Zeit froh um jeden Beitrag...
    ...und ich würde mich schon äussern, wenn...
    Ich nehme meine Vorschläge nicht einfach vom Beispiel-Haufen, ich muss sie meistens erbrüten. Bei für mich interessanten Problemen lerne ich dabei mit, für meine Anwendungen.

    Die Lösung mit dem Dropdown ist in meinen Augen besser >
    - sie verhindert Fehleingaben, es wird nur das akzeptiert, was angeboten wurde.
    - die Kundendatenbank riskiert nichts, sie wird nicht direkt angeboten, nur über den Dropdown.
    - wenn in der Datenbank nichts ist, muss zwingend via Button ein neuer Kunde erfasst werden - sonst geht nichts...
    ...und sie sieht irgendwie weniger nach Bastelei aus...

    Die hier eingestellte Variante hat einen kleinen Fehler > der Dropdown ist zu kurz. Für die Beispieldaten reicht er, aber bei vielen Einträgen ist das unpraktisch.

    >>> Im Editor das Formular anzeigen lassen > Einmal-Klick auf den Dropdown > im Eigenschaften-Fenster (wenn es nicht angezeigt wird, anzeigen lassen via Menü Ansicht) auf Position ListRow gehen > hier steht 6 > erhöhen auf 16, 18, oder 20.

    Ich werde alles noch genauer anschauen und ggf. Aenderungen hier vorschlagen.

    Gruss Urs
     
  16. LotharX

    LotharX Byte

    @Urs

    Mir ist aufgefallen, dass die Kundenliste bei Aufruf durch die Schaltfläche "Kundendaten auswählen und in Rechnung einfügen…" sortiert wird nach Name und Kundennummer.

    Ist es mit einfachen Mitteln möglich, das Makro so abzuändern, dass nach Name => Vorname => Kundennummer sortiert wird?

    Gruss

    Lothar
     
  17. Urs2

    Urs2 Megabyte

    @Lothar ---- Ich habe folgende Aenderungen im Formular vorgenommen >

    1. Grösse des Formulars an den grösseren Dropdown angepasst.
    2. Sortierung geändert auf >Name >Vorname >Kundennummer
    3. Kundennummer wird im DropDown angezeigt
    4. Button "Neu-Kunde erfassen" hinzugefügt > falls Name/Kunde im DropDown nicht gefunden wird
    5. Letzte, leere Zeile aus DropDown entfernt > Fehleingabe war möglich...
    6. Platz für Hilfetext vorgesehen
    7. Am Ende immer zurück auf Blatt Rechnung, Zelle A1

    Diese Aenderungen sind alle im Formular. Ich habe das Formular exportiert und angehängt. So siehst Du gleich, wie Du es selbst in eine andere Mappe verschieben könntest... >>>

    - beide Dateien in den gleichen Ordner herunterladen
    - sie heissen *.frm und *.frx >>> einfach das .TXT wegmachen
    - im VB-Editor auf "KundenSuchen_frm" gehen > löschen oder umbenennen > es hat ja den gleichen Namen wie das neue
    - Menü Datei > Importieren... >>> die heruntergeladene Datei suchen, auswählen und OK
    - jetzt ist das neue Formular integriert


    Für mich würde ich auf dem Blatt "Rechnung" noch einen Button anlegen "Alle Eingaben für Kunden löschen...".
    Die Kundendaten würden zwar beim nächsten Kunden überschrieben, aber die Artikel müssten von Hand gelöscht werden... und versehentlich wird dann auch nicht von einem anderen "Angestellten" die gleiche Rechnung nochmals verarbeitet und ausgedruckt...

    Kopiere dazu diesen Code zum Beispiel ins Modul2 >
    Code:
    Sub EingabenLöschen()
                    'löscht alle Eingaben in Rechnung
        Sheets("Rechnung").Activate
        Range("A23:A43,H15,A10,A11,A12,A14,B14").Value = ""
        [A1].Activate
    
    End Sub
    
    Hoffentlich klappts...

    Gruss Urs
     

    Attached Files:

  18. Urs2

    Urs2 Megabyte

    @Lothar --- Ich hatte wohl die falschen Einstellungen exportiert...

    Im DropDown, wenn man den ersten Buchstaben des Namens eingibt, erscheint dort eine Kundennummer...

    - Im VB-Editor auf "KundenSuchen_frm" clicken
    - Im Formular einmal auf den DropDown clicken
    - Im Eigenschaften-Fenster >>> Einstellung "TextColumn"
    > hier steht der Wert -1 >>> es muss 2 dort stehen

    Gruss Urs
     
  19. LotharX

    LotharX Byte

    @Urs

    So langsam glaube ich, dass ich nun an der Grenze meines Excel-Wissens angelangt bin.

    Deinen Vorschlag, einen Button anzulegen "Alle Eingaben für Kunden löschen...", habe ich befolgt, eine sehr gute Idee!

    Mit dem Rest Deiner beiden Beiträge bin ich leider restlos überfordert. Das Einzige, was ich noch geschafft habe ist das Öffnen der Datei "KundeSuchen_frm.frm" mit dem Editor(die Datei *frx konnte ich überhaupt nicht öffnen), den Rest habe ich trotz mehrfachen Versuchens nicht hinbekommen.

    Dann habe ich ein neues Makro angelegt, den Inhalt gelöscht und den Inhalt der Datei "KundeSuchen_frm.frm" eingefügt, aber da kommt dann die Fehlermeldung "Fehler beim Kompilieren: Ausserhalb einer Prozedur ungültig" und markiert ist dann in Zeile 1 des Makros "5#". Bei dem Makro "Alle Eingaben für Kunden löschen..." hat das prima funktioniert.

    Deine Änderungen im vorletzten Beitrag mit der Aktualisierung im letzten Beitrag gefallen mir sehr gut, es ist genau das, was mir so vorschwebte.

    Aber bei diesem Makro komme ich nicht weiter, und das von Dir beschriebene Procedere

    " Diese Aenderungen sind alle im Formular. Ich habe das Formular exportiert und angehängt. So siehst Du gleich, wie Du es selbst in eine andere Mappe verschieben könntest... >>>
    - beide Dateien in den gleichen Ordner herunterladen
    - sie heissen *.frm und *.frx >>> einfach das .TXT wegmachen
    - im VB-Editor auf "KundenSuchen_frm" gehen > löschen oder umbenennen > es hat ja den gleichen Namen wie das neue
    - Menü Datei > Importieren... >>> die heruntergeladene Datei suchen, auswählen und OK
    - jetzt ist das neue Formular integriert"

    kriege ich einfach nicht hin.

    Kannst Du vielleicht, wenn es keine Mühe macht, das Makro so hier einstellen, dass ich es einfach kopieren und in ein neues Makro einfügen kann?

    Gruss

    Lothar
     
  20. Urs2

    Urs2 Megabyte

    Die Makros schon, aber das Formular nicht... und ohne Formular nützen die Makros nichts...
    Die frm-Datei, die Du lesen konntest, enthält Angaben zum nackten Formular und den gesamten Code.
    Die frx-Datei kann man nicht lesen, sie enthält die einzelnen Elemente auf dem Formular mit jeweils ihren vielen individuellen Eigenschaften.
    Die frx ist das Problem, ohne sie taugt der Code nichts...

    Es ist tatsächlich gewöhnungsbedürftig, wenn man die Strukturen der Makros noch zu wenig kennt. Wenn Du aber ein Formular in eine andere Datei verschieben/kopieren willst, geht es nur so, mit Export+Import.

    Die Hilfe im VB-Editor enthält dazu Angaben, ich habe sie nur nicht gefunden...
    So gibt es Hilfe: Im Editor > Menü Datei > Datei importieren >>> in der Suchmaske auf Hilfe clicken >>> jetzt kommt Hilfe mit weiterführenden Links. Die schreiben das vielleicht verständlicher...

    Probiere es aus mit einer Versuchsdatei...
    Wichtig ist, dass genau das Projekt markiert ist, das dann das Formular auch erhalten soll.
    In der Suchmaske wird nur die FRM angezeigt, diese sucht sich dann selbst die FRX im gleichen Ordner...
    (die FRM und FRX bei Dir sind nicht mehr gültig > nicht ins Projekt einfügen...)

    Ich habe die XLS mit den Korrekturen nochmals als ganze Datei hochgeladen.
    >>> http://www.siteupload.de/p772123-VorschlagKundeSuchen10608xlsZIP.html

    Zu den Subs im Formular habe ich noch ein Sub hinzugefügt, damit beim Schliessen des Formulars, über das Kreuz oben-rechts, das Ganze auch richtig beendet wird. Du hast damit nichts zu tun.

    Gruss Urs
     
Thread Status:
Not open for further replies.

Share This Page