Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Worksheet ohne Sheetname verwenden

Forumthread: Worksheet ohne Sheetname verwenden

Worksheet ohne Sheetname verwenden
11.05.2020 14:22:12
Sven
Hallo zusammen,
ich möchte mit meinem Makro CSV datein einlesen und an bestimmte stellen kopieren dies klappt auch alles nun habe ich aber CSV Datein die verschiedene Blattnamen haben.
da sich das makro aber auf die blattnamen bezieht müsste ich bei jeder datei das makro ändern oder dies per makro ändern gibt es eine möglichkeit mein vorhandes makro so zu ändern das ihm der blattname egal ist wo er die werte rauskopiert ?
Ich denke hier liegt das Problem Worksheets(sheetname).Range("A1:F55").Copy
Liebe Grüße Sven
Dim sheetname
Dim Filename
Dim ritnr
Sub Filepathset()
respons = MsgBox("The current workpath is   " & Application.DefaultFilePath & "   Do you want   _
_
to change?", vbYesNo)
If respons = vbYes Then
filepath = InputBox("Geef nieuwe directory", filepath)
Application.DefaultFilePath = filepath
MsgBox "current working directory is:   " & Application.DefaultFilePath
End If
End Sub
Sub Sheetname_define()
respons = MsgBox("The current sheetname is   " & sheetname & "   Do you want to change?",  _
vbYesNo)
If respons = vbYes Then
sheetname = InputBox("Please enter the sheetname with results (for instance 'tab4')", sheetname) _
_
End If
End Sub
Sub Fileread_and_copy()
uitwerkingnaam = (Application.ActiveWorkbook.Name)
anotherfile = vbYes
Do Until anotherfile = vbNo
ritnr = InputBox("Enter run number you want to import", ritnr)
Filename = Application.GetOpenFilename("CSV files (*.csv), *.csv")
If Filename = "" Then
teller = 0
Do Until teller = 2
teller2 = teller + 1
MsgBox "you must select an csv file"
Filename = Application.GetOpenFilename("CSV files (*.csv), *.csv")
Loop
Else
Workbooks.Open Filename:=Filename
End If
If sheetname = "" Then
Sheetname_define
End If
Application.DisplayAlerts = False
Worksheets(sheetname).Range("A1:F55").Copy
bandnaam = (Application.ActiveWorkbook.Name)
Windows(bandnaam).Close
Windows(uitwerkingnaam).Activate
If ritnr = 1 Then
ActiveSheet.Paste Destination:=Worksheets("datasheet").Range("B10")
Worksheets("datasheet").Activate
Worksheets("datasheet").Range("A10").Select
Selection.Formula = bandnaam
End If
If ritnr = 2 Then
ActiveSheet.Paste Destination:=Worksheets("datasheet").Range("B70")
Worksheets("datasheet").Activate
Worksheets("datasheet").Range("A70").Select
Selection.Formula = bandnaam
End If
If ritnr = 3 Then
ActiveSheet.Paste Destination:=Worksheets("datasheet").Range("B130")
Worksheets("datasheet").Activate
Worksheets("datasheet").Range("A130").Select
Selection.Formula = bandnaam
End If
If ritnr = 4 Then
ActiveSheet.Paste Destination:=Worksheets("datasheet").Range("B190")
Worksheets("datasheet").Activate
Worksheets("datasheet").Range("A190").Select
Selection.Formula = bandnaam
End If
If ritnr = 5 Then
ActiveSheet.Paste Destination:=Worksheets("datasheet").Range("B250")
Worksheets("datasheet").Activate
Worksheets("datasheet").Range("A250").Select
Selection.Formula = bandnaam
End If
If ritnr = 6 Then
ActiveSheet.Paste Destination:=Worksheets("datasheet").Range("B310")
Worksheets("datasheet").Activate
Worksheets("datasheet").Range("A310").Select
Selection.Formula = bandnaam
End If
If ritnr = 7 Then
ActiveSheet.Paste Destination:=Worksheets("datasheet").Range("B370")
Worksheets("datasheet").Activate
Worksheets("datasheet").Range("A370").Select
Selection.Formula = bandnaam
End If
If ritnr = 8 Then
ActiveSheet.Paste Destination:=Worksheets("datasheet").Range("B430")
Worksheets("datasheet").Activate
Worksheets("datasheet").Range("A430").Select
Selection.Formula = bandnaam
End If
If ritnr = 9 Then
ActiveSheet.Paste Destination:=Worksheets("datasheet").Range("B490")
Worksheets("datasheet").Activate
Worksheets("datasheet").Range("A490").Select
Selection.Formula = bandnaam
End If
If ritnr = 10 Then
ActiveSheet.Paste Destination:=Worksheets("datasheet").Range("B550")
Worksheets("datasheet").Activate
Worksheets("datasheet").Range("A550").Select
Selection.Formula = bandnaam
End If
If ritnr = 11 Then
ActiveSheet.Paste Destination:=Worksheets("datasheet").Range("B610")
Worksheets("datasheet").Activate
Worksheets("datasheet").Range("A610").Select
Selection.Formula = bandnaam
End If
If ritnr = 12 Then
ActiveSheet.Paste Destination:=Worksheets("datasheet").Range("B670")
Worksheets("datasheet").Activate
Worksheets("datasheet").Range("A670").Select
Selection.Formula = bandnaam
End If
If ritnr = 13 Then
ActiveSheet.Paste Destination:=Worksheets("datasheet").Range("B730")
Worksheets("datasheet").Activate
Worksheets("datasheet").Range("A730").Select
Selection.Formula = bandnaam
End If
Worksheets("read in data").Activate
Worksheets("read in data").Range("B18").Select
anotherfile = MsgBox("Do you want to import another file?", vbYesNo)
Loop
End Sub
Sub deleterit()
respons = MsgBox("Are you sure you want to delete a run?", vbYesNo)
If respons = vbYes Then
delrit = InputBox("enter run number you want to delete", delrit)
Else
MsgBox "no run has been deleted"
End If
If delrit = 1 Then
Worksheets("datasheet").Range("B10:G65").Clear
Worksheets("datasheet").Range("A10").Clear
End If
If delrit = 2 Then
Worksheets("datasheet").Range("B70:G125").Clear
Worksheets("datasheet").Range("A70").Clear
End If
If delrit = 3 Then
Worksheets("datasheet").Range("B130:G185").Clear
Worksheets("datasheet").Range("A130").Clear
End If
If delrit = 4 Then
Worksheets("datasheet").Range("B190:G245").Clear
Worksheets("datasheet").Range("A190").Clear
End If
If delrit = 5 Then
Worksheets("datasheet").Range("B250:G305").Clear
Worksheets("datasheet").Range("A250").Clear
End If
If delrit = 6 Then
Worksheets("datasheet").Range("B310:G365").Clear
Worksheets("datasheet").Range("A310").Clear
End If
If delrit = 7 Then
Worksheets("datasheet").Range("B370:G425").Clear
Worksheets("datasheet").Range("A370").Clear
End If
If delrit = 8 Then
Worksheets("datasheet").Range("B430:G485").Clear
Worksheets("datasheet").Range("A430").Clear
End If
If delrit = 9 Then
Worksheets("datasheet").Range("B490:G545").Clear
Worksheets("datasheet").Range("A490").Clear
End If
If delrit = 10 Then
Worksheets("datasheet").Range("B550:G605").Clear
Worksheets("datasheet").Range("A550").Clear
End If
If delrit = 11 Then
Worksheets("datasheet").Range("B610:G665").Clear
Worksheets("datasheet").Range("A610").Clear
End If
If delrit = 12 Then
Worksheets("datasheet").Range("B670:G725").Clear
Worksheets("datasheet").Range("A670").Clear
End If
If delrit = 13 Then
Worksheets("datasheet").Range("B730:G785").Clear
Worksheets("datasheet").Range("A730").Clear
End If
End Sub

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Worksheet ohne Sheetname verwenden
11.05.2020 14:29:46
Nepumuk
Hallo Sven,
mach es nach diesem Muster:
Public Sub test()
    
    Dim objWorkbook As Workbook
    
    
    
    Set objWorkbook = Workbooks.Open(Filename:=Filename)
    
    
    
    objWorkbook.Worksheets(1).Range("A1:F55").Copy
    
End Sub

Gruß
Nepumuk
Anzeige
AW: Worksheet ohne Sheetname verwenden
11.05.2020 14:55:09
Sven
Hallo Nepumuk,
vielen Dank für deine Hilfe wo genau müsste ich deinen Code einsetzen ?
Bin leider noch Anfänger.
Liebe Grüße Sven
AW: Worksheet ohne Sheetname verwenden
11.05.2020 14:58:46
Nepumuk
Hallo Sven,
na die Dim-Anweisung ganz oben in der Prozedur, die Open- und die Copy-Methode ersetzen deine.
Gruß
Nepumuk
AW: Worksheet ohne Sheetname verwenden
11.05.2020 16:41:48
Daniel
HI
um dir mal zu erklären, was Nepumuk meint:
gib bei CSV-Dateien bei Worksheet immer nur die 1 an, also Worksheets(1)
man kann in VBA die Worksheets nicht nur über den Namen ansprechen, sondern auch über die Indexnummer, wenn man mal den Namen nicht weiß. Die Indexnummer entspricht der Reihenfolge der Tabellenreiter.
Da eine nach Excel importierte CSV-Datei immer nur ein einziges Tabellenblatt enthalten kann, ist man mit Worksheets(1) immer richtig.
wenn du das verstanden hast, sollstest du deinen Code entsprechend anpassen können.
Gruß Daniel
Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige