Thema Datum  Von Nutzer Rating
Antwort
Rot Laufzeitfehler 9 Index außerhalb des gültigen Bereich
24.11.2020 16:22:50 Bernd
NotSolved
24.11.2020 17:02:55 volti
NotSolved
24.11.2020 17:08:31 volti
NotSolved
24.11.2020 21:47:56 Bernd
NotSolved
25.11.2020 16:13:17 Bernd
NotSolved
25.11.2020 17:19:09 volti
NotSolved
25.11.2020 17:29:18 volti
NotSolved
01.12.2020 15:59:46 Bernd
NotSolved
01.12.2020 16:34:04 volti
NotSolved
01.12.2020 16:35:39 Gast4857
NotSolved
02.12.2020 07:55:25 Bernd
NotSolved
02.12.2020 14:20:17 volti
Solved
03.12.2020 10:58:14 Bernd
Solved
03.12.2020 14:04:44 volti
NotSolved

Ansicht des Beitrags:
Von:
Bernd
Datum:
24.11.2020 16:22:50
Views:
1093
Rating: Antwort:
  Ja
Thema:
Laufzeitfehler 9 Index außerhalb des gültigen Bereich

Hallo liebe Leute

Ich bin gerade dabei mein Makro neu aufzubauen.

Viele Funktionen funktionieren (meist dank euch) und Tante Google.

 

Jetzt möchte ich das ganze natürlich etwas aufhübschen und die Pfade usw bereits im oberen Teil einbauen und unten anstelle 10 mal den kompletten Pfad einzugeben eine Variable verwenden.

In der jetzigen Funktion möchte ich erst prüfen ob die Datei bereits geöffnet ist, im bedarfsfall schließen, und dann aus der Tabelle alle Sheets in die aktuelle Datei hinter "Original einzufügen.

____________________________________________________________
Function IsWorkbookOpen(strWB As String) As Boolean
   On Error Resume Next
   IsWorkbookOpen = Not Workbooks(strWB) Is Nothing
End Function
__________________________________________________________
Sub Testseparieren()
 
' DIM
Dim QWB As Workbook      ' Quellworkbook Suchmeldungen
Dim ZWB As Workbook      ' Zielworkbook Meldungen
Dim SMPfad As String   ' Pfad zum Quellworkbook
 
    SMPfad = ("C:\Test\Blacklist Test.xlsx")
Set QWB = Workbooks("Blacklist Test")

' Zum Beschleunigen Ausschalten
Application.ScreenUpdating = True
Application.EnableEvents = True
' Caculation auf Zustand pr?fen und ausschalten. Bei Fehler in alten Zustand zur?cksetzen
Dim oldCalculation As Long
    oldCalculation = Application.Calculation
    On Error GoTo Fehler
    Application.Calculation = xlCalculationManual
'Name des Sheets ?ndern
    ActiveSheet.Name = "Original"
   
SSe:   'Suchmeldungen Sheet einf?gen

    ' Sheet Blacklist in Sheet einf?gen
 Set ZWB = ActiveWorkbook
 
 
' Kontrolle ob Datei Blacklist f?r FIS Meldungen schon offen

If IsWorkbookOpen("Blacklist Test") Then
    If MsgBox("Blacklist Test schlie?en?", vbYesNo) = vbYes Then
        QWB.Close False        ' Schlie?en der Suchmeldungen
        Set QWB = Nothing
        Else
        GoTo Fehler
    End If
   Else
      MsgBox "Nicht offen"
End If
 
  Stop
 
' ?ffnen des Pfades und Kopieren aller Sheets in aktives Workbook

Dim lngCounter As Long
Set QWB = Workbooks.Open(SMPfad)
For lngCounter = 1 To QWB.Sheets.Count
    QWB.Sheets(lngCounter).Copy After:=ZWB.Sheets(ZWB.Sheets.Count)
Next lngCounter
Set ZWB = Nothing
Set QWB = Nothing
 
 
Stop

'Nur wenn oben nicht funktioniert, einzele Sheets kopieren
 
Set QWB = Workbooks.Open(SMPfad)
   QWB.Worksheets("Blacklist").Cells.Copy

With ZWB
    .Sheets.Add After:=.ActiveSheet
    .ActiveSheet.Name = "Blacklist"
    .ActiveSheet.Range("A1").PasteSpecial Paste:=xlPasteAllUsingSourceTheme
    Application.CutCopyMode = False
End With
QWB.Close False        ' Schlie?en der Blacklist
Set QWB = Nothing

Fehler:
End Sub

Es geht jetzt um diesen Teil:

Set QWB = Workbooks("Blacklist Test")

Wenn das Workbook geöffnet ist klappt es wunderbar.

Ist es geschlossen,  kommt ein Laufzeitfehler 9 Index außerhalb des gültigen Bereich.

An dieser stelle wollte ich doch nur die Variable eintragen und noch keine Prüfung durchführen.

 

Wie wäre es Richtig und

was mache ich falsch?

 

Danke das ich bei euch lernen darf.

VG

 

 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Laufzeitfehler 9 Index außerhalb des gültigen Bereich
24.11.2020 16:22:50 Bernd
NotSolved
24.11.2020 17:02:55 volti
NotSolved
24.11.2020 17:08:31 volti
NotSolved
24.11.2020 21:47:56 Bernd
NotSolved
25.11.2020 16:13:17 Bernd
NotSolved
25.11.2020 17:19:09 volti
NotSolved
25.11.2020 17:29:18 volti
NotSolved
01.12.2020 15:59:46 Bernd
NotSolved
01.12.2020 16:34:04 volti
NotSolved
01.12.2020 16:35:39 Gast4857
NotSolved
02.12.2020 07:55:25 Bernd
NotSolved
02.12.2020 14:20:17 volti
Solved
03.12.2020 10:58:14 Bernd
Solved
03.12.2020 14:04:44 volti
NotSolved