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

Geen R1C1 (of R1K1) bij opgenomen macro

Status
Niet open voor verdere reacties.

mulderwme

Gebruiker
Lid geworden
12 dec 2014
Berichten
232
Hallo allemaal,

Ik wil macro's opnemen met de formule in een cel.
Nu krijg ik het verwijzingstype R1C1 (of R1K1), i.p.v. de echte celadressen.
Omdat dat moeilijk leesbaar is, wil ik de macro's opnemen zodat ik direct de celadressen krijg.
Vinkje bij Excel opties R1K1 referentie stijl is verwijderd.

Ik krijg nu:
ActiveCell.FormulaR1C1 = "=RC[-3]*RC[-2]*RC[-1]"

Maar ik wil:
ActiveCell.Formula = "=A2*B2*C2"

Kan dit?

Zie mijn bijgevoegde bestandje.

Groet
Willem
 

Bijlagen

Willem,

maak D2 en D3 eens leeg en laat dan je Macro2() eens lopen

Volgens mij heb je dan het antwoord op je vraag, nl DAT KAN
 
Select is vaak overbodig in VBA

Code:
Sub VenA()
  Columns(1).SpecialCells(2, 1).Offset(, 3).Formula = "=Product(A2:C2)"
End Sub
 
Oeps, ik merk dat mijn vraag niet duidelijk is en dat snap ik. :)

Het gaat erom dat ik de antwoorden die gegeven zijn wil opnemen om ze te vergelijken.
Dus de formules zijn al ingevoerd.

Mijn vraag is of ik een macro kan opnemen die de formules dan zo weergeeft als in macro2. Dan zie je duidelijk om welke cellen het gaat.
Ik moet namelijk nog weleens wat wijzigen voordat ik uiteindelijk een definitieve versie hebt. Met R1K1 is dat erg lastig.

Dus het gaat er niet om dat ik die formules in een cel invoer.
 
Volgens mij kan dat niet direct. Je kan het wel omzetten


Code:
Sub j()
    MsgBox Application.ConvertFormula("=RC[-3]*RC[-2]*RC[-1]", xlR1C1, xlA1)
End Sub
 
Laatst bewerkt:
Via gedefinieerde naam: =CEL.LEZEN
 
of toch maar een macrotje

Code:
Sub VenA()
  ar = Cells(1).CurrentRegion.Resize(, 6).Formula
  ar1 = Cells(1).CurrentRegion.FormulaR1C1
  For j = 2 To UBound(ar)
    ar(j, 5) = "'" & ar(j, 4)
    ar(j, 6) = "'" & ar1(j, 4)
  Next j
  Cells(1).CurrentRegion.Resize(, 6) = ar
End Sub
 
Bedankt voor het meedenken, maar er lijkt geen simpele oplossing.

Ik sta in dit geval in cel F2. De macro wordt zo opgenomen:
ActiveCell.FormulaR1C1 = "=RC[-5]*RC[-4]*RC[-3]"

En ik wil dus dat het op deze manier in VBA komt:
ActiveCell.Formula = "=A2*B2*C2"

Als ik mijn formule naar G2 verplaats, dan werkt de formule nog steeds.
In het eerste geval moet ik de code aanpassen om hem weer te laten kloppen.

Het kan ook gewoon zijn dat het niet kan.

Groet
Willem
 
Dat wat jij wil kan niet:D
 
= "=rc1*rc2*rc3"
 
Als de opgenomen macro te moeilijk is om te volgen of je wil weten hoe het geschreven moet worden in Vba?
Selecteer de cel waar het om gaat.
In de VB-editor → Menu Beeld → Venster direct:

Typ: ? activecell.formula en druk op Enter.
 
Vervolgvraag op Geen R1C1 (of R1K1) bij opgenomen macro

Hallo allemaal,

Dat gebeuren met R1K1 laat ik even voor wat het is. Formules maak ik nu zichtbaar met Formuletekst(). Lijkt voor nu de beste optie.

Waar ben ik mee bezig. Ik moet toetsen nakijken en wil dat meer geautomatiseerd met een macro doen.
Ik heb een GA (gegeven antwoord) en 1 of meer MA's (modelantwoorden).
Die wil ik vergelijken. En als een GA overeenkomt met een MA moeten beide groen worden.
Zo niet, dan moet de GA rood worden.

Ik kom daar niet helemaal uit met voorwaardelijke opmaak. Als er geen overeenkomst is (voorbeeld 3), blijft de GA toch groen.

Het bestandje zit in de bijlage.

Wie heeft dit al een keer uitgevonden?

Groet & alvast een goede jaarwisseling en bedankt voor steeds de snelle reacties!
Willem
 

Bijlagen

Als je toch nog apart moet beoordelen kun je net zo goed alles zelf nalopen:p Voor deze vraag is het beter om een nieuwe Topic te starten trouwens.
Maargoed, hier een voorbeeldje. Verander maar eens iets in je voorbeeld 1 cellen. (allemaal met voorwaardelijke opmaak).

Edit: Als het antwoord wel goed is, maar de berekening niet, zal de cel oranje kleuren.
 

Bijlagen

Laatst bewerkt:
Dank je wel, JV.

Zoiets bedoelde ik idd, ja. Het is wel een complexere voorwaardelijke opmaak geworden, maar dat is niet erg.

Ik wil alleen de afwijkingen beoordelen, dus alleen de cellen die op rood staan. In de praktijk staat meer (hoop ik) 70% op groen. Daar hoef ik dus niet meer naar te kijken.

Voor betere ideeën sta ik open :)

En ik twijfelde over een nieuw topic.

Hartelijk bedankt!

Groet
Willem
 
Even goed kijken naar de formule en je snapt het wel. Plak de formule maar eens in je werkblad en probeer met F9 door de formule te lopen.;)
 
Hallo Jolivanes,

Ik bedoelde idd het plaatje bij Opties voor Excel.

Maar mijn vraag was hoe ik bij het opnemen van de macro, in VBA direct de notatie =A2*B2*C2 krijg, i.p.v. =RK[-3]*RK[-2]*RK[-1].

Dat lijkt niet mogelijk.
 
Wat ik niet snap, is waarom je dit op die wijze in je coderegels terug wilt zien? Je wilt een macro opnemen om iets na te kijken om iets te vergelijken? Was het dan je doel om in de programmacode het nakijkwerk te gaan doen??? Naar mijn gevoel heb je wat voor ogen wat nog eens goed uitgelegd moet worden en dat daarmee een programma voor jou de formule vergelijkingen gaat uitvoeren?
 
Ja, het is een beetje een vaag verhaal.

Ik moet toetsen nakijken. Maar als ik daarvoor een macro ontwikkel, kom ik er nog weleens achter dat ik mijn controle toch liever in een ander rij of kolom wil hebben.
Dus de controle staat bijv. in kolom E en ik wil de controle in F hebben.

Als dan een kolom opschuif, dan werkt de formule =A2*B2*C2 nog steeds goed, want het antwoord staat wel in een vast cel.
Met de =RK[-3]*RK[-2]*RK[-1], moet ik die formule weer aanpassen om de juiste controle te hebben.

Nu kan je natuurlijk zeggen: "Had daar dan van te voren beter over nagedacht.", maar het is work in progress, dus ik kom werkenderwijs nog weleens tot andere inzichten.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan