Excel 2013 Crashing issues

bumpcity76

New Member
Joined
Oct 29, 2015
Messages
1
Our company recently upgraded from the Office 2010 x64 suite to 2013 x64. However, I've got a few users having issues. One user is on a Dell laptop and was having issues with Excel crashing quite regularly. After making sure he was completely updated (Windows updates\Office updates), performing an office repair, ensuring there were no add-ins, disabling hardware graphics acceleration, etc.. I decided to reformat his laptop. I gave him a loaner PC, in the meantime. Even on the loaner PC, he had issues with Excel. When I returned his laptop, he continued to have issues. This was the most prevalent error I could find:

Faulting application name: EXCEL.EXE, version: 15.0.4753.1003, time stamp: 0x55f26496
Faulting module name: VBE7.DLL, version: 0.0.0.0, time stamp: 0x55a6b6cd
Exception code: 0xc0000005
Fault offset: 0x000000000000df62
Faulting process id: 0x1668
Faulting application start time: 0x01d105d578f5b42b
Faulting application path: C:\Program Files\Microsoft Office 15\Root\Office15\EXCEL.EXE
Faulting module path: C:\Program Files\Common Files\Microsoft Shared\VBA\VBA7.1\VBE7.DLL
Report Id: ce5ed86b-71c8-11e5-a2b1-340286db23fa

I thought it might be a Macro issue, but he claims that when entering formulas into a new, blank worksheet, Excel crashes. The spreadsheets he most often works on are on a network share, and other users (Excel 2013 x64, as well) have no issues with these spreadsheets. It's almost as if the problems followed his AD login. As crazy as that sounds, it's similar to another user. This other user had problems with a particular spreadsheet. His officemate, on the same hardware\Office build, had no issues. If I logged the guy off and logged in with as another user, no problems. So, I deleted and rebuilt his profile, but he still had issues. Again, if I logged him off and logged in with another user, no problems. So, how do I go about troubleshooting this?

Thanks,
Kris
 

Excel Facts

How can you turn a range sideways?
Copy the range. Select a blank cell. Right-click, Paste Special, then choose Transpose.
Try this:

https://social.technet.microsoft.co...hing-when-personalxlsb-is-enabled?forum=excel

If that doesn't fix it, and it turns out macros are involved, try this:

I'm not sure if I can cross link, but this seems to be the end-all,be-all solution to this problem:

Here is the total solution. This is from AdLoki @ ExcelForum :

===============================================
RESOLUTION:


I know that many people have been experiencing the same problem and I believe that I have discovered a comprehensive solution. It seems that when you have a userform with more than 500 controls, Excel 2010 experiences problems communicating with those controls if they are referenced in the normal way, i.e. [UserForm1.ControlName.Parameter].


I originally thought that using numeric index referencing would solve the problem - i.e. [UserForm1.Controls.Item(1).Parameter] - but this didn't stop Excel from crashing sporadically and also raised the problem that deleting a control causes the indexes of all subsequent controls to change in line with the missing index.


But it transpires that if you follow the same syntax but use, instead, the control's name, the crashing stops - i.e. the format [UserForm1.Controls.Item("ControlName").Parameter]


I have written some code to automatically update all control references in VB project modules. If you want to use this, simply paste the following code into a new module in your project and run the relevant macro ("CleanControlNames"):


Code:
Sub CleanControlNames()
' THIS CODE IS USED TO FIX ANY WRONG REFERENCES TO OBJECTS THAT ARE CAUSING VB7.DLL errors on launch.
' It is kept commented out to prevent accidental execution.
Dim wb As Workbook: Set wb = ThisWorkbook
Dim qPrompt As Byte


qPrompt = MsgBox("You have chosen to clean the control names in the workbook " & wb.FullName & vbCr & vbCr & _
          "Do you wish to continue?", vbYesNo, "Clean workbook?")


If qPrompt = 7 Then Exit Sub




Dim ctlArray() As String
Dim ctl As Object, q&, p&, i&, m&
Dim strCode$, strFind$, strReplace$, checkCode$, strcode2$, n&, YesNo&


i = 0


qPrompt = MsgBox("Would you like to be prompted for every change?", vbYesNo, "Control Change")


For q = 1 To wb.VBProject.VBComponents.Count
    If wb.VBProject.VBComponents(q).Type = 3 Then
        p = i + wb.VBProject.VBComponents(q).DESIGNER.Controls.Count
        ReDim Preserve ctlArray(3, p) As String


        For Each ctl In wb.VBProject.VBComponents(q).DESIGNER.Controls
            i = i + 1
            ctlArray(1, i) = wb.VBProject.VBComponents(q).Name
            ctlArray(2, i) = ctl.Name
            ctlArray(3, i) = TypeName(ctl)
        Next ctl
    End If
Next q


q = i


For n = 1 To wb.VBProject.VBComponents.Count
    If wb.VBProject.VBComponents(n).CodeModule.countoflines > 0 And wb.VBProject.VBComponents(n).Type <> 2 Then
'        Debug.Assert (wb.VBProject.VBComponents(n).CodeModule <> "RAGBuilder")
        With wb.VBProject.VBComponents(n).CodeModule
            strCode = .Lines(1, .countoflines)
        End With


        strcode2 = strCode
        checkCode = ""


        For i = 1 To UBound(ctlArray, 2)


            If wb.VBProject.VBComponents(n).Name = ctlArray(1, i) Then
                For m = 1 To 4
                    strFind = Choose(m, ctlArray(1, i) & "." & ctlArray(2, i) & ".", _
                                        "." & ctlArray(2, i) & ".", _
                                        ctlArray(2, i) & ".", _
                                        Chr(34) & ctlArray(2, i) & Chr(34) & "(")


                    strReplace = Choose(m, "Me.Controls.Item(" & Chr(34) & ctlArray(2, i) & Chr(34) & ").", _
                                           ".Controls.Item(" & Chr(34) & ctlArray(2, i) & Chr(34) & ").", _
                                           "Controls.Item(" & Chr(34) & ctlArray(2, i) & Chr(34) & ").", _
                                           Chr(34) & ctlArray(2, i) & Chr(34) & ".Pages(")
                    If m < 4 Or (m > 4 And (ctlArray(3, i) = "MultiPage" Or ctlArray(3, i) = "TabStrip")) Then
                        If InStr(strCode, strFind) Then
                            If qPrompt = 6 Then
                                YesNo = MsgBox("Module name: " & ctlArray(1, i) & vbCr & "Control to be changed: " & ctlArray(2, i) & vbCr & "From " & _
                                    Chr(34) & strFind & Chr(34) & " to " & Chr(34) & strReplace & Chr(34), vbYesNo, "Make Change?")
                                If YesNo = vbYes Then


                                    checkCode = Replace(strCode, strFind, strReplace)
                                    If Len(checkCode) > 0 And checkCode <> strCode Then: strCode = checkCode
                                End If
                            End If
                        End If
                    End If
                Next m
            End If
        Next i


        If checkCode <> strcode2 And Len(checkCode) > 0 Then
            With wb.VBProject.VBComponents(n).CodeModule
                .DeleteLines 1, .countoflines
                .InsertLines 1, checkCode
            End With
        End If
    End If
Next n


End Sub


Please, note: This is NOT my code, and I'm only pasting because it seems to have fixed the problem for me.
 
Upvote 0

Forum statistics

Threads
1,223,894
Messages
6,175,254
Members
452,624
Latest member
gregg777

We've detected that you are using an adblocker.

We have a great community of people providing Excel help here, but the hosting costs are enormous. You can help keep this site running by allowing ads on MrExcel.com.
Allow Ads at MrExcel

Which adblocker are you using?

Disable AdBlock

Follow these easy steps to disable AdBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the icon in the browser’s toolbar.
2)Click on the "Pause on this site" option.
Go back

Disable AdBlock Plus

Follow these easy steps to disable AdBlock Plus

1)Click on the icon in the browser’s toolbar.
2)Click on the toggle to disable it for "mrexcel.com".
Go back

Disable uBlock Origin

Follow these easy steps to disable uBlock Origin

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back

Disable uBlock

Follow these easy steps to disable uBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back
Back
Top