Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

makro in Excel Datei





Frage

ich bin auf der Suche nach einem Makro was folgendes können sollte: In Tabelle 1 erfasse ich Auftragsdaten mit: Kundenklassifizierung in Spalte D ( Nkb, Altkunde, SA ) Auftragsdatum Kunde in Spalte H Umsatz Lieferant in Spalte Q Ordernummer Lieferant in Saplte V Auftragsdatum Lieferant in Spalte W Antragsdatum Lieferanat in Spalte X Installationsdatum Lieferant in SpalteY und Vergütungsdatum Lieferant in Spalte Z In Tabelle 2 möchte ich ein Sheet haben was sich selbst aktualisiert. Die Inhalte dieses Sheets sind: Für 1. Quartal: In Zelle D9 installierter Umsatz In Zelle E9 beantragter Umsatz (wenn Spalten V-X aus Tabelle 1 sind nicht leer) In Zelle F9 vergüteter Umsatz In Zelle G9 Backlog (also Saplten V-Z aus Tabelle 1 sind leer ) Für 2. Quartal: In Zelle D10 installierter Umsatz In Zelle E10 beantragter Umsatz (wenn Spalten V-X aus Tabelle 1 sind nicht leer) In Zelle F10 vergüteter Umsatz In Zelle G10 Backlog (also Saplten V-Z aus Tabelle 1 sind leer ) Für 3. und 4. Quartal analog die Zellen 11 + 12 Wäre echt super wenn Ihr mir helfen könnt. Schon mal Danke im vorraus. Gruß Junky

Antwort 1 von sicci

Hallo Junky,

1. Definiere bitte Deine Begriffe.
2. Drücke Deine Ergebniswünsche mathematisch aus. (Wie errechnen sich
    die Ergebniswerte im ErgebnisSheet aus den Angaben im ersten?)
3. Wie/wann soll aktualisiert werden
    -  bei jeder Eingabe in sheet 1?
    -  zu einem Stichtag (Quartalsanfang oder -ende)?
    -  beim Öffnen oder Schließen der Mappe?
    -  beim aktivieren des Ergebnissheets?
    -   ..?

Gruß
sicci

Antwort 2 von michael oberley

hi junky und sicci
sicci laesst nicht locker glaub mir er moecht es immer ausfuehlicher fuer amatuere immer schwierig zu umschreiben (eigene erfahrung),AN SICCI ich bin schon dabei das macro neu zu schreiben ein bischen ordnung und uebersicht muss wohl her und deine vorschlaege bildschirmrefresh und select case geht ja super.

gruss an beide und einen schoenen tag noch


Antwort 3 von michael oberley

hi junky
wenn du eventuell vb fuer EXEL lernen moechtest ich hab einige makros schon angesammelt bei bedarf zum lernen bzw. auseinander pfluecken meld dich.

gruss nighty

Antwort 4 von greenline

Hallo nighty
ich hätte interesse, an dem Erlernen von vb für Excel.
Vielleicht könntest du mir diese makros einmal zusenden.
joerg@huber-tengen.de

vielen dank schon im voraus.

joerg


Antwort 5 von Junky

Hallo Sicci, Hallo Oberley

ich hab euch eine Beispiel-Liste per Mail zugeschickt.
Sorry, daß ich mich so lang nicht gemeldet habe,
hatte nen kurzen Urlaub nötig.
Find ich echt super, daß ihr mir ein Makro macht.
Hab schon befürchtet, daß mir keiner Helfen kann.

Auf bald Junky

Antwort 6 von sicci

Hallo Junky,

.. na Du bist ja ein lustiger Gesell.

Du hast nur das Sheet geschickt, ohne irgedwelche Erklärung, ohne eine einzige Antwort auf o.g. Fragen. Oder ist da vielleicht ein Anhang verlorn gegangen?

Gruß
sicci

Antwort 7 von junky

Hallo sicci,

Du lässt ja nicht locker, nein Du hast recht!
Also:
zu 1.: Welche Begriffte soll ich devinieren?
zu 2.: im ErgebnisSheet sollen die Umsätze Quartalsweise addiert/kumoliert
( nach Alt / Nkb / SA Kunden ) werden
zu 3.: ja, bei jeder Eingabe soll sich das Sheet aktualisieren

zur Info: Momentan hab ich ein Drittes Sheet, geordnet nach bestellter Umsatz, installierter Umsatz und vergüteter Umsatz.
Nur ist dieses Sheet zum Jahresende 32 Splaten breit und
500 Zeilen lang. In jeder Zelle ist eine ellenlange Wenn-Und-Dann-Formel. Das sind dann mal schlappe 16.000
Formeln, die das Excel ganz schön langsam machen.

Ich hoffe, Dir damit geholfen zu haben.

Gruß junky

Antwort 8 von sicci

Hallo Junky

zu 1:
"installierter Umsatz, beantragter Umsatz, vergüteter Umsatz, jetzt auch noch bestellter Umsatz - wie hängt das zusammen mit:

< Auftragsdatum Kunde in Spalte H
Umsatz Lieferant in Spalte Q
Ordernummer Lieferant in Saplte V
Auftragsdatum Lieferant in Spalte W
Antragsdatum Lieferanat in Spalte X
Installationsdatum Lieferant in SpalteY und
Vergütungsdatum Lieferant in Spalte Z >

Wie soll man sich das vorstellen?
Du erhälst einen Auftrag von einem Kunden - dann suchst Du nach einem Lieferant? - beantragst bei ihm ein Angebot? - installierst ihn (was heißt das?) - erteilst ihm einen Auftrag, vergütest ihn, machst mit ihm einen Umsatz (Kundenvergütung an Dich minus Vergütung Lieferant? Angabe Zahlung/Kunde fehlt!), was ist mit Deinen Gemeinkosten, wo sind die? was für eine Geschäftssparte ist das denn? - vielleicht erklärt das ja auch einiges.

für mich alles ungeklärte Fragen ..

Gruß
sicci

Antwort 9 von junky

hi sicci,

also dieses Geschäft ist ein reines Agenten oder auch Vermittlungsgeschäft. Ich berechne an den Kunden oder an den Lieferanten gar nichts. Prinzipiell mußt Du Dir das so vorstellten: Ich sag zum Lieferanten "Kunde XY will Produkt Z haben", darauf hin bekomme ich eine Ordernummer (Spalte V), ein Auftragsdatum (Spalte W) und einen fiktiven Umsatz gutgeschrieben (Spalte Q ). Auf diesen Umsatz bekomme ich auch die Vergütung. Diese Vergütung bekomme ich aber nur, wenn im Vorfeld ein Antrag (Spalte X)über das jeweilige Produkt in schriftlicher Form beim Lieferanten eingegangen ist. Wenn das Produkt mit einem Installationsdatum (im jeweiligen System des Lieferanten) (Spalte Y) versehen ist, habe ich erst einen Anspruch auf die Vergütung (Spalte Z). Und diesen fiktiven Umsatz bilde ich in meiner Liste ab und kann somit den Lieferanten überprüfen.
Auch beim Neukundenbonus ist das Datum der Installation (Spalte Y) relevant, denn den NkB kann ich nur in Verbindung mit einer Installation beantragen.

Hilft Dir das weiter ????

Gruß Junky

Antwort 10 von sicci

Hallo Junky,

ja, da kann man sich jetzt eher was vorstellen. Werd aber erst am Wochenende dazu kommen - melde mich, wenn´s weitere Fragen gibt.

Eine Kleinigkeit noch vorab: warum führst Du für ein Jahr im Ergebnisssheet je zweimal die Ergebnisfelder auf?
Was soll der Unterschied zwischen erstem und zweitem Ergebnisblock (SME u. selected) sein?

bis dann
sicci

Antwort 11 von junky

Hi Sicci,

der einzige Unterschied zwischen SME und Selected ist, daß der Selected Umsatz nicht zur Vergütung zählt. Ich möchte aber trotzdem wissen, welchen Umsatz ich bei den SAs habe und nur deswegen führe ich den Umsatz zweimal auf .

Als dann, schönes WE schon im vorraus.
Bis dann Junky

Antwort 12 von sicci

Schön, Junky

ABER:
Woher soll denn das Makro wissen, wann ein Umsatz in SME und wann in SA gehört ?????????????????????????

Bitte präzisiere die Bedingung!!!!!!! sprich: wann führt Umsatz zu Vergütung und muß in SME eingetragen werden, wann in SA. Wo findet das Makro das Unterscheidungskriterium in der Eingabetabelle?

Gruß
sicci

Antwort 13 von junky

Guten abend,
also das makro sollte es eigentlich anhand der kundenklassifizierung in der Spalte D (siehe auch meine Anfrage)feststellen könnnen, wann es ein SME oder ein SA Umsatz ist.

Zur Vergütung kommt es, wenn der Umsatz installiert ist, vorher nicht!

Hilft Dir das weiter ????

Gruß Junky :-)

Antwort 14 von sicci

Nein, Junky -
langsam glaub ich, ich sprech chinesisch ;-))

UMSATZ WELCHER KUNDENART IN SPALTE D SOLL BEI SME, WELCHER BEI SA EINGETRAGEN WERDEN ?????
Das präzisierst Du auch in Deiner Eingangsanfrage nicht, dort gab´s ja Spalten H bis L noch nicht !!!!!!

Also nochmal:
wann (bei welcher Kundenart) führt Umsatz zu Vergütung und muß in SME eingetragen werden, wann in SA.)?????


Gruß
sicci

Antwort 15 von Junky

Hi sicci,

also die Spalten H-L sind für das Ergebnis (Makro) völlig uninteressant.
Ehrlich gesagt versteh ich nicht, welches Problem Du mit dem Umsatz hast?
Bringen Dich meine Formeln in der Ziele-Formel-Tabelle auch nicht weiter?

Auf jeden Fall müssen die Umsätze "NkB + Altkunde" in SME und nur wenn der
Kunde in Spalte D ein "SA" stehen hat, kommt das in den SA Umsatz.
Also alles Ungleich "SA" in Spalte D kommt in "SME-Umsatz" und nur wenn
"SA" in Spalte D steht kommt er in den "SA-Umsatz"

Ich hoffe, daß das Deine Fragen beantwortet! :-))

Gruß Junky

Antwort 16 von sicci

...

ja, siehst Du Junky, woher sollte ich (oder das Makro) wissen, daß In SA eingetragen wird wenn KundenArt "SA" ist ?? - In Deiner Beispieltabelle gibt es leider keinen einzigen Kunden "SA". Nur NKB, Altkunde und L+F sind aufgeführt und hellsehen kann ich leider noch nicht ;-)

Die Formeln in Deiner Ergebnistabelle? Sind leider nicht vorhanden! - In der, die Du mir geschickt hast gibt es nur EINE EINZIGE FORMEL MIT BEDINUNG und diese heißt nicht: <>"SA", sonder <0, bezieht sich auch nicht auf Spalte D :
=WENN($T4<0;$Q2/100*$T4;$Q4/100*$T4).
Abgesehen von ein paar wenigen einfachen Berechnungen ohne jede Bedingung enthalten ALLE andern Ergebnisfelder "0" oder gar nichts (sind leer), auch keine Formel !!!

.. werd also am Wochenende mal schaun - melde mich dann.

Gruß
sicci

Antwort 17 von junky

aaaahhhhaa,

da liegt also der Hund begraben, dachte mir schon, daß das gar nicht sein kann,
mit der Formelliste im Anhang.
Aber wenn da nur eine Formel drin ist, leuchtet mir das völliig ein!!!!!!!!!
Sorry, für das lange hin und her.

Schönes Wochenende!
Gruß Junky :-)))

Antwort 18 von sicci

Hallo Junky,

Deine Tabelle inklusive Formeln ist bis heute nicht bei mir angekommen. Auch mail an Dich kam via mailer-daemon zurück ... ???

Vielleicht kannst Du ja anhand des Beispiels "installierter Umsatz" (s.u.) die weiteren Makros entsprechend schreiben.

Schlage vor, nicht bei jeder Eingabe, sondern beim Aktivieren des Ergebnissheets (erstes Blatt der Mappe) zu aktualisieren, um Berechnungszeit zu sparen (Makro berechnet immer alle Werte neu!).
Folgendes Makro also in das (Klassenmodul) des Ergebnisblattes, Variablen für die anderen Felder sind schon angelegt (siehe Kommentare)

Option Explicit

Private Sub Worksheet_Activate()

Dim x%, Jahr As String
Dim SI As Double, SB As Double, SV As Double, SBl As Double
     ′x = Zeilenzähler, Jahr = Jahr/Catia-Umsätze
     ′SI = Summe installierter Umsatz, SB = Summe beantragter Umsatz,
     ′SV = Summe vergüteter Umsatz, SBl = Summe Blockquote

     ′Jahr = das in Ergebnistabelle, Zelle C9 eingetragene
Jahr = Right(ActiveWorkbook.Sheets(1).Cells(3, 3), 4)

     ′ 1. Quartal
SI = 0
     ′Schleife über Tabelle1, Zeile4 bis lezte Zeile,
     ′in der ein Soll-Umsatz angegeben ist:
For x = 4 To ActiveWorkbook.Sheets(2).Cells(Rows.Count, 16).End(xlUp).Row
    If CStr(year(Cells(x, 25))) = _
        Right(ActiveWorkbook.Sheets(1).Cells(3, 3), 4) _
        And Month(Cells(x, 25)) < 4 Then
        If Cells(x, 4) <> "SA" Then
            SI = SI + Cells(x, 16).Value
        End If
    End If
Next
ActiveWorkbook.Sheets(1).Cells(9, 3) = SI

      ′ 2. Quartal
SI = 0
      ′Schleife über Tabelle1, Zeile4 bis lezte Zeile,
      ′in der ein Soll-Umsatz angegeben ist:
For x = 4 To ActiveWorkbook.Sheets(2).Cells(Rows.Count, 16).End(xlUp).Row
    If CStr(year(Cells(x, 25))) = _
    Right(ActiveWorkbook.Sheets(1).Cells(3, 3), 4) _
        And (Month(Cells(x, 25)) > 3 Or Month(Cells(x, 25)) < 7) Then
        If Cells(x, 4) <> "SA" Then
            SI = SI + Cells(x, 16).Value
        End If
    End If
Next
ActiveWorkbook.Sheets(1).Cells(10, 3) = SI

       ′ 3. Quartal
SI = 0
       ′Schleife über Tabelle1, Zeile4 bis lezte Zeile,
       ′in der ein Soll-Umsatz angegeben ist:
For x = 4 To ActiveWorkbook.Sheets(2).Cells(Rows.Count, 16).End(xlUp).Row
    If CStr(year(Cells(x, 25))) = _
        Right(ActiveWorkbook.Sheets(1).Cells(3, 3), 4) _
        And (Month(Cells(x, 25)) > 6 Or Month(Cells(x, 25)) < 10) Then
        If Cells(x, 4) <> "SA" Then
            SI = SI + Cells(x, 16).Value
        End If
    End If
Next
ActiveWorkbook.Sheets(1).Cells(11, 3) = SI

       ′4. Quartal
SI = 0
       ′Schleife über Tabelle1, Zeile4 bis lezte Zeile,
       ′in der ein Soll-Umsatz angegeben ist:
For x = 4 To ActiveWorkbook.Sheets(2).Cells(Rows.Count, 16).End(xlUp).Row
    If CStr(year(Cells(x, 25))) = _
        Right(ActiveWorkbook.Sheets(1).Cells(3, 3), 4) _
        And (Month(Cells(x, 25)) > 9 Or Month(Cells(x, 25)) < 13) Then
        If Cells(x, 4) <> "SA" Then
            SI = SI + Cells(x, 16).Value
        End If
    End If
Next
ActiveWorkbook.Sheets(1).Cells(12, 3) = SI

End Sub


Gruß
sicci


Antwort 19 von junky

Hallo sicci,

Klasse, nur hab ich nun kleines Problem.
Beim "Zeilenzähler" bingt er mir eine Fehlermeldung:
"Fehler beim Kompilieren: Variable nicht definiert"
Was muß ich Ihm da sagen, damit er nicht wieder zu diesem Fehler Kommt???

Gruß Junky

Antwort 20 von junky

Hallo sicci,

Weiter ist mir noch aufgefallen, daß beim Kopieren des Makros in meine Datei er automatisch Deine Kommas in Semicolons umwandelt; aber nicht bei allen ???? Da stimmt doch was nicht??
Liegt es evtl. daran, daß nicht alle erforderlichen Dateien bei der Installation mitgenommen wurden?

junky

Antwort 21 von E-doc

Hallo sicci,
Bei mir wird der Text plötzlich so umgewandelt. Ich glaube man muß auch die Leerzeichen beachten:

>>>>> Xd e A g he bd AVgc e AQIF<<<<<

Hast Du ein Erklärung dafür?
Gruß E-doc

Antwort 22 von sicci

Hallo Junky,

1. Was mit   ′   anfängt, sind erklärende Kommentarzeilen. Durch das Hochkomma am Anfang erscheinen sie im VBA-Fenster grün. Damit VBA nicht versucht, sie abzuarbeiten, müssen sie mit Hochkomma beginnen, also: das Hochkomma drinlassen!

2. Das ist merkwürdig !! Passiert bei mir nicht. Keine Ahnung (gibt′s Kopiereinstellungen - vieleicht im Windows?????). Kenne Umwandlungen nur im MSWord durch die Autokorrektur. Dann bleibt Dir nur, es abzuschreiben, oder mir eine gültige email-ad zu nennen.

Hallo E-doc,
nö, verstehe ehrlich kein Wort!!
Welcher Text wird von wem oder was umgewandelt ????

Gruß
sicci

Antwort 23 von E-doc

Hallo sicci,
Ich weiß nicht hat Excel auch einen CodeWandler ?

gruß E-doc

Antwort 24 von Junky

Hallo Sicci,

hab Dich gerade über aol angemailt.

Gruß Junky

Antwort 25 von sicci

Hallo Junky,

schicke Dir die Beispieldatei am Montag (habe sie im Büro gespeichert).

Hallo E-doc,

ja, grundsätzlich kann man auch mit Excel Texte verändern. Dazu müssen vornweg aber Einstellungen getätigt werden, für ausgefeilte Wandlungen kommt meist VBA zum Einsatz. Schicke Dir ein kleines Beispiel (.. muß es erklärend umschreiben, wird morgen werden)

Gruß
sicci




Antwort 26 von alleNeune

hallo Sicci,

Bis Excel 6 können Macro in Deutscher Schreibweise verarbeitet werden. Ab Excel 8 können nur noch - englische- Macros verarbeitet werden. In Excel 8 werden --deutsche-- Macros automatisch umgesetzt und zur Überprüfung vorgegeben im Editor. In der --deutschen-- Macroschreibweise ist das Komma der Strichpunkt das Trennzeichen. Englische Macros laufen auch bei Excel 6. Der Editor versucht jedoch alle Schlüsselwörter und auch die Kommas auf in -deutsch- ; umzusetzen, wenn deutsche Macros offen sind. Sollten alle auf englisch umgeschrieben werden.

gruß alleNeune

Antwort 27 von sicci

Hallo alleNeune,

Vielen Dank für den Tip!
Schön, von Dir zu hören :-)

Gruß
sicci

Antwort 28 von junky1

Hi sicci,

ich hab jetzt mal über mein office drüber gebügelt und siehe da,
nun kann er auf einmal Dein Makro richtig lesen.
Nur so ganz funzts noch nicht.
Köntest Du mir die Liste mal zumailen, dann kann ich bei Dir mal schaun
was Du anders machst als ich. Wär super.
Danke und Gruß Junky.

Antwort 29 von sicci

Hallo Junky,

durch den überstürzten "Umzug" auf einen neuen PC kam mir einiges durcheinander. Habe u.a. auch etliche mails verloren :-(, darunter auch Deine.

Du müßtest mir Deine Adresse nochmal mailen ..

probiere es derweil schon nochmal über die o.a.

Gruß
sicci