Bij draaien van onderstaande code krijg ik steeds een runtime-error: "Door
de toepassing of door object gedefinieerde fout".
De fout ontstaat op de regels:
ActiveCell.Offset(0, 1).Value = TypeOvkRng.Offset(0, 1).Value
ActiveCell.Offset(0, 3).Value = TypeOvkRng.Offset(0, 2).Value
en hangt samen met de range TypeOvkRng. Verder dan dat kom ik niet, ik weet
niet hoe dit op te lossen. Wie kan helpen de fout uit mijn code te halen.
Private Sub OKButton_Click()
Dim TypeOvk As String
Dim TypeOvkRng As Range
ThisWorkbook.Sheets("ovk").Unprotect
If ComboBox1.Value = "" Then
MsgBox ("Maak een selectie")
Else
TypeOvk = ComboBox1.Value
With Range("[testwerkmap.xls]Overkappingen!KiesOverkapping")
Set TypeOvkRng = .Find(What:=TypeOvk,
After:=.Cells(.Cells.Count), LookIn:=xlValues, LookAt:=xlWhole,
SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False)
If Not TypeOvkRng Is Nothing Then
ActiveCell.Offset(0, 0).Value = TypeOvkRng.Offset(0, 0).Value
ActiveCell.Offset(0, 1).Value = TypeOvkRng.Offset(0, 1).Value
ActiveCell.Offset(0, 3).Value = TypeOvkRng.Offset(0, 2).Value
Else
MsgBox "Nothing found"
End If
End With
Unload UserFormOverkapping
End If
ThisWorkbook.Sheets("ovk").Protect Contents:=True, AllowInsertingRows:=True
End Sub
Alvast bedankt voor de hulp!
MvG
Ruud
Ik heb je code in een excel werkmap getest, maar ik ondervind geen
problemen.
Misschien dat het te maken heeft met het bereik "KiesOverkapping".
Hoe ziet die er uit; wat is de inhoud; hoe is de opmaak van die cellen?
Ik heb ook wel eens heel wazige foutmeldingen gehad in excel, die waren te
wijten aan verwijzingen naar object libraries die waren verwijderd.
Controleer het volgende eens:
Ga vanuit het menu van de Visual Basic Editor naar Extra - Verwijzingen
Hier zie je een overzicht van geselecteerde libraries.
Controleer of er achter de aangevinkte libraries de tekst "ONTBREEKT: "
staat. ("MISSING: " voor de engelse versie).
Als dit het geval is moet dit eerst opgelost worden, er zijn 2
mogelijkheden:
1: Als je de betreffende library nodig hebt voor de werking, zorg dan dat
het ontbrekende bestand weer wordt teruggeplaatst.
2: Als je de betreffende library NIET nodig hebt voor de werking, vink de
betreffende library dan uit.
Gr. Gertjan
"ruud" wrote...
Bedankt voor je reactie.
Er zijn geen ontbrekende libraries. Heb eea gecheckt zoals je aangaf.
Ik heb het vermoeden dat het fout gaat met het object TypeOvkRng. Vreemd is
dat de eerste regel waar waardes worden toegekend gewoon goed gaat:
ActiveCell.Offset(0, 0).Value = TypeOvkRng.Offset(0, 0).Value
Bij de regels daarna gaat het fout:
ActiveCell.Offset(0, 1).Value = TypeOvkRng.Offset(0, 1).Value
ActiveCell.Offset(0, 3).Value = TypeOvkRng.Offset(0, 2).Value
Als ik echter in debug mode de waarde of adres van TypeOvkRng opvraag is de
range gewoon bekend. Denk daarom dat het niet te maken heeft met het bereik
"KiesOverkapping". En toch gaat er iets fout. Heel wazig allemaal. Zo
spannend is het toch niet wat er moet gebeuren.
Heb je een idee wat het verder nog kan zijn? of kan ik hetzelfde met een
andere aanpak ook bereiken?
Alvast bedankt
Ruud
"Gertjan Huiskes" schreef:
Als je weet dat het ook fout gaat in deze regel:
- ActiveCell.Offset(0, 3).Value = TypeOvkRng.Offset(0, 2).Value
Dan wil dat dus zeggen dat het af en toe goed gaat in deze regel:
- ActiveCell.Offset(0, 1).Value = TypeOvkRng.Offset(0, 1).Value
Het moet toch aan de inhoud of de opmaak van de cellen liggen, want bij mij
werkt het wel.
Ik zag dat je een testsheet hebt gemaakt... je mag 'm wel mailen, dan kijk
ik wel wat er aan de hand is.
Groeten,
Gertjan
"ruud" wrote...
Opgelost!
Ik heb de opmaak gecheckt maar daar bleek uiteindelijk de oorzaak van het
probleem toch niet te liggen. Er draait ook een event macro die de userform
waarin de gewraakte code staat aanroept zodra een bepaalde cel geslecteerd
wordt. Diezelfde cel wordt vervolgens als actieve cel door de code nogmaals
aangesproken en de eventmacro probeert de al geopende userform nogmaals te
openen. Ik heb de een "Application.EnableEvents = False" in de code opgenomen
en alles werkt nu zoals het moet.
Bedankt voor het meedenken!
MvG