Wenn/Dann Formel in Batch starten
#1
Hallo Zusammen.

Ich bekomme von einem Lieferanten eine Bestandsdatei (3x täglich) per Excel. In dieser Datei steht nicht die verfügbare Lagermenge, sondern ein Begriff dazu. Zum Beispiel: "Mittel".
Ich benötige aber nicht die Begriffe des Lieferanten, sondern die Bestandsmenge in Zahlen. Also zum Beispiel:  Mittel = 10. Eine entsprechende Formel habe ich mit einer WennDann-Formel erstellt.

Da ich aber nicht die Datei jedes Mal in Excel aufrufen und die Formel drüber laufen lassen möchte, suche ich nach einer Möglichkeit, wie ich mir eine Batch-Datei erstellen kann, mit der ich schnell und einfach die Umrechnung in der Datei erledigen und diese wieder neu speichern kann. Geht das?  Gibts da irgend eine Möglichkeit?

Herzlichen Dank für Eure Hilfe!

Gruß
Arthur
Top
#2
Moin!
Erstelle eine UDF in der Personal.xlsb, dann hast Du sie immer zur Hand.
(Es ginge natürlich auch ein einfaches Makro)
Böhmische Dörfer?
Dann liste mal die kompletten Werte auf.
Dann gibt es auch eine Anleitung.

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)
Top
#3
Hi Ralf.

Das ist mal ein Blitz-Forum. So schnell hatte ich noch nirgendwo eine Antwort. Danke dafür.

UDF? Ja, irgendwo Böhmische Dörfer. Bin kein so großer Excel-Spezialist da ich es selten brauche.

Also, meine Datei sieht so aus:

  A               B               C            D
ArNr. |  EAN            |  EK      | Bestand
110   |  65115687  | 12,95  | Mittel

"Mittel" muss nun ausgetauscht werden gegen (zum Beispiel) 10. Den genauen Wert muss ich erst noch bestimmen. Dann gibts noch die Begriffe "Wenig" (Wert zB. 5) und "Kein" (Wert 0).
Brauchst Du noch Daten?
Danke dir!

Gruß
Arthur
Top
#4
Register Ansicht, ganz rechts Makros, Makros anzeigen
Da gibst Du bei Makroname Bestand ein,
bei Makros in: persönliche Arbeitsmappe oder auch PERSONAL.XLSB
klicke auf erstellen.
In den Prozedurrumpf:
Sub Bestand()

End Sub
kopierst Du folgendes:
Sub Bestand()
On Error GoTo ErrHndl
Dim Zelle As Range
Application.ScreenUpdating = False
For Each Zelle In Selection.SpecialCells(xlCellTypeConstants)
   Select Case Zelle
      Case "kein": Zelle = 0
      Case "mittel": Zelle = 5
      Case "wenig": Zelle = 10
   End Select
Next
Exit Sub
ErrHndl:
MsgBox "Keine Zellen gefunden!"
End Sub
Jetzt gehst Du wieder nach Excel und rufst auf:
Register Ansicht, ganz rechts Makros, Makros anzeigen
Markiere "Bestand", Optionen,
Tastenkombination: Ctrl+b, OK
Du kannst den Dialog jetzt abbrechen.

Wenn Du jetzt eine neue Datei erhältst, brauchst Du nur die Spalte markieren und Strg+b drücken.

Viel Erfolg!

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)
Top
#5
Hi Ralf,

ich glaube, du hast einen kleinen Tippfehler in den Case-Anweisungen:


Zitat:     Case "kein": Zelle = 0
     Case "mittel": Zelle = 5
     Case "wenig": Zelle = 10

Mittel = 10
Wenig = 5
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Top
#6
Du bist ein Fuchs, Günter!  :19:
Klar:
mittel = 10
wenig = 5

Aber wir nähern uns ja ohnehin erst an, da kommt sicherlich noch was …

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)
Top
#7
Hallo Arthur,
(05.09.2016, 11:48)arthur schrieb: Hi Ralf.

Das ist mal ein Blitz-Forum. So schnell hatte ich noch nirgendwo eine Antwort. Danke dafür.

UDF? Ja, irgendwo Böhmische Dörfer. Bin kein so großer Excel-Spezialist da ich es selten brauche.

Also, meine Datei sieht so aus:

  A               B               C            D
ArNr. |  EAN            |  EK      | Bestand
110   |  65115687  | 12,95  | Mittel

"Mittel" muss nun ausgetauscht werden gegen (zum Beispiel) 10. Den genauen Wert muss ich erst noch bestimmen. Dann gibts noch die Begriffe "Wenig" (Wert zB. 5) und "Kein" (Wert 0).
Brauchst Du noch Daten?
Danke dir!

Gruß
Arthur

Wie soll das automatisch ablaufen, wenn Du die Zuordnung erst noch bestimmen musst?
Was auch gehen sollte ist normal Suchen und Ersetzen, ginge auch per VBA.

Gruß Uwe
Top
#8
Leider wird die Spalte nicht umgerechnet. Es gibt auch keine Meldung. Habe auch mal auf MACRO AUSFÜHREN geklickt. Nichts.

Ich hab vergessen darauf hinzuweisen, dass es eine CSV-Datei ist, die ich vom Lieferanten bekomme. Hat das irgend welche Auswirkungen auf die Funktionsweise des Macros?

Mein Hauptanliegen ist es allerdings auch, dass ich diese "Umrechnung" nicht in der Tabelle mache, sondern automatisiert OHNE Excel starten zu müssen. Ich wollte mir dafür eine Batch-Datei erstellen und per Aufgabenplaner regelmäßig ausführen lassen.

Ach ja, und persönliche Arbeitsmappe gibt es bei mir nicht. Dort steht nur im Dropdown: diese Arbeitsmappe
Top
#9
@Uwe:
Mit Bestimmen meine ich, dass ich erst vom Lieferanten noch die genauen Werte erhalte, welcher Wert bei "Wenig" usw. eingesetzt werden soll.
Top
#10
Uwe, Du lagst gar nicht so schlecht mit Deiner Idee "Suchen & Ersetzen" als Makro. Ich hab nun mal folgendes Makro ausgeführt - wobei ich für die neuen Werte einfach mal Test-Werte genommen habe:


Code:
Sub Ersetzen()
         
   Columns("D:D").Replace What:="Kein", Replacement:="0", LookAt:=xlPart, _
       SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
       ReplaceFormat:=False

   Columns("D:D").Replace What:="Gering", Replacement:="5", LookAt:=xlPart, _
       SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
       ReplaceFormat:=False
       
   Columns("D:D").Replace What:="Mittel", Replacement:="10", LookAt:=xlPart, _
       SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
       ReplaceFormat:=False
       
   Columns("D:D").Replace What:="Hoch", Replacement:="20", LookAt:=xlPart, _
       SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
       ReplaceFormat:=False

End Sub

Läuft perfekt und setzt die Werte auch richtig um.
Jetzt bleibt nur noch die Frage, wie ich per Batch-Datei /-Befehl dieses Makro mit der täglich zum Download zur Verfügung gestellten CSV-Datei ausführen kann. Und ob das überhaupt funktioniert.
Danke Euch alle!
Top


Gehe zu:


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