run-time error 1004

Status
Niet open voor verdere reacties.

ColdDeath

Gebruiker
Lid geworden
7 nov 2013
Berichten
63
Bij het runnen van deze code krijg ik bij
Code:
If Not Cells(h, 1).Text = "" Then
run-time error 1004.

Zie onderstaand voor volledige code.

Code:
Private Sub CommandButton1_Click()

'Een instantie maken van Solidworks document dat nu actief is.
Set swModel = Application.SldWorks.ActiveDoc

'Onderdeel krijgt de naam van projectnummer van onderdeel.
Onderdeel = swModel.GetTitle

'Excel en MyFile als object dimensioneren
Dim myExcel As Object, myFile As Object

'Nieuwe instance van Excel maken, als excel nog niet geopend is.
If Excel.Application Is Nothing Then
Set myExcel = CreateObject("Excel.Application")
Else
Set myExcel = Excel.Application
End If

'Deze nieuwe instance hoeven we niet te zien.
myExcel.Visible = False

'Het Excel-document bevat misschien macro's, maar dat mag geen aanleiding geven tot een vraag aan de gebruiker.
myExcel.DisplayAlerts = False

'Het Excel-document openen.
Set myFile = myExcel.Workbooks.Open("X:\PROJECTEN\WIJZIGINGEN BEHEER.xlsx")

    'Opzetten van een loop. h wordt iedere stap 1 groter tot het tweede getal is bereikt.
    For h = 3 To 1048576
    
        'Controleer iedere cel in kolom A met waarde h. Als het niet leeg is dan én dezelfde waarde heeft als variabele onderdeel dan:
        If Not Cells(h, 1).Text = "" Then
            If Cells(h, 1).Text = Onderdeel Then
        
                'Opzetten van een tweede loop. i wordt iedere stap 1 groter tot het tweede getal is bereikt.
                For i = 3 To 924 Step 3

                    'Controleer er al text was geschreven in de textbox tijdens initiatie.
                    If Controls("TextBox" & i).Locked = False Then

                        'Getal a is 1 groter dan getal i.
                        a = i - 1
                        'Getal b is 2 groter dan getal i.
                        b = i - 2
                  
                        'Geef cel(h,i+1) de waarde van textbox nr. i.
                        Cells(h, i + 1).Value = Controls("TextBox" & i).Text
                        
                        'Geef cel(h,i+1) de waarde van textbox nr. a.
                        Cells(h, a + 1).Value = Controls("TextBox" & a).Text
                            
                        'Geef cel(h,i+1) de waarde van textbox nr. b.
                        Cells(h, b + 1).Value = Controls("TextBox" & b).Text
                        
                    'Einde controle textbox
                    End If

                'Herhaal als i niet het tweede getal is, anders sluit loop af.
                Next i

                'Als de cel gelijk is aan variabele moet de loop afsluiten, h wordt daarom gelijk gezet aan tweede getal.
                h = 1048576

            'Einde controle waarde van de cel
            End If
        End If
        
    'Herhaal als h niet het tweede getal is, anders sluit loop af.
    Next h

'Excel hebben we niet meer nodig.
myExcel.Quit

'Volgens sommige bronnen is het op Nothing zetten van de objectvariabelen niet nuttig, zelfs belachelijk. Andere bronnen,
'ok de VBA-help-file van Microsoft zelf, vinden het nodig. We nemen dan maar de veiligste weg.
Set myExcel = Nothing
Set myFile = Nothing

End Sub

Wat doe ik verkeerd?


Met vriendelijke groet,
Willie
 
Laatst bewerkt:
Ik heb het een en ander aangepast, nu loopt excel/macro vast. Pas als ik excel afsluit vanuit taskmanager krijg ik de code Run-time error (800706be)': Automation error.
 
Hij doet het ineens...

activeworkbook.save erin gezet en loopt als een zonnetje

ik snap er helemaal niets van...
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan