• 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.

Inhoud cel veranderen als

Status
Niet open voor verdere reacties.
Je hebt de laatste code in #19 gezien?
En je hebt weer een ander bereik in je voorbeeld dan waar je het in je berichten over hebt.
 
Dan pas je de range in de code toch aan?
Anders begrijp ik je niet meer en klopt dus je voorbeeld document niet.

Of dit?
Code:
Sub Selecteren()
    Static sts As Boolean
    
    sts = Not sts
    Range("D1:E50").SpecialCells(2).Value = IIf(sts, "a", "c")
End Sub

Wanneer ik deze nu gebruik dan geeft die een foutmelding in een andere code die bij een klik de letters aanpassen (zie afbeelding) Foutmelding-Code.PNG
 
Die foutmelding is een totaal ander event in een totaal andere sub en heeft niks met je vraag te maken.
 
Wanneer ik jou code uitvoer door op de macro te klikken dan geeft hij een foutmelding in dat event. Vandaar dat ik hem post.

Ik heb #19 zeker gezien, maar die veranderd elke cel binnen het bereik. Nu zitten er binnen het bereik
ook lege cellen en deze veranderen ook (naar a of c) als ik jou code bij #19 gebruik en dit is niet de bedoeling.


In mijn laatste voorbeeld heb ik dit late zien. Dit is inderdaad ook een ander bereik maar het ging mij er even om te laten zien wat ik bedoel.
 
Die code doet alleen gevulde cellen in het bereik.
 
Als ik die uitvoer dan geeft die dus een foutmelding in het andere event, die ik liet zien in de afbeelding.
 
Dan moet je dus dat andere event aanpassen.
Daarnaast is een gele regel geen foutmelding maar het gedeelte waar een fout optrad.
De foutmelding is de melding die dan gegeven wordt.
 
Laatst bewerkt:
Oke ik heb het bereik nu aangepast:

Code:
Sub Selecteren()
    Static sts As Boolean
    
    sts = Not sts
    Range("D5:E50").SpecialCells(2).Value = IIf(sts, "a", "c")
End Sub

Dan geeft die de foutmelding in het andere event.
Wanneer ik het bereik aanpas naar:

Code:
Sub Selecteren()
    Static sts As Boolean
    
    sts = Not sts
    Range("D6:E50").SpecialCells(2).Value = IIf(sts, "a", "c")
End Sub

Dan doet die precies wat ik wil. Alleen de pakt die Cel D5 niet mee. Ik snap er niks van waarom dit is.

Dus bereik D5 : E50 geeft een foutmelding in het andere event.
Bereik D6 : E50 doet exact wat ik wil alleen dan neemt die cel E5 niet mee.
 
Kijk eens wat je doet in dat andere event.
Dat wordt uitgevoerd voor iedere cel die wijzigt in het bereik D5:E50.
Ook heb je nog niet verteld welke foutmelding je dan krijgt.
Daarnaast moet de code in dat andere event dus sowieso aangepast worden.
 
Ja en zover reikt helaas mijn kennis van Vba niet.

Wanneer ik dus deze macro uivoer:

Code:
Sub Selecteren()
    Static sts As Boolean
    
    sts = Not sts
    Range("D5:E50").SpecialCells(2).Value = IIf(sts, "a", "c")
End Sub

Krijgt hij deze foutmelding:

Foutmelding-Code2.PNG

En wanneer ik op foutopsporing klik dan laat die dit zien:

Foutmelding-Code.PNG

Dat is deze code

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
 If Target.Column = 4 Or Target.Column = 5 And Target.Row > 4 Then Target = IIf(Target = "", "", IIf(Target = "a", "c", "a"))
End Sub

Die lijken een conflict met elkaar te hebben en ik snap niet waarom
 
Je wijzigt daar een cel in hetzelfde bereik en onstaat er een oneindige loop die met die foutmelding wordt afgesloten.
Maak er dus dit van:
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Application.EnableEvents = False
    If Target.Column = 4 Or Target.Column = 5 And Target.Row > 4 Then Target = IIf(Target = "", "", IIf(Target = "a", "c", "a"))
    Application.EnableEvents = True
End Sub
Of haal die code helemaal weg.
 
Als je nu gewoon eens de codes van edmoor juist toepast en niet steeds met andere voorbeeldbestanden komt werkt het perfect.

Alleen dit nog even aanpassen in de selection_change

Code:
If Target.Column =[COLOR="#FF0000"] 2[/COLOR] Or Target.Column = [COLOR="#FF0000"]3[/COLOR] And Target.Row [COLOR="#FF0000"]> 5 And Target.Count = 1[/COLOR] Then Target = IIf(Target = "", "", IIf(Target = "a", "c", "a"))

Vermoeden is dat je kolom B en C bedoeld.
 
Laatst bewerkt:
Wanneer ik dat op die manier aanpas dan doet mijn event het niet meer.
Ik gebruik dit als een checklist dus ik klik op een cel met een 'c' en dit wordt een 'a' en andersom

De macro moet alles ineens kunnen checken of unchecken.
 
@ AD1957

Het was kolom D en E. dus dit klopte maar dit was de oplossing! Super bedankt!

@edmoor

Ook super bedankt voor alle moeite.

En excuses beide ik heb gewoon te weinig verstand er van waardoor ik dit soort problemen gewoon niet kan oplossen!
 
Laatst bewerkt:
Beter alle dank aan @edmoor voor zijn engelengeduld.:d:d:thumb::thumb:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan