VBA funktioniert nach PC Wechsel nicht mehr
#1
Hallo zusammen,

kurze Frage. Wir haben hier einen Excel-Bericht mit VBA Code. 

Der Bericht lief auf einem alten Gerät mit Windows 7 und Excel 2010 problemlos. 

Nun wurde der Rechner gegen ein Windows 10 Modell mit Office 365 getauscht. An dem Bericht wurde nichts geändert und die Laufwerke heißen alle noch gleich. 

Er wirft nun aber beim Ausführen des VBA Codes einen Laufzeitfehler bei Select Tabellenblatt 2. 




Hat jemand eine Ahnung, woran das liegen könnte?

Die Datei habe ich selbst nicht, und kann sie euch somit nicht zur Verfügung stellen.
Antworten Top
#2
Hallo,

um das beantworten zu können, braucht man wenigstens die Programmzeile, die angemeckert wird.
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
[-] Folgende(r) 1 Nutzer sagt Danke an Klaus-Dieter für diesen Beitrag:
  • Käpt'n Blaubär
Antworten Top
#3
Hallo Klaus-Dieter,

Zitat:um das beantworten zu können, braucht man wenigstens die Programmzeile, die angemeckert wird.
... das erspart mir 'ne  Menge an Schreibarbeit  :100:
Antworten Top
#4
Hallo

mein Tipp uns den ganzen Code zu posten, denn auf .Select kann man zu 95% verzichten!  Dazu müssten wir ihn aber sehen.
Kurios ist es aber schon das er vorher einwandfrei lief.  Oder habt ihr die "Tabelle2" zwischendurch versehentlich umbenannt?? 

mfg  Gast 123
Antworten Top
#5
Auch Hallo,

um den Vorschlag von meinen Vorredner Gast 123 zu unterstützen, zeige ich dir mit der dieser Erklärung, wie du das selektieren vermeiden kannst
Gruß Stefan
Win 10 / Office 2016
Antworten Top
#6
Code:
Sub Excel(myWorkSheet1, NewWorkbookFlag)

Dim saveas As String
Dim saveasname As String
Dim sheetcounter As Integer


Call Speichernamenholen
ChDir Worksheets("Control").Cells(8, 6).Value
saveas = Worksheets("Control").Cells(9, 6).Value
saveasname = saveas & " " & SaveGroupName & ZweitFilterValue

outputNameRow = 14
outputNameCol = 6

'Abfrage ob einfügen in bestehendes, ob neues anlegen und dann einfügen in das neue
'oder ob abspeichern

If WorkbookOpen = False Then

'Outputpath = Worksheets("Control").Cells(FilterCellRow + 3, FilterCellCol).Value
temp = SaveNameSheet & "_" & myFilterValueName

 Set newBook = Workbooks.Add
 sheetcounter = 1
     

'  Application.DisplayAlerts = False
   'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
   'Betriebssystemabfrage und entsprechende Speicherformatbestimmung
     
     If Betriebssystem = "VISTA" Then
       If Berichtsformat = "XP" Then
           With newBook
               .Title = temp
               .saveas Filename:=saveasname, FileFormat:=xlOpenXMLWorkbook
               '& "\" & temp
           End With
       Else
           With newBook
               .Title = temp
               .saveas Filename:=saveasname, FileFormat:=xlOpenXMLWorkbook
               '& "\" & temp
               ActiveWorkbook.Close
               Workbooks.Open saveasname & ".xlsx"
           End With
       End If
       
     Else
     
       If Betriebssystem = "XP" Then
           With newBook
           .Title = temp
           .saveas Filename:=saveasname, FileFormat:=xlOpenXMLWorkbook
           ActiveWorkbook.Close
           Workbooks.Open saveasname & ".xlsx"
           '& "\" & temp
           End With
       Else
           If (Betriebssystem <> "Vista" And Betriebssystem <> "XP") Then
               MsgBox ("Kein Betriebssystem eingegeben! Bitte eingeben (Zelle F12) und Makro neu starten!")
               End
           End If
           
       End If
     End If
     
   'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
   'Betriebssystembestimmung abgeschlossen
     
     
     temp = ActiveWorkbook.Name
     ActiveWorkbook.Colors = Workbooks(myWorkbook).Colors
     
     Application.DisplayAlerts = False
   
   Sheets("Tabelle2").Select
   ActiveWindow.SelectedSheets.Delete
   Sheets("Tabelle3").Select
   ActiveWindow.SelectedSheets.Delete
     tempsheet = ActiveSheet.Name
   
  Application.DisplayAlerts = True
  WorkbookOpen = True
 
End If

An der Stelle  Sheets("Tabelle2").Select steigt er aus mit Laufzeitfehler.
Antworten Top
#7
Zitat:steigt er aus mit Laufzeitfehler

Und der lautet wie genau? Confused
Schöne Grüße
Berni
Antworten Top
#8
Die Datei wurde definitiv nicht geändert. 

Der Fehler tritt bei mehreren Kollegen auf, die ihren Rechner gewechselt haben. 

Wenn man die gleiche Datei wieder auf einem alten Rechner laufen lässt funktioniert alles wieder problemlos.

(04.09.2019, 11:45)MisterBurns schrieb: Und der lautet wie genau? Confused

Laufzeitfehler 9 
Index ausserhalt des gültigen Bereichs.
Antworten Top
#9
Hallo, :19:

löschst du die beiden Tabellenblätter, weil du beim erstellen der neuen Datei "Workbooks.Add" drei Tabellenblätter hast?

Dann mach es doch so: :21:

Code:
Workbooks.Add xlWBATWorksheet
[-] Folgende(r) 1 Nutzer sagt Danke an Gast für diesen Beitrag:
  • StrammerMax
Antworten Top
#10
Und bist du sicher, dass das Tabellenblatt "Tabelle2" existiert? Bist du den Code mit F8 im Einzelschritt durchgegangen?
Schöne Grüße
Berni
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste