Excel Verschiedene CSV Dateien untereinander kopieren

1 Antwort

versuchs mal damit:

In diesem Beispiel wird die Datei Data.txt geöffnet. Dabei werden beim Einlesen der Textdatei in ein Arbeitsblatt Tabulatoren als Trennzeichen verwendet.
Workbooks.OpenText filename:="DATA.TXT", dataType:=xlDelimited, tab:=True

oder: comma:=true  |  space:=true  |  other:=true, otherchar="x"

ob die endung .txt sein muss ist noch eine andere frage - ausprobieren!

CSV am Ende einer Exceltabelle einfügen?

Hi,

folgendes Szenario: Ich bekomme in unterschiedlichen Zeitabständen CSV Dateien die ich in Excel importieren möchte. An sich ist das ja kein Problem. Jedoch möchte ich den ganzen Schritt automatisieren und die Daten der CSV an das Ende einer formatierten Tabelle setzen. Hat folgenden Hintergrund: Ich möchte über die Daten der CSV Dateien mehrere Auswertungen laufen lassen. Diese müssen nur einmal angelegt werden und danach immer über alle Daten aus allen CSVs laufen. Die Daten aus den CSV Dateien werden einmalig Importiert, also sind keine Dateiverbindungen nötig. Mein erster Gedankengang war ein Excelsheet "Import" in welches ich die Daten lade und dann per Makro ans ende der Tabelle schiebe. Doch da war mein Problem ein VBA-Skript zu schreiben welches immer an die nächste freie Stelle die Daten kopiert. Eventuell gibt es ja auch eine einfachere Lösung und ich finde Sie nicht. Ich habe Excel2016 im Einsatz und keine Einschränkungen in Sachen Makros. Zudem ist es eine 64bit Version welches die Verarbeitung großer Makros relativ zügig funktioniert.

Vielen Dank im Voraus für alle Antworten

Grüße

...zur Frage

Hallo zusammen! Wie benenne ich Tabellenblätter automatisch nach einem Zelleninhalt mit einem Makro um welche ich aus einer anderen Datei kopiert habe?

Folgender Sachverhalt:

ich bekomme von verschiedenen Personen eine gleich formatierte Tabelle als Datei mit jeweils unterschiedlichen Werten. Diese Dateien werden per Makro in meine Datei als neues Tabellenblatt kopiert. Die Inhalte werden dann addiert und in einer Tabelle zusammengefasst. Dies alles funktioniert schon.

Mein Anliegen beschränkt sich lediglich auf die Umbenennung der kopierten Tabellenblätter auf den Inhalt der Zelle C 2. Sobald eine Datei als neues Tabellenblatt eingefügt wird soll dieses automatisch nach dem Inhalt der Zelle C2 umbenannt werden.

Mit folgendem Makro werden die Dateien eingefügt

Sub AlleSheetsAusAllenGewaehltenMappenInEineMappeZusammenfuegen()

Application.ScreenUpdating = False

Dim vntPathAndFileNames As Variant Dim strPathAndFile As String Dim lngI As Long Dim wbkMappe As Workbook Dim wksT As Worksheet Dim wbkZiel As Workbook

Set wbkZiel = ThisWorkbook

vntPathAndFileNames = Application.GetOpenFilename( _ Title:="Meine Dateien Mit gedrückter Strg Taste markieren!", _ MultiSelect:=True) If VarType(vntPathAndFileNames) = vbBoolean Then MsgBox "Keine Dateien ausgewählt! Einlesen wurde abgebrochen!" Else For lngI = LBound(vntPathAndFileNames) To UBound(vntPathAndFileNames) strPathAndFile = vntPathAndFileNames(lngI) Set wbkMappe = Application.Workbooks.Open(strPathAndFile) For Each wksT In wbkMappe.Worksheets wksT.Copy wbkZiel.Worksheets(wbkZiel.Worksheets.Count) Next wbkMappe.Close False Range("A1").Select

Next End If

Application.ScreenUpdating = True

End Sub

Bisher bin ich immer gescheitert und habe auch in diversen Foren nichts passendes gefunden.

Kann mir wer helfen?

Vielen Dank schonmal!

...zur Frage

VBA Excel Leerzeile in Spalte einfügen,wenn Werte ungleich - bis zur ersten LZ

Guten Tag, programmiere zum ersten mal ein Makro, und komme nicht mehr weiter. Ich möchte in Spalte C die Werte vergleichen, und sobald der Wert ungleich ist,soll eine Leerzeile eingefügt werden. Mit diesem Code klappt das super:

Sub Makro12() 'fügt Leerzeilen zwischen verschiedenen Lagerorten ein (Spalte C)

Dim r As Long, mcol As String, i As Long

r = Cells(Rows.Count, "C").End(xlUp).Row

mcol = Cells(r, 3).Value

For i = r To 2 Step -1 If Cells(i, 3).Value <> mcol Then mcol = Cells(i, 3).Value Rows(i + 1).Insert End If Next i End Sub

Das Problem: Ich möchte nicht dass er alle Werte vergleicht,sondern nur die Werte bis zur ersten leeren Zelle. Einfach aufzeichnen geht nicht,da die Tabellenlänge variiert. Wäre für Antworten sehr dankbar Viele Grüße

...zur Frage

VBA Makro Excel Letzte beschriebene Zeile vor Leerzeile, weitere Leerzeile einfügen

Guten Tag,

ich suche einen Code für ein Makro,dass in Spalte B unter der letzten beschriebenen Zelle vor einer leeren Zelle (also nicht am kompletten Ende des Sheets) eine Leerzeile einfügt. Habe schon etliche codes ausprobiert, zb

Sub letzte_Zeile()

'letzte benutzte Zelle in Spalte 2 finden DIM Ende As Long With ActiveSheet

Ende = .Cells(Rows.Count, 2).End(xlUp).Row End With

End Sub

Dieser sollte mir eig die letzte beschriebene Anzeigen,es funktioniert aber Garnichts.

Freue mich über Vorschläge. Viele Grüße

...zur Frage

Ich möchte in Excel, dass man einen Druckauftrag nur per VBA geben kann, und NICHT über Datei -> Drucken oder STRG+P. Geht das?

Meine Idee war, zunächst das Drucken mittels InputBox per Passwort zu schützen.

Option Explicit

Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim pw As String, chk As String
pw = "Passwort"
chk = InputBox("Bitte Passwort eingeben", "Druckauftrag", "xxx")
If pw <> chk Then
    MsgBox "Falsches Passwort. Druckauftrag abgebrochen"
    Cancel = True
    Exit Sub
End If
End Sub

Dann einen zweiten VBA-Code der tatsächlich das Drucken ermöglicht.

Option Explicit                                     

Sub Drucken()

    Dim LoI As Long                                 
    Dim LoLetzte As Long                           
    LoLetzte = IIf(IsEmpty(Cells(Rows.Count, 45)), _
        Cells(Rows.Count, 45).End(xlUp).Row, Rows.Count)
    For LoI = LoLetzte To 2 Step -1
        If Cells(LoI, 45) <> Empty Then Exit For
    Next LoI
    ActiveSheet.PageSetup.PrintArea = "$A$1:$AU$" & LoI
    ActiveSheet.PrintOut
    
End Sub

Inklusive der Eingabe des Passworts für die InputBox.

Aber ich habe mich belesen, dass das Eintragen des PW per VBA in einer InputBox sehr aufwendig sein soll.

Habt Ihr andere Ideen?

...zur Frage

Was möchtest Du wissen?