Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Erstellung CSV Datei als Makro
#1
Hallo alle miteinander,

habe das hier gerade schon versucht zu Posten. Hat aber nicht geklappt...

So oft habe ich in Foren dieser Art nach Hilfe gesucht und bin auch bisher immer fündig geworden...
Jetzt brauche ich aber Hilfe.

Info vorweg: Ich habe keine Ahnung von Makros und auch nicht von VBA. Ich kann lediglich einen Makro aufzeichnen.

In Tabelle 4 werden automatisch Daten aus Tabelle 2 erzeugt.
Beduetet, dass in Tabelle 4 überall Formeln hinterlegt sind, von A1 bis J1200.
In Tabelle 4 werden in A1 bis J (mal bis J10 aber auch mal bis J350 oder noch weiter bis J980) unterschiedliche Informationen dargestellt.
Die Spalte A, B und J sind immer mit Daten gefüllt. 

Ich möchte einen Makro haben, der aus dem Tabellenblatt 4 eine gesonderte CSV Datei erstellt.
Diese soll an einem Speicherort (O:\Technik\IMPORTE) abgespeichert werden.
WICHTIG: Es dürfen keine Leerzeilen "mitgenommen" werden.

Bedutet, ab  einer bestimmten Zeile sind überhaupt keine Informationen mehr zu sehen.
Ab dieser Zeile bis 1200 sind nur Formeln vorhanden.
Diese Leerzeilen dürfen nicht in der CSV Datei vorhanden sein.
Denn ich muss das in mein Warenwirtschaftssystem importieren und das geht nur ohne Lerzeilen.

Da es sich hier um eine Importdatei handelt, die ich selber gebastelt habe,
brauche ich ein Makro, der jedes Mal gemäß o.g. Anforderungen eine CSV Datei erstellt.

Sorry, dass ich so viel geschrieben habe.
Hoffe, dass das einigermaßen verständlch war..

Ich füge hier noch ein Bild ein, um das ganze zu veranschaulichen.

Ich wäre euch wirklich dankbar, wenn ihr mir ein MAkro schreiben könntet, dass ich einfach kopieren und einfügen kann.

Vielen Dank im Voraus für eure Hilfe


Angehängte Dateien Thumbnail(s)
   
Antworten Top
#2
Hallo,
anstatt des Bildes wäre eine Beipieldatei besser gewesen. Denn Deine Daten tippe ich mit Sicherheit nicht ab.
Ansonsten kann ich Dir sagen wenn man ein Kriterium hat wie eine gültige Zeile erkennbar ist, sollte das kein Problem sein.
Grüße aus Nürnberg
Armin
Ich benutze WIN 10 (64bit) und Office 19 (32bit)
Antworten Top
#3
Hallo,

... auch ich kann mit einem Bild nichts anfangen.

Was für Werte gibt es unterhalb Deiner Aufstellung? Lassen diese sich woanders hin verschieben?
________________________________________________________________________
wer aufgibt, ohne es versucht zu haben, gibt einfach nur auf!

Grüße aus Norderstedt, Peter
Antworten Top
#4
Hallo jovo,


Zitat:habe das hier gerade schon versucht zu Posten. Hat aber nicht geklappt...

doch, hat es. Du hast es aber (fälschlicherweise) im VBA-Forum gepostet; dort müssen Beiträge erst freigegeben werden. Deinen doppelten Beitrag habe ich ins Archiv verschoben.
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Antworten Top
#5
Sorry sorry, anbei die Datei.
Hab das nicht drauf...
Vielen Dank für eure Hilfe.


Angehängte Dateien
.xlsx   Besipieldatei.xlsx (Größe: 159,42 KB / Downloads: 4)
Antworten Top
#6
Moin auch von mir!
Es gibt die Range.ExportAsFixedFormat–Methode.
Die Voraussetzung zum Begrenzen des Ranges hast Du nur umschrieben, aber nicht konkretisiert.

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)
Antworten Top
#7
Ist sichergestellt, dass Spalte A mit Inkrement 10 ab 10 beginnt?
Dann ermittelst Du die letzte gefüllte Zeile mit =MAX(A:A)/10+1
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)
Antworten Top
#8
Moin Ralf,

vielen Dank für deine Antworten.
Bedauerlicherwiese verstehe ich deine Kommentare nicht, wie "Range.ExportAsFixedFormat Method".
Habs gegoogelt, es scheint aber nicht zu helfen.

Zu deiner Frage, wie die Range begrentzt wird.

Die Kunde schicken Anfragen mit immer gleichen Artikelnummern und unterschiedlich vielen Positionen.
Mal sind es 50 Positionen, mal sind es 850 Positionen.
Die Artikelnummern mit den Mengen werden vom Sachbearbeiter in die Tabelle 2 (Bezeichnung Schritt1) eingefügt.
Die Tabelle 4, die ich hier gepostet habe, ist eine Formeltabelle.
Die Spalte A gibt die Positionsnummer in 10er Schritten an.
Hier ist die Formel =WENN(Schritt1!$C266>1;Schritt1!$A266;"")
Bedeutet also, wenn in der Tabelle 2 (Schritt 1) in der Spalte C266 eine Artikelnummer steht, erscheint in A266 die Positionsnummer 2650.
Da in C267 der Tabelle 2 (Schritt 1) keine Artikelnummer steht, erscheint auch in Tabelle 4 in A 267 keine Positionsnummer.
Bedutet, dass die CSV Datei nur von A1 bis J266 gehen darf.


Hoffe das war einigermaßen verständlich.

Danke im Voraus für deine Hilfe.
Antworten Top
#9
Ich glaube jetzt eine Lösung mit der Aufzeichnungsfunktion gefunden zu haben.
Kann bitte jemand sagen, wie ich die automatisierte Bennenung der Datei ändere?

Ich habe den VBA COde hier eingefügt und den entrsprechenden Besztandteil eingefärbt.
Die Datei soll anstatt "Mappe1" immer wie foglt heißen"importdateiheutigesdatumunduhrzeit.csv".
Also zum Beispiel "importdatei091120180955" Bedeutet, dass die Datei am 09.11.2018 um 09:55Uhr erzeugt wurde.

Sub csverzeugen()
'
' csverzeugen Makro
'

'
    ActiveSheet.Range("$A$1:$J$1200").AutoFilter Field:=10, Criteria1:="<>"
    Cells.Select
    Selection.Copy
    Workbooks.Add
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Application.CutCopyMode = False
    ChDir "O:\Technik\IMPORTE"
    ActiveWorkbook.SaveAs FileName:="O:\Technik\IMPORTE\Mappe1.csv", FileFormat _
        :=xlCSV, CreateBackup:=False
    ActiveWorkbook.Save
    ActiveWindow.Close
    ActiveSheet.Range("$A$1:$J$1200").AutoFilter Field:=10
End Sub
Antworten Top
#10
Jetzt habe ich gerade bemerkt, dass die CSV Datei beim ersten abspeichern wie die xls Tabelle in Spalten abgespeichert wird.
Ab dem zweiten Mal mit Kommatas als Trennzeichen in einer Spalte.
Das Format in dem die Daten der CSV Datei in einer Spalte abgespeichert sind und mit Kommatas getrennt, kann ich nicht in mein IT System importieren.

Wie kriege ich es hin, dass die Daten immer in Spalten abgespeichert werden.

Ich hab die zwei CSV Dateien angefügt und sie als "richtig" und "falsch" benannt.
So wie ich das im Editor Modus sehe, beinhaltet die "falsche" das Komma als Trennzeichen und die "richtige" ein Semikolon.

Was kann ich machen, dass die CSV Datei immer richtig abgespeichert wird.

(ich arbeite mit Excel auf einem Servcer. Länderienstellungen und Co. kann und darf ich nicht ändern)


Angehängte Dateien
.csv   falsch.csv (Größe: 8,95 KB / Downloads: 3)
.csv   richtig.csv (Größe: 8,95 KB / Downloads: 4)
Antworten Top


Gehe zu:


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