Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Zellbezug in VBA mit einbinden
#1
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
Zitieren
#2
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
Zitieren
#3
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]
Zitieren
#4
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
Zitieren
#5
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
Zitieren
#6
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
Zitieren


Gehe zu:


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




Hinweis auf Angebot Excel-Inside - lang    Keine Lösung gefunden? Du kannst Dich gerne an unser erfahrenes Experten-Team wenden um dein Anliegen zu besprechen.
   Gerne erstellen wir auf dieser Basis ein Angebot.
   Sende deine Anfrage einfach
per E-Mail an anfrage@excel-inside.de


Powerd and supported by Excel-InsideSolutions