• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Menssen zoeken

Status
Niet open voor verdere reacties.

Jarodxxx

Gebruiker
Lid geworden
26 nov 2006
Berichten
243
Hallo,

probleempje met object vereist eigenschap error. Wie weet een oplossing

Code:
SHTEST1.Range("F" & c.Row).Copy
Range("B" & Range("A" & Rows.Count).End(xlUp).Row).PasteSpecial xlPasteValues

voor C.Row krijg ik een error met c.row = object vereist
iemand een idee hoe dat komt?
'k heb eigenlijk geen idee wat 't doet namenlijk

Ik heb al wel een Dim SHTEST1 = object as range moet dat dan ook voor dit dan?

Jarod.
 
Als je code post, post dan genoeg code voor ons om het probleem te analyseren. Post alle code tot en met die die je nu gepost hebt.

Wigi
 
Copy that!

Sorry Wigi,:o
Hier dan de code t/m + wat extra
Bij vet gedeelte is bij c.row een object vereist whatever that might be..!
Ik open nu een ander bestand om gegevens op te halen, maar hoeft dat wel open? of kan dat anders?
Gebruikers mogen het andere blad eigenlijk niet zien, of moet ik het dan verbergen met op een xlhide manier.

Jarod.:thumb:


Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim c As Range, rngToDo As Range, firstAddress As String, SHTEST1 As Object
    If Target.Count > 1 Then Exit Sub
    
'Naamtoewijzing voor een werkblad of bestandslocatie. Hierna kan de naam worden aangeroepen'
     Set SHTEST1 = Workbooks.Open("C:\TEST2.xls").Sheets("TEST2")


'Invoercel met waarde welke later wordt vergeleken'
    If Target.Address = "$B$5" Then
        Application.ScreenUpdating = False

'Op het actieve werkblad wordt vanaf Cel X alles gewist'
        Range("A32").CurrentRegion.Offset(1).ClearContents
        
'Op het gegevensblad kijk vanaf Cel X naar rechts en naar beneden (kijk naar het geheel)'
        Set rngToDo = SHTEST1.Range("A2", SHTEST1.Range("A2").End(xlDown))
        Set c = rngToDo.Find(Target, after:=SHTEST1.Cells(Rows.Count, rngToDo.Column).End(xlUp), LookIn:=xlValues, lookat:=xlWhole)
        If Not c Is Nothing Then
            firstAddress = c.Address
            Do
                c.Copy
                Range("A" & Rows.Count).End(xlUp).Offset(1).PasteSpecial xlPasteValues
                
                
'Hier wordt aangegeven welke kolommen op het gegevensblad gekopieerd moeten worden naar het doel werkblad'
'_____________________________________________________________________________________________________________'

                'Verander in de 1e regel tussen de "" de kolomletter waar de gegevens vandaan komen'
                'Verander in de 2e regel de eerste "" in de kolomletter waar de gegevens naar toe moeten'
                [B]SHTEST1.Range("F" & c.Row).Copy
                Range("B" & Range("A" & Rows.Count).End(xlUp).Row).PasteSpecial [/B]xlPasteValues
                
                'Uitbereiding door kopieren'
                SHTEST1.Range("H" & c.Row).Copy
                Range("C" & Range("A" & Rows.Count).End(xlUp).Row).PasteSpecial xlPasteValues
                
'_____________________________________________________________________________________________________________'
'Hierboven kan uitbereiding plaats vinden van de kolommen die gekopieerd moeten worden'
                
                
                Set c = rngToDo.FindNext(c)
            Loop While Not c Is Nothing And c.Address <> firstAddress
        End If
        Application.EnableEvents = False
 
Laatst bewerkt:
Wigi?

Hallo,

Niemand een idee? hoe dit kan?
Jij ook niet Wigi? 't was jou code:-)

Jarod
 
Geduld is een schone deugd...

Ben momenteel aan code bezig voor op mijn eigen site.
 
:thumb:
Allright!
Ik zal me inhouden:)
't is jammer dan, kan even niet verder.

Jarod.

Wigi misschien een tag bij je naam over wat je doet, handig voor ons:D
 
Hang toch maar de bestandjes bij hoor. Ik zie op het eerste zicht niets fout, maar dit is nogal moeilijk toch zonder bestandje.
 
Bestandjes + tag

Ha Wigi,

Tag stukken beter:thumb: 't heeft wel wat

Hier dan maar even de bestandjes.
Ik zie 't ook niet, misschien dat dit je kan helpen

Jarod
 

Bijlagen

Kun je uit de voeten

Kun je uit de voeten met de bestanden Wigi?

Groet,

Jarod
 
Wie weet het antwoord

Weet echt niemand hier het antwoord op?
Ik heb dit echt heel erg nodig eerlijk gezegd:o

Please help me out here!

Jarod

ps: Eeuwig dankbaar:thumb:
 
als je de regel
Code:
If Target.Count > 1 Then Exit Sub
zou veranderen in
Code:
If Target.Count > 1 Or Target.Address <> "$B$5" Then Exit Sub
werkt het wel.

Door het kopieren van de waarde naar het blad wordt opnieuw het Worksheet_Change event getriggerd. Het lijkt erop dat hierdoor ook c zijn waarde verliest.
 
Laatst bewerkt:
Op de helft!

Prachtig!

1.Alleen door toevoeging van

Code:
If TARGET.Count > 1 Or TARGET.Address <> ("$B$5") Then Exit Sub

werkt het 2e deel van de code (target = dan niet B5 maar D5) niet meer
Het moet iets worden van or Target.Adress <> ("$B$5") or ("$D$5") dan ofzo?? alleen weet niet precies hoe

2. In het nieuwe testbestand2 heb ik ook de target verhuisd naar het Blad "Target", maar het werkt niet. Komt vermoed ik door dat de code het target adres nog op "Home" pakt?

3. Test2.xls staat nu steeds ook open, moet dit perse? (heb liever van niet) Nou kan ik er alleen lezen van maken, wat hier ook gebeurd of met xlverryhidden de bladen verbergen, maar misschien is er een handigere methode.

3 zoek ik eerst zelf wel even uit 1 en 2 gaat mij echter boven de pet, iemand met meer kennis moet het lukken dunkt me?

Jarod
 

Bijlagen

Vraag 2 werkt reeds

Zo Mensen,

Vraag 2 is me zelf al gelukt, viel mee

Vraag 3 is niet zo belangrijk, maar vraag 1 wel.
Het tweede deel van de code waar het targetadress "$D$5" is, werkt niet meer door

het antwoord van Hans, iemand een idee hoe dat anders moet?

Jarod.
 
Vervang
Code:
TARGET.Address <> ("$B$5") Then Exit Sub
door :
Code:
TARGET.row > 5 Then Exit Sub

waardoor het deel voor D5 weer werkt.
 
Jarodxxx,

Probeer hetbijgaande bestand eens. Werky met een Query waardoor het bestand test2 niet geopend wordt. Bijkomend voordeel is dat als er meerdere records voldoen hij ze allemaal laat zien in plaats van alleen de eerste.
 

Bijlagen

Goodies:-)

Zeg Hans,

Ik heb nog een hele studie voor de boeg zie ik:-)
Dit is niet iets wat je even doet met enkel 4 jaar mavo op zak, proficiat man!

Maar goed met wat studie lukt 't mij vermoed ik ook wel om te begrijpen

Jarod.

ps: ik heb geen 4 jaar mavo:eek: :D , dus 't moet kunnen:)
 
Programma werkt bijna

't werkt allemaal nagenoeg

Ik heb het al kunnen aanpassen naar mijn wensen en eisen op 2 zaken na

als het targetadress B5 wordt leeggemaakt, dan krijg ik een error (er is een fout opgetreden in de SQL syntaxis)
wordt het targetadress B7 leeggemaakt dan gebeurd dit niet. Dit ligt eraan dat Target B7 nog het onderstaande stukje aanroept:

Code:
.Refresh BackgroundQuery:=False
        End With
   [B] End If
    target.Select
        End With[/B]
End Sub

Bij B5 wordt dit (vetgedrukt) niet gedaan en blijven de gegevens staan en krijg je een error

Code:
.Refresh BackgroundQuery:=False
        End With
    ElseIf target.Address = "$B$7" Then

Verder probeer ik de targetadresses naar een andere sheet te verhuizen maar de gegevens te laten staan (te gebruiken het testbestand van hans) en mijn c:\test2.xls

Alvast bedankt
Jarod

ps: als er onduidelijkheden zijn... please let me know
 

Bijlagen

Laatst bewerkt:
Bijspringen

Hallo Hans (iemand)

Zou je nog even willen bijspringen?
ik wordt wat :rolleyes:

Alvast heel erg bedankt

Jarod.
 
als je
Code:
If target.Address = "$B$5"  Then
veranderd in
Code:
 If target.Address = "$B$5" And Not IsEmpty(target.Value) Then
en dit ook voor de voorwaarde voor "B7" doet werkt het eerste deel.

Wat je verder wil is mij niet duidelijk. Wil je de gegevens op een ander blad hebben of de inhoud van de cellen B5 en B7 ?

De query zelf staat in cel A32 in is te bewerken door in deze cel te gaan staan en dan te kiezen voor Data --> Externe gegevens importeren --> Query bewerken.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan