Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1224to1228
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Tabellenblatt auslesen

Tabellenblatt auslesen
Jens
Hallo Thorsten,
leider kann ich keine Antwort auf deinen letzten Kommentar mehr in unser altes Thema reinschreiben. Irgendwie gelange ich da nicht mehr hin.
Ich verstehe deine Antwort nicht. In den Beispiel Dateien, heißen die einzelnen Tabellenblätter alle unterschiedlich und es ist garkein Problem diese auszulesen, der einzige Unterschied ist nun das die Tabellenblätter nicht mehr einfach nur 1 oder 2 oder 3 heißen sondern "a de 2" oder "a de 3" usw. Dein Code ist super und ich glaube nicht das ich den so wie du beschreibst abändern sollte. Denn die Bezeichnung Req oder Sal steht nur in der Überschrift, diese bleibt gleich.
Wenn du in der Beispiel Datei https://www.herber.de/bbs/user/76150.xls das Tabellenblatt 1 umbenennst in "a de 2" und dann versuchst diese hineinzukopieren mit https://www.herber.de/bbs/user/76216.xls
wirst du sehen was ich meine!
LG Jens

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Tabellenblatt auslesen
18.08.2011 10:46:22
fcs
Hallo Jens,
das Problem ist, dass in den Zellen C5 und C6 ein Leerstring "" als Formelergebnis steht, die Variablen g und h, in die die Werte eingelesen werden sollen, aber als Integer deklariert. Das gibt einen Typ-Fehler.
Da die Variablen g und h in dieser Prozedur aber nicht mehr verwendet werden (For-Next-Schleife ist auskommentiert) . Kannst du die 2 Zeilen und die Variablendeklaration löschen.
Generell sollte man dann wenn mehrere Arbeitsmappen in einem Makro angesprochen werden sollen mit Objektvariablen vom Typ Workbook arbeiten und auch alle Objekte vollständig referenzieren. Man spart sich dann die Activate-Anweisungen für die jeweilige Arbeitsmappe und der Code wird verständlicher.
Das gilt analog auch für Tabellenblätter in verschiedenen Arbeitsmappen.
Gruß
Franz
Sub Auslesen()
Dim wbThis As Workbook, wbData As Workbook
Dim liZeile As Integer
Dim liAnzahl As Integer
Dim i As Integer, wkbQ As Workbook, wksQ As Worksheet, wksZ As Worksheet
Set wbThis = ThisWorkbook
Set wksZ = wbThis.Sheets("Steuerung")
'    Sheets("Steuerung").Select
wksZ.Range("A9:A84").ClearContents
Calculate
'die Button Req + Sal2 werden vor jeder Dateiauswahl deaktiviert,
'da zu diesem Zeitpunkt der Code noch nicht weiß, ob und welche Datei _
ausgewählt wurde
'somit wird vermieden, dass z Bsp bei Datei = 1-spaltig auf den Sal2-Button _
geklickt werden kann
With wbThis.Sheets("Steuerung")
.cmdReq.Enabled = False
.cmdSal2.Enabled = False
End With
pvarDatei = Application.GetOpenFilename(Filefilter:="Excel-Dateinen (*.xls),*xls", _
Title:="Öffnen Sie eine Excel-Datei", ButtonText:="Öffnen")
If pvarDatei = False Then Exit Sub
'wenn man in der Dateiauswahl die Datei öffnen will, in der dieser Code hier steht,
'dann macht das nicht wirklich Sinn - es kann aber trotzdem passieren
'in dem Fall wird das Makro mit Hinweis abgebrochen
If InStr(pvarDatei, wbThis.Name) > 0 Then
MsgBox "Sie haben die Datei gewählt, in der Sie gerade arbeiten." & _
vbCrLf & "Das geht nicht.", vbExclamation, "Hinweis"
Exit Sub
End If
Application.ScreenUpdating = False
Set wbData = Workbooks.Open(pvarDatei)
'in der Funktion fcReqOrSal2 wird geprüft, ob die 1- oder 3-spaltige Datei geöffnet wurde
'je nach Ergebnis wird der Req- oder der Sal2-Button aktiviert
If fcReqOrSal2 = "Req" Then
wbThis.Sheets("Steuerung").cmdReq.Enabled = True
Else
wbThis.Sheets("Steuerung").cmdSal2.Enabled = True
End If
wksZ.Range("B3").Value = pvarDatei
'Blattnamen in Blatt Steuerung einlesen
liZeile = 1
For liAnzahl = 1 To wbData.Sheets.Count
wksZ.Range("A" & liZeile + 8).Value = wbData.Sheets(liZeile).Name
liZeile = liZeile + 1
Next
Calculate
wbData.Close SaveChanges:=False
Application.ScreenUpdating = True
End Sub

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige