Thema Datum  Von Nutzer Rating
Antwort
Rot Laufzeitfehler beim Ansprechen von Tabelle
09.08.2019 13:15:12 Andre
NotSolved
09.08.2019 13:18:41 Gast52125
NotSolved

Ansicht des Beitrags:
Von:
Andre
Datum:
09.08.2019 13:15:12
Views:
897
Rating: Antwort:
  Ja
Thema:
Laufzeitfehler beim Ansprechen von Tabelle

Hallo,

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
ich habe ein Problem wo ich nicht weiterkomme. Ich habe ein Makro welches eine andere Excel Datei (Quelldatei) öffnet und sich dort 2 Werte rausholt und die zu Datei schreibt in der das Makro ausgeführt wird. Wenn ich die Quelldatei geschlossen habe läuft das Makro sauber durch. Ist die Quelldatei erst geöffnet und das Makro startet dann bricht das Makro mit Laufzeitfehler 9 - Index außerhalb des gültigen Bereichs ab. Ich weiß leider nicht warum.
Kann mir jemand behilflich sein? Ich nutze Office 2016.
 
 
Option Explicit
 
Private Sub Workbook_Open()
 
   Dim oTargetBook As Object
   Dim oSourceBook As Object
   Dim sDatei As String
   Dim Jahr As String
   Dim Projektnummer As String
   Dim Adresse() As String
   Dim Angebotsnummer As String
   Dim Angebotssumme As Currency
   Dim Einsatzzeit As String
   Dim Angebotssumme_Alt As String
   Dim Einsatzzeit_Alt As String
   Dim Pfad As String
   Dim Angebot As String
   Dim intLeerPos As Integer
 
    
        
    
    
   Projektnummer = Range("Projektnummer").Value
   Jahr = Right(Projektnummer, 2)
   Angebotssumme_Alt = Range("Angebotssumme").Value
   Einsatzzeit_Alt = Range("Einsatzzeit").Value
   Einsatzzeit_Alt = WorksheetFunction.RoundUp(Einsatzzeit_Alt, 0)
    
      
   If Dir("F:\AAA Projekte\20" & Jahr & "\" & Projektnummer & "\" & Range("Angebotsnummer").Value & "*.xlsx") <> "" Then
           
      
     Application.ScreenUpdating = False 'Das "Flackern" ausstellen
      
      Set oTargetBook = ActiveWorkbook
      
     sDatei = "F:\AAA Projekte\20" & Jahr & "\" & Projektnummer & "\" & Range("Angebotsnummer").Value & "*.xlsx"
     Set oSourceBook = Workbooks.Open(sDatei, False, True) 'nur lesend öffnen
      
          
      
     Angebotssumme = oSourceBook.Sheets("Kalkulation").Range("Angebotssumme_netto").Value
     If Angebotssumme <> Angebotssumme_Alt Then
     oTargetBook.Sheets("Tabelle1").Range("Angebotssumme").Value = Angebotssumme
     oTargetBook.Save
     End If
      
     If NameVorhanden("Kalkulation!Angebotsstunden", oSourceBook) = True Then
     Einsatzzeit = oSourceBook.Sheets("Kalkulation").Range("Angebotsstunden")
     Einsatzzeit = Application.WorksheetFunction.Round(Einsatzzeit, 0)
            If Einsatzzeit <> Einsatzzeit_Alt Then
               oTargetBook.Sheets("Tabelle1").Range("Einsatzzeit").Value = Einsatzzeit
               oTargetBook.Save
            End If
     End If
      
     If NameVorhanden("Kalkulation!Akkordstunden", oSourceBook) = True Then
     Einsatzzeit = oSourceBook.Sheets("Kalkulation").Range("Akkordstunden")
     Einsatzzeit = WorksheetFunction.RoundUp(Einsatzzeit, 0)
            If Einsatzzeit <> Einsatzzeit_Alt Then
             oTargetBook.Sheets("Tabelle1").Range("Einsatzzeit").Value = Einsatzzeit
             oTargetBook.Save
            End If
     End If
      
    oSourceBook.Close False
     
      
     Application.ScreenUpdating = True 'Das Bildschirm-Aktualisieren wieder einschalten
     
    
      
     Set oTargetBook = Nothing
     Set oSourceBook = Nothing
      End If
End Sub
 
 
Function NameVorhanden(ByVal s As String, wkb As Workbook) As Boolean
    Dim n As Name
    For Each n In wkb.Names
        If n.Name = s Then
            NameVorhanden = True
            Exit For
        End If
    Next
    'NameVorhanden = False
End Function

 


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 beim Ansprechen von Tabelle
09.08.2019 13:15:12 Andre
NotSolved
09.08.2019 13:18:41 Gast52125
NotSolved