Registriert seit: 05.09.2016
Version(en): Office 2013
05.09.2016, 11:31
(Dieser Beitrag wurde zuletzt bearbeitet: 05.09.2016, 11:31 von arthur.)
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
Registriert seit: 12.10.2014
Version(en): 365 Insider (32 Bit)
05.09.2016, 11:33
(Dieser Beitrag wurde zuletzt bearbeitet: 05.09.2016, 11:34 von RPP63.)
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)
Registriert seit: 05.09.2016
Version(en): Office 2013
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
Registriert seit: 12.10.2014
Version(en): 365 Insider (32 Bit)
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)
Registriert seit: 10.04.2014
Version(en): Microsoft 365, mtl. Kanal
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)
Registriert seit: 12.10.2014
Version(en): 365 Insider (32 Bit)
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)
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
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
Registriert seit: 05.09.2016
Version(en): Office 2013
05.09.2016, 13:32
(Dieser Beitrag wurde zuletzt bearbeitet: 05.09.2016, 13:32 von arthur.)
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
Registriert seit: 05.09.2016
Version(en): Office 2013
@Uwe: Mit Bestimmen meine ich, dass ich erst vom Lieferanten noch die genauen Werte erhalte, welcher Wert bei "Wenig" usw. eingesetzt werden soll.
Registriert seit: 05.09.2016
Version(en): Office 2013
05.09.2016, 14:55
(Dieser Beitrag wurde zuletzt bearbeitet: 05.09.2016, 14:56 von arthur.)
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!
|