Office-Fragen.de
Zellbezug in VBA mit einbinden - Druckversion

+- Office-Fragen.de (https://office-fragen.de)
+-- Forum: Microsoft Office (https://office-fragen.de/forum-1.html)
+--- Forum: Excel (https://office-fragen.de/forum-2.html)
+--- Thema: Zellbezug in VBA mit einbinden (/thread-29334.html)



Zellbezug in VBA mit einbinden - onki76 - 17.08.2026

Hallo zusammen,

ich hoffe ihr könnt mir hier helfen. Nachstehend ein VBA-Modul, wo eine csv aus einem Tab erzeugt wird. Nun soll hier beim Namen "Montageliste" noch die Nummer angehangen werden, welche im Tab Zeitkalkulation C1 steht. Irgendwie bekomme ich die Verbindung nicht hin.

Ausgabebeispiel:
Nummer in Zeitkalkulation C1: 2026123
Ausgabe des Dateinamens beim erzeugen der csv: Montageliste 2026123

Sub MontagelisteUMD()

    Sheets("Montageliste UMD").Select
    Cells.Select
    Range("A1").Activate
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Application.CutCopyMode = False
    Range("A1").Select
    Sheets("Montageliste UMD").Select
    CSVDatei_schreiben
   
End Sub


Sub CSVDatei_schreiben()
Dim strVerzeichnis As String, nFileNr
Dim K As Integer, N As Integer, F As Integer
Dim FileName As String
Dim Daten As Variant
Dim objStream As Object
Dim strTextFile_Neu As String
Dim sText As String
Dim intFile
On Error GoTo ErrorHandler
strVerzeichnis = ActiveWorkbook.Path & "\"

FileName = InputBox("Dateiname!", "Filenamen für csv", "Montageliste")
If InStr(FileName, ".csv") > 0 Then
  F = InStr(FileName, ".csv")
  FileName = Left(FileName, F - 1)
ElseIf Len(FileName) < 3 Then
        Exit Sub
End If
With Worksheets("Montageliste UMD")
        For N = 1 To .Cells(Rows.Count, 15).End(xlUp).Row
              For K = 1 To .Cells(1, Columns.Count).End(xlToLeft).Column
                    Daten = Daten & .Cells(N, K).Value & ";"
              Next
              sText = sText + Daten & Chr(10)
              Daten = ""
        Next N
End With
intFile = FreeFile
strTextFile_Neu = strVerzeichnis & FileName & Sheet("Zeitkalkulation, Range C1") & ".csv"
Set objStream = CreateObject("ADODB.Stream")
With objStream
.Type = 2 'Stream Typ
.Charset = "utf-8"
.Open
.WriteText sText 'Text schreiben
.SaveToFile strTextFile_Neu, 2 'binary Daten speichern
End With
Exit Sub
ErrorHandler:
    MsgBox "Fehlerhafte Eingaben ! Bitte korrigieren und wiederholen.", vbCritical, "Hinweis"
End Sub


RE: Zellbezug in VBA mit einbinden - PetrolMaxxe - 17.08.2026

Hallo,

meist du die Nummer im Filenamen mitgeben?
dann vielleicht so:

strTextFile_Neu = strVerzeichnis & FileName & Sheet("Zeitkalkulation, Range C1") & Sheets("Zeitkalkulation").Range("C1") & ".csv"

Gruß Uwe


RE: Zellbezug in VBA mit einbinden - onki76 - 17.08.2026

Hallo Uwe,

danke für die Antwort. Der Ansatz ist so korrekt, leider kommt da beim Durchlauf ein Fehler.



[Bild: Screenshot-2026-08-17-105357.png]


RE: Zellbezug in VBA mit einbinden - PetrolMaxxe - 17.08.2026

Das sagt doch die Fehlermeldung, was da nicht stimmt. In VBA kennt ThisWorkbook nur thisworkbook.Sheets() und nicht Sheet.
Dieser Tippfehler war schon in deinem ursprünglich gezeigten Code enthalten.

Gruß Uwe


RE: Zellbezug in VBA mit einbinden - onki76 - 17.08.2026

Ich hab es so gelöst, da läuft es ohne Probleme

strTextFile_Neu = strVerzeichnis & FileName & Sheets("Zeitkalkulation").Range("C1") & ".csv"

Danke für die Mithilfe


RE: Zellbezug in VBA mit einbinden - PetrolMaxxe - 17.08.2026

Das ist der korrekte Weg. Während dies zu mehrenen Fehlern führt:
Sheet("Zeitkalkulation, Range C1")

Sheets("Zeitkalkulation").Range("C1") ist dann die funktionierende Schreibweise.

Gruß Uwe