Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1804to1808
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
Umstieg 32bit auf 64bit Problem
12.01.2021 16:12:18
Karl
Hallo Community,
ich habe seit 2017 folgenden Code in Verwendung der bis jetzt super funktioniert hat. Jetzt mit neuem Office bekomme ich einen Laufzeitfehler '40036' und es werden folgende Zeilen beim Debuggen markiert:
If Worksheets(k).Name "BOM" & "QW" Then
lz = Worksheets(k).Cells(Rows.Count, 2).End(xlUp).Row
Liegt das am umstieg von 32Bit auf 64Bit und fehlt jetzt dadurch eine Definition? Via Internet Recherche habe ich leider zu viele unterschiedliche Informationen gefunden.
Mit besten Dank im Voraus,
Karl
Option Explicit '1.3.2017 Herber Forum Piet
Dim lz As Long
Sub Button_auflisten()
Dim SuchName As String, z As Integer
Dim AC As Object, k As Integer, Zahl As Integer
Dim DES As Object
Dim LRow As Integer
Dim answer As Integer
Zahl = ThisWorkbook.Worksheets.Count
With Worksheets("BOM")
.Range("B5:C34").ClearContents
.Range("F5:G34").ClearContents
.Range("I5:I34").ClearContents
SuchName = .Range("A3").Value
Application.ScreenUpdating = False
Application.DisplayStatusBar = False
Application.Calculation = xlManual
newstart:
If SuchName = "" Then
SuchName = InputBox("Please put QW number in", "Missing QW number", , 200, 500)
Range("A3") = SuchName
End If
If SuchName = "" Then
answer = MsgBox("As long as you don´t write an QW into A3, the program won´t start!" &  _
vbCrLf & "Do you want to start over again?", vbYesNo + vbQuestion, "Missing QW number")
If answer = vbYes Then
GoTo newstart
Else
GoTo ueberspringen
End If
End If
z = 5 '1. Zeile in "Zusammen"
'Schleife für alle Blaetter
For k = 1 To Zahl
If Worksheets(k).Name  "BOM" & "QW" Then
lz = Worksheets(k).Cells(Rows.Count, 2).End(xlUp).Row
For Each AC In Worksheets(k).Range("C3:C" & lz)
If AC.Cells(1, 0) = SuchName Then
.Cells(z, 2) = Worksheets(k).Name
.Cells(z, 3) = AC.Cells
.Cells(z, 6) = AC.Offset(, 5).Value
.Cells(z, 7) = AC.Offset(, 6).Value
.Cells(z, 9) = AC.Offset(, 2).Value
z = z + 1
If z >= 35 Then
LRow = z
Rows(LRow).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Range("A34:P34").Copy
Range("A" & z, "P" & z).PasteSpecial Paste:=xlPasteFormats
Range("E" & 34, "P" & 34).Copy
Range("E" & z, "P" & z).PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone,  _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
'Range("J" & z - 1, "K" & z - 1).Copy
'Range("J" & z, "K" & z).PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
'Application.CutCopyMode = False
End If
End If
Next AC
End If
Next k
Application.ScreenUpdating = True
Application.DisplayStatusBar = True
Application.Calculation = xlAutomatic
If z >= 35 Then
Rows(LRow).Delete Shift:=xlUp
End If
Call Blattspeichern
If z >= 35 Then
Workbooks("Master_BOM.xlsm").Activate 'Geöffnete Datei Aktiv setzen
Worksheets("BOM_Option Release").Activate
Rows(35 & ":" & z - 1).Delete
End If
ueberspringen:
End With
End Sub

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Umstieg 32bit auf 64bit Problem
12.01.2021 17:20:15
volti
Hallo Karl,
die gute Nachricht:
Es liegt m.E. nicht an 64 Bit. Bei mir läuft das Makro über die Part drüber.
Da Du die Variable auch lz als Long definiert hast, kann auch hier nichts aus dem Ruder laufen.
die schlechte Nachricht:
Mehr kann ich dazu (zumindest ohne die Datei) nicht beitragen.
viele Grüße
Karl-Heinz
AW: ? alle Sheets die nicht BOMQW heißen?
12.01.2021 17:51:53
JoWE
Hallo Karl,
bist sicher dass der zitierte Teil des Codes wirklich korrekt ist?
Warum schreibst Du das Wort "BOMQW" nicht sofort so sondern setzt es erst mit "BOM" & "QW" zusammen?
Gruß
Jochen
AW: Umstieg 32bit auf 64bit Problem
12.01.2021 18:13:39
onur

With Worksheets(k)
lz = .Cells(.Rows.Count, 2).End(xlUp).Row
End With

Anzeige
@Onur
13.01.2021 10:00:35
RPP63
Moin!
Da es doch eher unwahrscheinlich ist, dass es Tabellenblätter in der gleichen Mappe gibt, die eine andere Anzahl von Zeilen haben, wüsste ich nicht, was gegen das vom TE verwendete spricht.
lz = Worksheets(k).Cells(Rows.Count, 2).End(xlUp).Row

gRU? rALF
AW: @Onur
14.01.2021 08:56:55
Luschi
Hallo Ralf,
.Cells bezieht sich explizit auf das Tabellenblatt Worksheets(k), Rows dagegen auf das aktive (sichtbare) Tabellenblatt. Was passiert aber, wenn dieses sichtbare TB gar kein Worksheets-Objekt, sondern ein Diagrammblatt ist - dann ist die K...e am Dampfen.
Gruß von Luschi
aus klein-Paris
Anzeige
Auch wieder wahr!
14.01.2021 10:17:49
RPP63
Soweit bin ich nicht gesprungen!
Da hast Du natürlich Recht, Luschi.

238 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige