Indien filter ingeschakeld vba plaatst tekst en N#B in kolom C alle volgende regels

Status
Niet open voor verdere reacties.

Robert Smidt

Gebruiker
Lid geworden
26 mei 2009
Berichten
901
Beste Helpmij'ers,

Ik loop tegen een wel een heel vreemd probleem aan. Wanneer ik in excel willekeurig een filter aan zet en in een bestaande gevulde regel in een willekeurig veld ga staan en vervolgens op enter druk, dan zet de vba automatisch in alle volgende regels in kolom c de tekst #N/B. Ik heb geen idee welke code daar voor verantwoordelijk is. Wanneer ik geen filter gebruik, gaat het overigens wel goed. Een voorbeeld gaat als bijlage

Alvast heel erg bedankt.

Groeten,
RobertBekijk bijlage Filtertest.xlsx.xlsm
 
Maak gebruik van de standaard ingebakken debug functionaliteiten zoals <F8>, Stop, Breakpoints Etc in de VB editor. Je ziet dan vanzelf waar het fout gaat.
 
Bedankt voor jouw reactie.

Kan dat ook met: Private Sub Worksheet_Change(ByVal Target As Range)
Deze staat standaard actief en kan ik niet handmatig aanroepen, toch?
 
Stop kan je op elke plaats in de code zetten en vervolgens kan je met <F8> door de code wandelen.
 
Code:
If Not Intersect(Target, Union([COLOR=#0000ff]Columns("A:O")[/COLOR], Columns(18), Columns(23), Columns(32))) Is Nothing Then

De fout vind jezelf wel.
 
Ik ben inmiddels een stuk verder en kom erachter dat hij bij iedere commando al de mist in gaat. Hoe zou ik dat kunnen omzeilen?
 
Heb je de fout al gevonden?
 
Gelijk bij het eerst commando gaf hij al een fout.

Code:
        'Datum
         If Range("a" & Target.Row) = "" And Range("c" & Target.Row) <> "" Then '
            Range("a" & Target.Row) = Date
        End If
 
Wat zet deze coderegel in de cellen?
Code:
[C13:c500] = [index(proper(C13:F500),)]
 
If Range("a" & Target.Row) = "" And Range("c" & Target.Row) <> "" Then '
Range("a" & Target.Row) = Date()
End If

Haal de ' aan het einde van die regel weg.

Tijs.
 
Laatst bewerkt:
De apostrof is niet het euvel.
Schrijf er maar wat achter dan zie je dat het niets uitmaakt. ;)
 
HSV: Idd, ik heb hier niet goed genoeg over nagedacht... *kuch* :rolleyes: :D

Tijs.
 
dan zet de vba automatisch in alle volgende regels in kolom c de tekst #N/B. Ik heb geen idee welke code daar voor verantwoordelijk is.

werkt dit?

Code:
 [C13:c500] = [index(proper(C13:c500),[COLOR="#FF0000"][B]0[/B][/COLOR])]
ipv
Code:
 [C13:c500] = [index(proper(C13:c500),)]
 
Waarom niet ?

Code:
    If Not Intersect(Target, Range("a13:y500")) Is Nothing And Target.Count = 1 Then
        Application.EnableEvents = False
        If Target.Column = 3 Then Target = StrConv(Target, 3)
 
Allemaal heel erg bedankt voor het meedenken.

Het probleem zit zoals velen van jullie al voorzagen in:

Code:
'[C13:c500] = [index(proper(C13:F500),)]

Ook de wijzigingsvoorstellen mochten niet baten, pas toen ik deze regel uitschakelde door ' er voor te zetten, ging het goed. Blijft nog de vraag in hoeverre het mogelijk is om voor deze code een alternatief te bedenken. Deze code is er nl. verantwoordelijk voor dat de regels in de kolommen C t/m F met een hoofdletter beginnen.

Nogmaal super bedankt, ik ben al een heel stuk verder.
 
Ook die vraag is al beantwoord in #14

Het lijkt me lastig 3 kolom in 1 te proppen zoals hier '[C13:c500] = [index(proper(C13:F500),)]
Dat was het probleem.
Bovendien ligt het niet voor de hand om iedere keer als 1 waarde wordt gewijzigd, ruim 1400 andere waarden ook te wijzigen.


VBA-techniek: of je gebruikt

Code:
[C13:c500] = [index(proper(C13:C500),)}

of

Code:
[C13:F500] = [index(proper(C13:F500),)}
 
Laatst bewerkt:
Sorry, ik zie net dat de oplossing er al bij stond

Code:
 If Target.Column = 3 Then Target = StrConv(Target, 3)

Dus mijn probleem is helemaal verholpen.

Allemaal heel erg bedankt..
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan