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.

Dateiname als Blattname
#1
Hallo,

ich will ein txt-file in Excel per VBA öffnen.

Wie kann ich den Dateinamen (z.B. test.txt) 
als Blattname automatisch anzeigen lassen ?

Danke im voraus und Gruß
Günti
Antworten Top
#2
Moin!
Du wirst in Deinem bisherigen Code ja irgendwie die Datei benennen.
Dann einfach ActiveSheet.Name = "DeineDatei.Txt"

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#3
Hi Ralf,

kann ich den Dateinamen als Variable einlesen,
da ich ja wechselnde Dateien habe ?

Gruß
Günti
Antworten Top
#4
Zeige mal Deinen bisherigen Code, Günti.
Da wird doch sowas in dieser Richtung stehen?

Code:
Application.FileDialog(msoFileDialogFilePicker)

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#5
Hallo Ralf,

hier der Code.

Code:
Sub Import_mit_Dialog_Test()
Dim Quelle As Object, Ziel As Object
Dim Datei As String


On Error GoTo Fehler

'Dialog "Datei öffnen" anzeigen
Datei = Application.GetOpenFilename("Excel-Dateien(*.yld),*xls")


'Abbrechen falls keine Datei ausgewählt
If Datei = "Falsch" Then
 MsgBox "keine Datei ausgewählt", , "Abbruch"
 Exit Sub
End If

'Ausgewählte Datei öffnen
Workbooks.Open Filename:=Datei

Set Quelle = ActiveWorkbook.Worksheets(1)
Set Ziel = ThisWorkbook.Worksheets(1)

'kopieren und einfügen
Quelle.UsedRange.Copy Ziel.Cells(1, 1)

'Application.Volatile
'blattname = ActiveSheet.Name



ActiveWorkbook.Close

   'Yield_Auswertung

   Rows(r + 1).Insert Shift:=xlDown
   
   Range("A1").Select
   ActiveCell.FormulaR1C1 = "Prüfauftrag"
   Range("B1").Select
   ActiveCell.FormulaR1C1 = "Yield in Prozent"
   Range("C1").Select
   ActiveCell.FormulaR1C1 = "Gutprüfung"
   Range("D1").Select
   ActiveCell.FormulaR1C1 = "Schlechtprüfung"
   
 
   Dim LastRow As Long
   Dim Rng1 As Range
   Dim ShName As String
     
           
   
   'Zelle mit Gutstückzähler = 0 löschen
   Dim i
   For i = Cells(Rows.Count, 3).End(xlUp).Row To 1 Step -1
   On Error Resume Next
   If Cells(i, 2).Value = "0" Then
   Rows(i).Delete
   End If
   Next
   
           
           
   With ActiveSheet
       LastRow = .Range("A" & .Rows.Count).End(xlUp).Row
       Set Rng1 = .Range("A2:B" & LastRow)
       ShName = .Name
   End With
   
   'Zahlenformat festlegen
   Range("G1:G30").NumberFormat = "#,##0.00"
   
   
   
   'Mittelwertberechnung

   ActiveSheet.Range("F2").Value = "Gesamtyield = "
   ActiveSheet.Range("G2").Value = WorksheetFunction.Average(ActiveSheet.Columns(2))
   ActiveSheet.Range("H2").Value = "%"
   
   
   'Anpassung der Spaltenbreite
   Call ActiveSheet.Columns.AutoFit
   
     
   'Diagramm einfügen
   Charts.Add
   
   
   With ActiveChart
       .ChartType = xlColumnClustered
       .SetSourceData Source:=Rng1
       
       'Beschriftung Diagramm
       .HasTitle = True
       .ChartTitle.Text = "Yield Endprüfung  " & ShName
       
       
   
       .Location Where:=xlLocationAsObject, Name:=ShName
       
                       
   End With
   

'Speicher freigeben
Set Quelle = Nothing
Set Ziel = Nothing

Exit Sub

Fehler:
Set Quelle = Nothing
Set Ziel = Nothing

   MsgBox "FehlerNr.: " & Err.Number & vbNewLine & vbNewLine _
   & "Beschreibung: " & Err.Description _
   , vbCritical, "Fehler"
   
End Sub
Antworten Top
#6
Hi,

(19.07.2016, 09:42)Günti schrieb: kann ich den Dateinamen als Variable einlesen,
da ich ja wechselnde Dateien habe ?

wenn ich Dich richtig verstanden habe, hast Du doch mit Deinem Code den Namen schon in der Variablen "Datei" stehen?

ActiveSheet.Name = Datei
Antworten Top
#7
Hi Ralf,

ja stimmt.
Ich muss aber zwei Variablen definieren, da ich ja zwei Dateien und zwei Blätter habe.

Ich kann erst morgen wieder antworten,
weil ich jetzt weg muss.

Danke und Gruß
Günti
Antworten Top
#8
Hallo Günti,
Wenn Du zwei Variablen benötigst, ist doch auch alles gut. Dann weist Du den Inhalt wenn es soweit ist der einen zu.

varMalDieMalJene=Datei1 oder...=Datei2

Allerdings, zwei Datei - Variablen brauchst Du nur, wenn Du in Deinem Code öfter zwischen den Dateien wechselst.

Übrigens könnte man die Namen auch an ein Array übergeben.
arrDarei(0)=Datei
Und nach dem Öffnen der zweiten
arrDatej(1)=Datei
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
[-] Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:
  • Günti
Antworten Top
#9
Hallo,

danke an alle jetzt klappts.

Gruß
Günti
Antworten Top


Gehe zu:


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