Alternatief voor vba-code t.a.v. een omschrijving in het naamvak

Status
Niet open voor verdere reacties.

Robert Smidt

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

Ik ben op zoek naar een vba code die als alternatief dient voor:
Code:
If Range("H" & Target.Row) Like "21%[COLOR="#FF0000"]*[/COLOR]" Then

deze code werkt prima, echter heb ik in een naamvak elders in een werkblad "21%" aangemerkt als "[Btwhoogtarief]". Dit heb ik gedaan omdat de btw soms veranderd en ik niet overal in het programma deze handmatig wil aanpassen.

Als alternatief op de vorige code heb ik:
Code:
If Range("H" & Target.Row) Like [Btwhoogtarief].Value[COLOR="#FF0000"]"*"[/COLOR] Then
Hier krijg ik een complieerfout "Verwacht then of GoTo".

Ik hoop dat iemand mij kan helpen met de juiste code en dan m.n. voorzien van "*" (jokerteken).

Tot slot: is het mogelijk dat de code ook werkt wanneer in kolom H alleen 21% staat, m.a.w. met én zonder een toevoeging? Zojuist kwam ik erachter dat de eerste code hier ook niet in is voorzien.

Alvast hartelijk dank.

Robert
 
Laatst bewerkt:
Het zou zo kunnen volgens mij.
Code:
If Left(Range("H" & Target.Row), 3) = "21%" And Mid(Range("H" & Target.Row), 4) <> "" Then
Maar als er in cel "21%" staat, dan moet het er wel als tekst staan en niet als getal (0,21).
 
Of
Code:
If Range("H" & Target.Row) Like Format([Btwhoogtarief], "0%") & "*" Then
 
De code werkt in ieder geval al veel beter dan mijn code, alleen werken beide codes niet wanneer in kolom H alleen 21% staat. Ik denk dat in jouw code er altijd een toevoeging rechts van 21% moet staan. Heb je enig idee hoe ik jouw code kan combineren dat het bij zowel 21% als ook bij 21% * werkt ?
 
Waarom staat er een toevoeging achter het %? Waarom plaats je het bestand niet?
 
de toevoeging heeft betrekking wanneer kosten voor de BTW zakelijk zijn, maar voor de IB niet, ik gebruik dan het in kolom H "21% / geen IB". Het systeem moet dan wel de btw berekenen.

Het programma is ontzettend groot. Ik wil met alle plezier iets maken met alleen deze code er in.
 
Geen of wel IB lijkt mij een aparte entiteit die je dus in een aparte kolom moet zetten. Maar een gelijkend voorbeeldje met wat fictieve gegevens mag natuurlijk ook.
 
Klopt, het heeft niets met de btw te maken. De reden voor mij is puur gebruikersgemak, anders moet ik per grootboekrekening een toevoeging " Geen IB" aanmaken.

Trouwens ik vind het super dat er mee gedacht wordt voor eventuele alternatieven...

Ik heb een bestand toegevoegd. De macro staat in werkmap "Mutaties"

Nogmaals super bedankt voor jullie hulp
 

Bijlagen

  • Administratiepakket BTW.xlsm
    419,5 KB · Weergaven: 21
Probeer het eens.
Code:
If instr(Range("H" & Target.Row), "21")>0 then
 
Laatst bewerkt:
Gebruiksgemak gaat tegen je werken door onnodig moeilijke formules/codes. Om niet vast te zitten aan de harde 21%
Code:
If Format(Split(Range("H" & Target.Row))(0), "0%") = Format([Btwhoogtarief], "0%") Then
 
Allen heel erg bedankt voor het meedenken en aanbieden van alternatieven. De code van Harry werkt perfect en ik ga nu de code van VenA ook nog even uittesten. T.a.v. de suggestie dat gebruiksgemak niet altijd handig is, onderstreep ik, maar omdat ik tegen een dilemma aanliep, ik zal jullie de details hiervan besparen, moest ik uitwijken naar een alternatief en ben ik super blij dat er toch een oplossing is gevonden.

Nogmaals, allen heel erg bedankt.
 
VenA,
Jouw code heb ik zojuist ook getest en werkt helemaal goed met als bijkomend voordeel dat hier de (vak)naam (21%) in opgenomen is. :thumb:
 
Gebruik nooit (herhaling: nooit) samengevoegde cellen in Excel.
Maak daarentegen wel gebruik van de in Excel ingebouwde 'intelligente' tabel.

Iets algemener:

Code:
With Target.Offset(, -Target.Column + 8)
  MsgBox Application.Match(.Text, Split(.Validation.Formula1, ";"), 0) = 1
End With
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan