Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1688to1692
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Verteilen von Daten Per Makro von Cysu11

Verteilen von Daten Per Makro von Cysu11
19.04.2019 19:10:11
Daten
Hallo Zusammen
Ich habe vor ca 2 Wochen bereits in diesem Forum geschrieben und von einer Userin namens Cysu11 sehr viel Unterstützung erhalten. In der Zwischenzeit ist mein Tool noch ausgebaut worden. Aktuell habe ich jedoch ein Problem:
https://www.herber.de/bbs/user/129266.xlsm
Die Userin hat mir ein Makro erstellt um Daten auf entsprechende Tabellen zu verteilen. Jetzt möchte ich das noch auf ein weiteres Blatt ("Belag") anwenden. Mein Problem ist das der Vorgang nicht genau gleich ist und ich deshalb das Makro nur bedingt anpassen kann.
Mein Ziel ist folgendes:
Im Blatt "Import CSV" werden Daten eingefügt welche verteilt werden bzw. durch das Makro teilweise schon erfolgt. Jetzt möchte ich die gleiche Daten im Blatt "Belag" verteilt haben wie im Blatt " Platten".
Es soll jetzt aber für das Blatt "Belag" nicht mehr die Spalte O beachtet werden sondern die Gelb markierten Spalten M und N. Es soll sobald in der Spalte M (ab Zeile 8) etwas steht die Daten im Blatt "Belag" eintragen. Dabei sollt e folgendes beachtet werden:
Steht in der Spalte M und N das gleiche, soll es zu bei den Spalten D und E jeweils 10 dazu rechnen und die Anzahl Spalte C mal 2 rechnen.
Sind die Spalten M und N verschieden, sollen zwei Zeilen erstellt werden.
Erste Zeile Zeile M jedoch nicht mal 2 (Aufmass soll bestehen bleiben). Anschliessend das gleich mit der ersten Zeile N. Und wieder von vorne bis alle Zeilen überprüft sind.
Das ganze sollte sofern möglich in den bestehenden Code eingebaut sein.
Ist das möglich und kann mir das jemand machen.
Besten Dank im voraus.
Lg Dani

17
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Verteilen von Daten Per Makro von Cysu11
19.04.2019 19:46:39
Daten
Hi Dani,
hatten wir Belag nicht damals schon drin?
LG
Alexandra
AW: Verteilen von Daten Per Makro von Cysu11
19.04.2019 19:48:29
Daten
Hallo Alexandra
Nein das war das Blatt "Beschlag". Belag ist neu dazugekommen.
Lg Dani
AW: Verteilen von Daten Per Makro von Cysu11
19.04.2019 19:49:50
Daten
Aso, OK ich guck mir das an!
AW: Verteilen von Daten Per Makro von Cysu11
19.04.2019 22:30:36
Daten
Hi Dani,
"Sind die Spalten M und N verschieden, sollen zwei Zeilen erstellt werden.
Erste Zeile Zeile M jedoch nicht mal 2 (Aufmass soll bestehen bleiben). Anschliessend das gleich mit der ersten Zeile N. Und wieder von vorne bis alle Zeilen überprüft sind."

bin mir nicht sicher ob ich den letzten Teil verstanden habe, probiere es einfach aus!
https://www.herber.de/bbs/user/129270.xlsm
LG
Alexandra
Anzeige
AW: Verteilen von Daten Per Makro von Cysu11
20.04.2019 10:15:55
Daten
Hallo Alexandra
Perfekt konnte die Feineinstellung noch für mich anpassen.
Besten Dank dir.
Lg Dani
AW: Verteilen von Daten Per Makro von Cysu11
21.04.2019 18:19:07
Daten
Hallo Alexandra
Ich benötige nochmals Hilfe...
Ich würde gerne ein Makro für den Import der CSV Datei erstellen. Über den Makrorecorder kriege ich das auch hin, jedoch hätte ich gerne das ich nicht durch verschiedene Ordner klicken muss um an die gewünschte Datei heranzukommen. Konkret wird meine Tabelle an den gleichen Ort gespeichert wie die einzulesende CSV Datei. Ich werde somit die Datei in den Ordner des CSV kopieren, anschließend diese öffnen und mit dem Makro die CSV Datei welche im gleichen Ordner ist importieren und das ganze in mein Blatt ImportCSV beginnend bei der Zelle A1.
Kann mir dabei jemand helfen?
Besten Dank
Lg Dani
Anzeige
AW: Verteilen von Daten Per Makro von Cysu11
21.04.2019 20:18:16
Daten
Hi Dani,
den gleichen Ordner wie deine Exceldatei bekommst du mit "Thisworkbook.Path".
Wenn du nicht zurecht kommst, dann lade dein Code hoch den du aufgezeichnet hast, dann passen wir den an!
LG
Alexandra
AW: Verteilen von Daten Per Makro von Cysu11
22.04.2019 11:56:22
Daten
Hallo Alexandra
Folgend mein Code ohne Änderungen:
Sub ImportCSV()
' ImportCSV Makro
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;C:\Users\dg\Desktop\WS Test Drenush\Knecht Katalog.csv", Destination:= _
Range("$A$1"))
.CommandType = 0
.Name = "Knecht Katalog"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 65001
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = True
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
Sheets("Start").Select
End Sub
Und hier habe ich den Pfad geändert.
Sub ImportCSV()
' ImportCSV Makro
With ActiveSheet.QueryTables.Add(Connection:= _
"Thisworkbook.Path", Destination:= _
Range("$A$1"))
.CommandType = 0
.Name = "Knecht Katalog"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 65001
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = True
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
Sheets("Start").Select
End Sub
Funktioniert leider nicht. Ich vermute ich muss den Namen "Knecht Katalog " noch ersetzten. (Mein Ziel ist es das ich beim Ausführen des Makros im Ordner die gewünschte Datei auswählen kann ( Diese kann unterschiedlich benannt sein)
Wie kann ich das machen?
Lg Dani
Anzeige
AW: Verteilen von Daten Per Makro von Cysu11
23.04.2019 12:10:30
Daten
Hi Dani,
ich kann es leider nicht testen, da ich ja deine Datei nicht habe! :)
Probiere mal so:

