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

Macro

Status
Niet open voor verdere reacties.

bs317

Gebruiker
Lid geworden
10 jun 2003
Berichten
42
Hallo,
Ik zou een macro met een bijpassende knop willen aanmaken. De knop, met een macro, dat gaat maar de macro die ik wil is dat van het moment dat je op de knop duwt de macro een functie moet uitvoeren. VB: ik sta in cel c5 en van het moment dat ik op de knop druk moet er in die cel een bepaalde berekening gebeuren.
Maar om het nog een beetje moeilijker te maken is dat dit in elk werkblad, dat ik open, die macro moet geopend kunnen worden en zo die functie moet kunnen uitvoeren.
 
R1C1

Gebruik in je VBA code R1C1 formules, deze werken relatief (Row Column) en schrijven in de betreffende cel de juiste formule met correcte celverwijzing.

Je knop moet in dit geval een werkbalkknop worden
via Beeld ---> werkbalken --> aanpassen --> TAB opdrachtknoppen

Je macro moet in het persoonlijk (personel.xls) komen.
 
Hoi,
Bedankt alvast voor je reactie. Die R1C1 formule is voor mij toch nog wat hoog gegrepen. Ik kan een macro maken maar dan niet via VBA dus die formule ken jammerlijk genoeg niet.
De formule die ik in die cel c5 wil is:=als(b4=b5;c4;als(b5-b4>0;c4+1;als(b5-b4=0;"";"")))
Misschien kun je me daarop een macro schrijven. Deze in de knoppenbalk zetten lukt me wel.
Dank u

Bernard. ;)
 
En als je in cel D7 staat zou de formule;
=als(c6=c7;d6;als(c7-c6>0;d6+1;als(c7-c6=0;"";"")))
Moeten zijn? Dus de zelfde formule maar relatie t.o.v. de postitie van de gekozen cel?

N.b je krijg wel een probleem als je in rij één of kolom A zou staan...
 
Hallo,

Het is de bedoeling dat wanneer ik die formule in cel c5 krijg dat ik deze wik kopieren naar beneden zolang mijn gegevens zijn in kolom C. In c6 zal dan staan:
=als(b5=b6;c5;als(b6-b5>0;c5+1;als(b6-b5=0;"""";""))) enz.

Mvg.

Bernard.
 
Hoi,
Wat ik eigenlijk nog wil zeggen is dat deze macro moet komen in een werkblad waar ik in kolom A gegevens heb staan over een aantal segmenten die genummerd zijn. Elk segment heeft een nummer bv:001, 002 enz. In kolom B is dit segment onderverdeeld in andere nummers bv: 1, 2, 3 enz.
In kolom A kan het zijn dat er nummers ontbreken wanneer ik deze sorteer bv: 001, 001, 005, 005 enz. DE nummers 002, 003 en 004 .ontbreken.
Het is de bedoeling dat ik via een macro deze ontbrekende nummers kan wegwerken zodat deze segmentnummers in kolom A mooi op elkaar volgen maar dan ook alweer rekening houden dat de gegevens in kolom B bij het desbetreffende segment blijven.
Via de formule die ik heb gaat het mits ik dan tussen de B en C een kolom bijzet en de formule van een ander werkblad kopieer.
 
Even een opmerking over de formule in C5.

Deze luidt:

=als(b4=b5;c4;als(b5-b4>0;c4+1;als(b5-b4=0;"";"")))

Hierin is de 1e voorwaarde eigenlijk gelijk aan de 3e voorwaarde.
(Als 2 cellen gelijk zijn is hun verschil altijd 0)

Je zou als(b5-b4=0;"";"") kunnen vervangen door:
als(b5-b4<0;"";"") ,of de hele formule vervangen door:

=als(b4=b5;c4;als(b5-b4>0;c4+1;""))
 
Hallo,

OK, bedankt voor je tip i.v.m. de formule. Ik zal ze zeker aanpassen maar ik zit nog met die macro, dus als je mij kan helpen...
Groetjes,

Bernard.
 
Bernard er zijn velen die je willen helpen.

Is het mogelijk dat je het bestand gezipt op het forum plaatst.

Het wordt dan voor ieder iets concreter.
 
Koppel de volgende code aan je knop.
De formule wordt in de actieve cel geplaats. Omdat op deze manier de verwijzingen altijd absoluut zijn laat ik aan het eind alle dollartekens verwijderen.


Sub formule()
ActiveCell.Value = "=if(" & ActiveCell.Offset(-1, -1).Address & "=" & _
ActiveCell.Offset(0, -1).Address & "," & ActiveCell.Offset(-1, 0).Address & ",if(" & _
ActiveCell.Offset(0, -1).Address & "-" & ActiveCell.Offset(-1, -1).Address & ">0," & _
ActiveCell.Offset(-1, 0).Address & "+1,if(" & ActiveCell.Offset(0, -1).Address & "-" & _
ActiveCell.Offset(-1, -1).Address & "=0," & _
Chr(34) & Chr(34) & "," & Chr(34) & Chr(34) & ")))"

'De absoluteverwijzing weghalen
ActiveCell.Replace What:="$", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False

End Sub
 
Ik heb aan het eind van de formule "" verangen door o.

De "" gaf problemen bij het doorvoeren.

Zie bijlage.
 

Bijlagen

Hallo,
Ik heb de macro in mijn werkblad gezet en ja het werkt perfect. Bedankt allemaal hiervoor.
Mvg.

Bernard.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan