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

Rechnung erstellen mit gleichzeitiger Aktualisierung der Bestandsliste

Discussion in 'Office-Programme' started by LotharX, May 30, 2008.

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

    Urs2 Megabyte

    @Lothar ---- sehr seltsam...

    Mit Deiner Datei erhalte ich auch den Fehler 91!
    Ich werde heute Nacht versuchen, etwas zu verstehen...

    Wir haben ja noch einen anderen Experten für hoffnungslose Fälle im Forum - aus "Max, Moritz & Co"

    Lehrer Lämpel :wink: >>> hättest Du eine schnelle Idee?

    - Was mache ich falsch?
    - Wenn ich in Lothars Datei in der Aerger-Zeile das Offset weglasse, und imSchritt-Modus teste, habe ich immer noch den Fehler91 >>> bei beiden Varianten meiner Makkros > der Fehler müsste also im Find liegen.
    - Ob ich die Suchzellen in Lothars XLS als VAR, DBL, TXT formatiere >>> gleicher Fehler...
    - Da meine beiden eigenen Makros in meiner XLS bei mir funktionieren, aber meine eigenen Makros in der XLS von Lothar das bei mir auch nicht tun... ???

    Danke für die Unterstützung.

    Gruss Urs
     
  2. LotharX

    LotharX Byte

    @Urs


    Als ich meine Frage hier ins Forum stellte, da schwebte mir vor, dass irgend jemand eine passende Formel oder ein kleines Makro parat hat, mein Problem somit recht schnell und ohne grossen Aufwand gelöst werden kann.

    Irgendwie ist mir die ganze Sache dann aus dem Ruder gelaufen, oder ich war zu naiv, und so langsam bekomme ich ein schlechtes Gewissen, dass ich Deine Freizeit ausnutze und auch noch andere mit meinem Problem belästige.

    Dazu kommt, dass ich mich mit Excel nicht so richtig auskenne; die Formeln und Makros, die in meiner Mappe integriert sind, habe ich in irgendwelchen Artikeln gesehen, kopiert und versucht, sie an meine Bedürfnisse anzupassen. Das war recht einfach, soweit es auf Anhieb funktioniert hat, bei Auftritt von Problemen jedoch stand und stehe ich immer noch "auf dem Schlauch", ich habe ja nie Excel gelernt, und ich habe grosse Probleme, Excel in seiner eigenen Logik zu verstehen, vielleicht bin ich ja auch einfach zu alt dafür, mich da noch hineinzuknieen.

    Also, ich möchte hier nicht einfach so "abzocken", und ich möchte Dich bitten, es mir sofort zu sagen, ganz direkt, wenn ich Dir oder anderen lästig falle.

    Ja, das musste ich einmal sagen, und ich hoffe, Ihr alle versteht meine Beweggründe.

    Danke erst einmal für Deine Mühe!


    Gruss

    Lothar
     
  3. Urs2

    Urs2 Megabyte

    @Lothar >>> mache Dir ja keine Sorgen >

    1. sind alle freiwillig hier, und helfen tun sie nur, wenn sie Lust dazu haben
    2. geht man auch gerne auf Probleme ein, die grösser sind als "Wo ist jetzt meine gelöschte Datei?"
    3. hilft man dort, wo man meint auch helfen zu können... dachte ich auch...

    Nun, ich habe in meiner eigenen Versuchs-Datei einen Code geschrieben der das blöde Find nicht braucht > geht perfekt!
    Den neuen Code in Deine Datei kopiert und ausgeführt > keine Fehlermeldung, aber kein Bestand nachgeführt!
    Jetzt war aber Grrrhrhh...

    Fehler gefunden > Die Artikelnummern in der Rechnung beziehst Du mit der Gültigkeit aus der Tabelle mit den Rabatten, also eine fünfstellige Nummer. Die Nummern im Bestand haben aber nur vier Stellen! Da kann ja nichts gefunden werden...
    Der Bestand hat doch wohl mit den Rabatten gar nichts zu tun?

    Ohne Find wird einfach nichts getan, mit Find wird ein Fehler angzeigt.
    Die zwei ersten Vorschläge funktionieren mit richtigen Artikelnummern nämlich auch in Deiner Datei...

    Ich habe in Deiner Tabelle Rechnung die Zellen mit den falschen Nummern nach unten verschoben und ein paar richtige Nummern eingetragen > das Resultat ist so zwar sinnlos, aber der Bestand wird jetzt aktualisiert!

    Daneben habe ich an der Tabelle nichts geändert, nur Ueberflüssiges entfernt, damit sie <100KB bleibt.
    Alle drei Codes von mir sind jetzt im Modul Rechnung. Starte sie direkt aus dem VB-Editor und schau was sie tun.

    Wie Du die echte Artikelnummer jetzt in die Rechnung bekommst?
    Vielleicht mit einer Zusatzspalte je in Rechnung und Rabatttabelle?

    Hoffentlich geht es jetzt...

    Gruss Urs
     

    Attached Files:

  4. Urs2

    Urs2 Megabyte

    @Lothar --- habe eben Deine Tabelle nochmals angeschaut...

    Die ersten vier Ziffern der fünfstelligen Rabattnummer sind doch identisch mit der vierstelligen Artikelnummer.
    Ist das wirklich so? Und bleibt es auch so?

    Dann kannst Du die jetzige Darstellung behalten, aber in jedem meiner drei Makros diese eine Zeile ersetzen >

    intArtikel = ActiveCell.Value

    muss neu heissen >

    intArtikel = CLng(Left(ActiveCell.Value, 4))

    So werden nur die ersten vier Zeichen ausgelesen (Left) und der String dann wieder in eine Zahl gewandelt.
    Die von mir verschobenen Nummern nur wieder zurückschieben...

    Gruss Urs
     
  5. LotharX

    LotharX Byte

    @ Urs

    Erst einmal danke für Deine aufmunternden Worte und für Deine Mühe, aber der Teufel steckt anscheinend nun irgendwo anders bei mir im Detail.

    Ich habe den Makrotext aus der von Dir bearbeiteten Tabelle kopiert und in meiner Tabelle (die ist jetzt grösser als 100 kb) eingefügt, d. h. ich habe meinen Makrotext gelöscht und Deinen eingefügt einschliesslich der Änderung Deines zweiten Beitrages.
    Das Makro " Sub RechnungsnrUndDrucken3" sieht bei mir so aus:


    Sub RechnungsnrUndDrucken3()
    Dim intArtikel
    Dim intMenge
    Dim c As Range

    Sheets("Rechnung").Select
    [H16] = [H16] + 1 'Rechnungsnummer 1 hochzählen
    '>>>>Drucken auskommentiert, zum Papier sparen bei Tests
    'ActiveWindow.SelectedSheets.PrintOut _
    Copies:=2, Collate:=True 'Drucken

    'wählt oberste Rechnungszeile
    ActiveSheet.Range("A23").Select
    Do
    'wenn Zelle leer > Abbrechen
    If ActiveCell.Value = "" Then Exit Do
    'speichert ArtNummer
    intArtikel = CLng(Left(ActiveCell.Value, 4))
    'speichert Verkaufsmenge
    intMenge = ActiveCell.Offset(0, 4)
    'führt Bestand nach - Range = Zellen mit ArtikelBestand
    For Each c In Worksheets("Bestand").Range("B7:B37")
    If c.Value = intArtikel Then
    c.Offset(0, 2).Value = c.Offset(0, 2).Value - intMenge
    Exit For
    End If
    Next c
    'geht eine Zeile tiefer in Rechnung
    Worksheets("Rechnung").Select
    ActiveCell.Offset(1, 0).Select
    Loop
    End Sub


    Der Bestand wird nun korrekt nachgeführt, aber dafür erfolgt kein Ausdruck mehr!

    Mir ist aufgefallen, dass der folgende Abschnitt in grüner Schrift und zum Teil mit Hochkomma versehen ist:

    'Rechnungsnummer 1 hochzählen
    '>>>>Drucken auskommentiert, zum Papier sparen bei Tests
    'ActiveWindow.SelectedSheets.PrintOut _
    Copies:=2, Collate:=True 'Drucken

    Muss ich da eventuell noch etwas ändern?

    Beim Kopieren aus dem VBA-Fenster erhalte ich nur den reinen Text, nicht aber die Formatierung. Ich habe daher einen Ausschnitt als jpg angehangen, vielleicht hilft das ja weiter, hoffentlich!

    Gruss

    Lothar
     

    Attached Files:

  6. Urs2

    Urs2 Megabyte

    Hurrah, jetzt bin ich aber schon etwas erleichtert!
    Dass nicht gedruckt wird, ist richtig, ich wollte nicht meinen Drucker bei jedem Versuch unnötig drucken lassen...

    >>>Wenn bei Dir alles klappt, entferne in der Zeile
    'ActiveWindow.SelectedSheets.PrintOut _
    >>>einfach das Hochkomma
    ActiveWindow.SelectedSheets.PrintOut _
    >>>dann druckt er wieder wie vorher...


    Die ersten beiden Varianten meiner Makros hattest Du nicht geprüft?
    Ggf. zuerst auch die nachträglich korrigierte Zeile ersetzen mit > intArtikel = CLng(Left(ActiveCell.Value, 4))

    Falls 1+2 funktionieren sollten , hätten sie nämlich einen kleinen Vorteil >
    Wenn die Bestands-Tabelle mit zusätzlichen Zeilen erweitert wird, müsste in Variante3 der Code angepasst werden.
    Den Varianten1+2 ist das egal, sie suchen einfach solange es Zeilen hat.

    Gruss Urs
     
  7. LotharX

    LotharX Byte

    @Urs

    Hurra, jetzt funktionieren alle drei Makros so, wie sie es sollen!

    Die ersten beiden Makros hatte ich nicht versucht, ich dachte, es sind Arbeitsschritte und Makro 3 ist das Endergebnis.

    Worin unterscheiden sich Makro 1 und Makro 2? Ich sehe zwar, dass dort tlw. unterschiedliche Befehle stehen, aber ich habe keine Ahnung, was sie bedeuten.

    Gruss

    Lothar
     
  8. Urs2

    Urs2 Megabyte

    @Lothar

    Das Makro2 hatte ich gebastelt (das 3 übrigens auch), weil ich dachte, Dein Excel2002 verstehe meine Befehle nicht...

    1 + 2 enthalten die gleichen Befehle, beim 2 sind sie nur etwas umgeschrieben.
    Wenn 1 + 2 funktionieren, dann übernimm 1.
    Wenn alle Versuche durch sind, kannst Du die die beiden nichtverwendeten Makros löschen.

    Gruss Urs
     
  9. LotharX

    LotharX Byte

    @Urs

    Ich habe das Makro1übernommen und die beiden anderen gelöscht.

    Danke nochmals für Deine Hilfe, alleine hätte ich es nie geschafft.

    Gruss

    Lothar
     
    Last edited: Jun 3, 2008
Thread Status:
Not open for further replies.

Share This Page