Registriert seit: 18.07.2016
Version(en): Office 2007
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
Registriert seit: 12.10.2014
Version(en): 365 Insider (32 Bit)
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)
Registriert seit: 18.07.2016
Version(en): Office 2007
Hi Ralf,
kann ich den Dateinamen als Variable einlesen,
da ich ja wechselnde Dateien habe ?
Gruß
Günti
Registriert seit: 12.10.2014
Version(en): 365 Insider (32 Bit)
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)
Registriert seit: 18.07.2016
Version(en): Office 2007
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
Registriert seit: 10.04.2014
Version(en): 2016 + 365
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
Registriert seit: 18.07.2016
Version(en): Office 2007
19.07.2016, 10:25
(Dieser Beitrag wurde zuletzt bearbeitet: 20.07.2016, 08:00 von Rabe.
Bearbeitungsgrund: redundanten Zeilenumbruch entfernt
)
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
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
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:1 Nutzer sagt Danke an schauan für diesen Beitrag 28
• Günti
Registriert seit: 18.07.2016
Version(en): Office 2007
Hallo,
danke an alle jetzt klappts.
Gruß
Günti