Ahahah, help!
Ik krijg een hele vage foutmelding. Krijg hem al sinds afgelopen vrijdag, dacht dat ik er toen vanaf was, maar blijkbaar vindt mijn macro dat die dit de ene keer wel en de andere keer niet deze melding moet geven. Meestal werkt het bestand gewoon en doet ie wat ik wil, maar af en toe komt deze melding dus naar voren.
De volledige foutmelding:
Fout -2147417848 (80010108) tijdens uitvoering:
Methode Insert van object Range is mislukt
Het betreft een macro die een "blanco" regel invoegt op het werkblad "raming", deze "blanco" regel wordt gekopieerd vanaf het werkblad "formules".
Regels met " ' ### " bevatten extra info die ik er voor jullie even bij gezet heb.
De code dit er bij hoort (stukjes geknipt):
De rode regel geeft de foutmelding. Activecell staat op het werkblad raming, hier zit ook de knop waarmee deze macro geactiveerd wordt, dus dat kan in principe ook geen ander werkblad zijn (tenzij iemand de knop niet gebruikt natuurlijk). De knop is opgebouwd uit een vorm/tekstvak waar ik een macro aan gekoppeld heb. De knoppen wilde ik namelijk duidelijke kleuren mee kunnen geven (rood, groen, blauw, enz..). In de hele code selecteer ik in principe pas een andere cel (de nieuw ingevoegde zodat doorgewerkt kan worden) als de code zo goed als afgelopen is. Tussendoor geen selecties of activaties.
Iemand een idee waar deze melding vandaan kan komen? Ik vermoed iets in de activecell, vanwege de melding range, maar de juiste cel is gewoon actief (lijkt het)...
Hoop dat jullie mij kunnen helpen. Nou ja, hoop, weet wel zo goed als zeker dat jullie dat kunnen
Ik krijg een hele vage foutmelding. Krijg hem al sinds afgelopen vrijdag, dacht dat ik er toen vanaf was, maar blijkbaar vindt mijn macro dat die dit de ene keer wel en de andere keer niet deze melding moet geven. Meestal werkt het bestand gewoon en doet ie wat ik wil, maar af en toe komt deze melding dus naar voren.
De volledige foutmelding:
Fout -2147417848 (80010108) tijdens uitvoering:
Methode Insert van object Range is mislukt
Het betreft een macro die een "blanco" regel invoegt op het werkblad "raming", deze "blanco" regel wordt gekopieerd vanaf het werkblad "formules".
Regels met " ' ### " bevatten extra info die ik er voor jullie even bij gezet heb.
De code dit er bij hoort (stukjes geknipt):
Code:
Public Sub RamingRegelInvoegen()
Dim methode As Integer
methode = 0
[COLOR="#FFA500"]' ### Hier voer ik enkele controles uit om te zorgen dat de regels op een goede manier ingevoegd worden[/COLOR]
' Controle of geen regel niveau 2 of eind regel geselecteerd is
If Sheets("Raming").Cells(ActiveCell.Row, 15).Value = "" Or Sheets("Raming").Cells(ActiveCell.Row, 15).Value = "end" Then
MsgBox "Kan op dit niveau geen regel invoegen. Selecteer een regel binnen een paragraaf.", vbOKOnly + vbCritical, "Verkeerde regel"
Exit Sub
' controle of niet een regel van of in een onderbouwing geselecteerd is
ElseIf Sheets("Raming").Cells(ActiveCell.Row + 1, 17).Value <> "" And Sheets("Raming").Rows(ActiveCell.Row + 1).Hidden = True Then
MsgBox "Dit is de kop van een ingeklapte onderbouwing, de regels zullen onder de onderbouwing toegevoegd worden.", vbOKOnly + vbCritical, "Onderbouwde regel"
methode = 1
ElseIf Sheets("Raming").Cells(ActiveCell.Row + 1, 17).Value <> "" And Sheets("Raming").Rows(ActiveCell.Row + 1).Hidden = False Then
MsgBox "Dit is de kop van een onderbouwing, de regels zullen in de onderbouwing toegevoegd worden.", vbOKOnly + vbCritical, "Onderbouwde regel"
methode = 2
ElseIf Sheets("Raming").Cells(ActiveCell.Row, 17).Value <> "" And Sheets("Raming").Cells(ActiveCell.Row + 1, 17).Value <> "" Then
MsgBox "Dit betreft een onderbouwing, de regels zullen in de onderbouwing worden toegevoegd", vbOKOnly + vbCritical, "Onderbouwing"
methode = 3
End If
[COLOR="#FFA500"] ' ### Hier vraag ik het aantal regels op wat ingevoegd moet worden[/COLOR]
Dim AantalRegels As String
AantalRegels = InputBox("Hoeveel regels wil je invoegen?" & Chr(13) & Chr(13) & "(maximaal 15)", "Regels invoegen")
If Not IsNumeric(AantalRegels) Then
MsgBox "Er is geen getal ingevoerd. Er worden geen regels toegevoegd.", vbOKOnly + vbExclamation, "Verkeerde invoer"
Exit Sub
ElseIf AantalRegels > 15 Then
MsgBox "De ingevulde waarde is te hoog. Er worden maximaal 15 regels tegelijk toegevoegd.", vbOKOnly + vbExclamation, "Verkeerde invoer"
AantalRegels = 15
End If
Application.ScreenUpdating = False
Application.EnableEvents = False
' regels toevoegen
Dim i As Integer
Sheets("formules").Visible = True
If methode = 0 Then
For i = 1 To AantalRegels
Sheets("formules").Rows("1:1").Copy
[COLOR="#FF0000"]ActiveCell.Offset(1, 0).EntireRow.Insert shift:=xlDown[/COLOR]
Application.CutCopyMode = False
Sheets("Raming").Range(Cells(ActiveCell.Row + 1, 13), Cells(ActiveCell.Row + 1, 15)).Value = Sheets("Raming").Range(Cells(ActiveCell.Row, 13), Cells(ActiveCell.Row, 15)).Value
Next i
ElseIf methode = 1 Or methode = 2 Or methode = 3 Then
[COLOR="#FFA500"]' ### Hier doe ik hetzelfde, maar dan voor methode 1, 2 en 3 (kleine afwijkingen, extra tellingen/controles, enz.. code verwijderd[/COLOR]
End If
Sheets("formules").Visible = False
Cells(ActiveCell.Row + 1, 5).Select
Application.CutCopyMode = False
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
De rode regel geeft de foutmelding. Activecell staat op het werkblad raming, hier zit ook de knop waarmee deze macro geactiveerd wordt, dus dat kan in principe ook geen ander werkblad zijn (tenzij iemand de knop niet gebruikt natuurlijk). De knop is opgebouwd uit een vorm/tekstvak waar ik een macro aan gekoppeld heb. De knoppen wilde ik namelijk duidelijke kleuren mee kunnen geven (rood, groen, blauw, enz..). In de hele code selecteer ik in principe pas een andere cel (de nieuw ingevoegde zodat doorgewerkt kan worden) als de code zo goed als afgelopen is. Tussendoor geen selecties of activaties.
Iemand een idee waar deze melding vandaan kan komen? Ik vermoed iets in de activecell, vanwege de melding range, maar de juiste cel is gewoon actief (lijkt het)...
Hoop dat jullie mij kunnen helpen. Nou ja, hoop, weet wel zo goed als zeker dat jullie dat kunnen