Sub ImportCSV()
Dim Startdirectory As String
Dim strDatei As String
Startdirectory = ThisWorkbook.Path
ChDrive Left(Startdirectory, 1)
ChDir Startdirectory
Application.ScreenUpdating = False
strDatei = Application.GetOpenFilename("Excel-Dateien(*.csv*), *.csv*", MultiSelect:=False)
If strDatei = "" Then Exit Sub
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;" & Startdirectory & strDatei, Destination:= _
Range("$A$1"))
.CommandType = 0
.Name = "Knecht Katalog"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 65001
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = True
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
Sheets("Start").Select
End Sub
LG
Alexandra
Anzeige
AW: Verteilen von Daten Per Makro von Cysu11
23.04.2019 12:11:50
Daten
Bissi ausgebessert:
Sub ImportCSV()
Dim Startdirectory As String
Dim strDatei As String
Startdirectory = ThisWorkbook.Path
ChDrive Left(Startdirectory, 1)
ChDir Startdirectory
Application.ScreenUpdating = False
strDatei = Application.GetOpenFilename("Excel-Dateien(*.csv*), *.csv*", MultiSelect:=False)
If strDatei = "" Then Exit Sub
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;" & Startdirectory & strDatei, Destination:= _
Range("$A$1"))
.CommandType = 0
.Name = "Knecht Katalog"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 65001
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = True
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
Sheets("Start").Select
Application.ScreenUpdating = True
End Sub
LG
Alexandra
Anzeige
AW: Verteilen von Daten Per Makro von Cysu11
25.04.2019 19:18:14
Daten
Hallo Alexandra
Ich habe es versucht und es hat mir eine Fehlermeldung ausgespuckt, welche ich nicht wegbekommen habe...
https://www.herber.de/bbs/user/129397.xlsm
Mein Ziel ist es über auf dem Blatt Start per Knopfdruck eine CSV Datei zu importieren (Semikolon getrennt) und diese auf dem Blatt ImportCSV einzufügen (Start bei der Zeile A1) Damit ich mich nicht durch die Ordner klicken muss möchte ich das ich die Datei auswählen kann und das beim der Suchdialog direkt die Dateien angezeigt werden welche im gleichen Ordner sind wie meine Tabelle.
Hoffe das ist verständlich.
Abschliessend möchte ich das gleiche für den Export. Sprich wieder über das Startblatt per Knopfdruck das Blatt Export CSV an einen fixen Speicherort als CSV zu speichern (Mit dem gleichen Namen wie meine Tabelle hat.
Die Beigefügte Tabelle ist eine alte Version (das Original ist zu Gross), sollte jedoch reichen um es auszutesten.
Lg Dani
Anzeige
AW: Verteilen von Daten Per Makro von Cysu11
25.04.2019 21:03:28
Daten
Hallo Alexandra
Besten Dank der Import ist genau so wie ich es möchte. Beim Export würde ich jedoch den Pfad gerne immer an den gleichen Ort einstellen. Sprich egal wo ich meine Tabelle habe es soll sie zum Beispiel immer an den auf meine Festplatte XYZ speichern. (Den Pfad muss ich in der Firma dan entsprechend anpassen.
Besten Dank
Lg Dani
AW: Verteilen von Daten Per Makro von Cysu11
25.04.2019 21:06:36
Daten
Hi Dani,
dann so:
Sub ExportCSV()
strdatei = Left(ThisWorkbook.Name, Len(ThisWorkbook.Name) - 5)
strpath = "C:\Testordner\"
Sheets("Export CSV").Activate
ActiveSheet.Copy
ActiveSheet.SaveAs Filename:=strpath & strdatei, FileFormat:=xlCSV, Local:=True
ActiveWorkbook.Close SaveChanges:=False
Sheets("Start").Select
End Sub
LG
Alexandra
Anzeige
AW: Verteilen von Daten Per Makro von Cysu11
25.04.2019 21:28:59
Daten
Hallo Alexandra
Ich gehe davon aus das ich bei "strpath" den Speicherort anpassen muss. Dieser sieht zum Beispiel so aus: C:\Users\dg\Desktop\WS Test Drenush (WS Test Drenush ist der Zielordner)
Die Datei wird dann auf den Desktop gespeichert mit dem Namen "WS Test DrenushDateiname".
Sieht so aus als würde das Makro so ausgeführt das es den Desktop als Zielordner sieht und den Rest als als Name.
Wie kann ich das Steuern das es mir den Teil des Pfades nicht als Dateiname speichert?
Lg Dani
AW: Verteilen von Daten Per Makro von Cysu11
01.05.2019 14:19:39
Daten
Hallo Alexandra
Ich habe nochmals rumprobiert. Das mit dem Namen habe ich mittlerweile hinbekommen. Jedoch besteht das Problem das ich den Speicherort nicht richtig anpassen kann.
Vorab das Makro:
Sub ExportCSV()
strdatei = Left(ThisWorkbook.Name, Len(ThisWorkbook.Name) - 5)
strpath = "C:\Users\dg\Desktop\WS Test Drenush"
Sheets("Export CSV").Activate
ActiveSheet.Copy
ActiveSheet.SaveAs Filename:=strdatei, FileFormat:=xlCSV, Local:=False
ActiveWorkbook.Close SaveChanges:=False
Sheets("Start").Select
End Sub
Bei der Zeile ActiveSheet.SaveAS Filename:= habe ich den vermerk "=strpath" gelöscht. Somit hat es mit dem Namen geklappt.
Das mit dem Speicherort leider noch nicht. Aktuell speichert es mir die CSV-Datei auf den Desktop. Den Ordner beachtet es leider nicht. Ich habe versucht den Pfad auf meine externe Festplatte zu ändern, das hat jedoch nicht geklappt, die Datei wurde unter Dokumente gespeichert.
Was muss ich ändern damit die Datei zum beispiel auf eine Externe Festplatte/Netzlaufwerk in einen Ordner gespeichert wird?
Besten Dank im Voraus
Lg Dani
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige