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.

Formatierung ändern VBA
#1
Hallo zusammen,

ich habe ein Makro welches mir als Output mehrere Dateien in einem Ordner (die Ordnerbezeichnung setzt aus dem heutigen Datum (JJJJMMDD) zusammen)  ausgibt.  Zwei dieser Dateien (NameA.csv und NameB.csv) müsste ich entgegen der Logik des bestehenden Makros anpassen. 

Ich müsste nun die Formatierung der Spalten in NameA.csv 4 und 5 (sprich D und E) und in NameB.csv die Spalte 8 (H) ändern. Und zwar sollen die Nachkommastellen nicht mehr durch ein Komma, sondern durch einen Punkt getrennt werden.

Ich mag den bestehenden Code ungerne anfassen weil er recht komplex aussieht  Blush 
Habe das bis dato immer mit einem Query gelöst und dann die genannten Spalten im Bearbeitungsmodus umformatiert (in Text formatiert und , durch . ersetzt).

Könnte man das mit den oben stehenden Informationen an den bestehenden Code anfügen, ohne diesen zu kennen?

Beste Grüße
Leo
Antworten Top
#2
Hallöchen,

Zitat:Könnte man das mit den oben stehenden Informationen an den bestehenden Code anfügen, ohne diesen zu kennen?

jein.

Wenn es mit Suchen & Ersetzen geht, dann zeichne den Code auf und hänge ihn an oder packe ihn dahin wo immer es passt.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#3
Hallo =)

ja, das hatte ich mir auch überlegt. Problem dabei ist das ich dann (ohne den aufgenommenen Code anzupassen) nicht flexibel bin, was den Ordnerzugriff an geht. 
ich müsste also noch i-wie umsetzen das Suchen und Ersetzen immer nur auf den aktuellsten Ordner angewendet wird und dann mal schauen an welcher Stelle ich das im bestehenden Code unterbringen kann Blush

Unten beispielhaft der Code für eine Datei (NameA.csv).

Code:
Sub Makro1()
'
' Makro1 Makro
'

'
    Application.CutCopyMode = False
    ActiveSheet.ListObjects.Add(xlSrcRange, Range("$A$1:$H$942"), , xlYes).Name = _
        "Tabelle1"
    Range("Tabelle1[#All]").Select
    Application.CutCopyMode = False
    ActiveWorkbook.Queries.Add Name:="Tabelle1", Formula:= _
        "let" & Chr(13) & "" & Chr(10) & "    Quelle = Excel.CurrentWorkbook(){[Name=""Tabelle1""]}[Content]," & Chr(13) & "" & Chr(10) & "    #""Geänderter Typ"" = Table.TransformColumnTypes(Quelle,{{""LIEGENSCHAFT_NUMMER"", Int64.Type}, {""KOSTENART_TITEL_NUMMER"", Int64.Type}, {""ABRECHNUNGSJAHR"", Int64.Type}, {""JAHRESBUDGET"", type text}, {""ARBEITSBUDGET"", type text}, {""JAHRESBUDGET_TXT"", type text}, {""ARBEITSBUDGET_TX" & _
        "T"", type any}, {""interne Anmerkung "", type any}})," & Chr(13) & "" & Chr(10) & "    #""Ersetzter Wert"" = Table.ReplaceValue(#""Geänderter Typ"","","",""."",Replacer.ReplaceText,{""JAHRESBUDGET"", ""ARBEITSBUDGET""})" & Chr(13) & "" & Chr(10) & "in" & Chr(13) & "" & Chr(10) & "    #""Ersetzter Wert"""
    ActiveWorkbook.Worksheets.Add
    With ActiveSheet.ListObjects.Add(SourceType:=0, Source:= _
        "OLEDB;Provider=Microsoft.Mashup.OleDb.1;Data Source=$Workbook$;Location=Tabelle1;Extended Properties=""""" _
        , Destination:=Range("$A$1")).QueryTable
        .CommandType = xlCmdSql
        .CommandText = Array("SELECT * FROM [Tabelle1]")
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .PreserveColumnInfo = True
        .ListObject.DisplayName = "Tabelle1_2"
        .Refresh BackgroundQuery:=False
    End With
    Sheets("REMIS18").Select
    ActiveWindow.SelectedSheets.Delete
    Sheets("Tabelle1").Select
    Sheets("Tabelle1").Name = "NameA"
    ChDir "C:\Users\NachnameName\Desktop\Name\Output\20200310"
    ActiveWorkbook.SaveAs Filename:= _
        "C:\Users\NachnameName\Desktop\Name\Output\20200310\NameA.csv", FileFormat:= _
        xlCSV, CreateBackup:=False
    ActiveWindow.Close
End Sub

Beste Grüße
Leo
Antworten Top


Gehe zu:


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