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
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)
Top
#3
Hi Ralf,

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

Gruß
Günti
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)
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
Top
#6
Hi,

(19.07.2016, 10: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
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
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
Top
#9
Hallo,

danke an alle jetzt klappts.

Gruß
Günti
Top


Gehe zu:


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