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

Automatisch formules invoeren in cellen

Status
Niet open voor verdere reacties.

1107972

Gebruiker
Lid geworden
5 mei 2004
Berichten
186
Hallo,

ik ben op zoek naar een macro (vba) voor een excel 2000. De macro wil ik astarten door middel van een knop in de toolbar of een sneltoets. Maar dat is niet direct het probleem.

De bedoeling van de macro is dat hij het volgende doet:

# = Betreffende Regel, met een maximum bereik van regel 15 tot en met 500

- Zoek in kolom "H"
- Als waarde is 0 -> geen actie, ga naar voglende cel in kolom "H"
- Als waarde is 1 ->

select cel "F#" en voeg in "=C# * D#",
select cel "G#" en voeg in "=C# * E#"
ga naar volgende cel in kolom "H"

- einde macro

Kort omschreven moet de macro eigenlijk de waarde van een cel in kolom H gelijk is aan 1in kolom F en G op dezelfde regel een formule invoegen.

Hoop dat het een beetje duidelijk is.

mvg Eric
 
Dag Eric

voor zoiets heb je geen VBA nodig.

Zet een Autofilter op je tabel, filter in kolom H de 1-tjes eruit.

Selecteer alle rijen in kolom F, druk op F5, Speciaal..., Zichtbare cellen.

Geef je formule 1 keer in (met relatieve verwijzingen), en druk Ctrl-Enter.

Herhaal dit voor kolom G.

Haal de filter er opnieuw af.

Wigi
 
Zoiets soortgelijks doe ik nu ook, maar ik wilde het graag in 1macro onderbrengen, ben namelijk van het type errug lui. En aangezien ik of een van mijn collega's het toch wel dagelijks een keer moeten doen dacht ik laat ik hier vragen of zoiets dergelijks mogelijk is.

Groeten Eric
 
dag eric,

als je nu eens een macro opneemt en deze dan "bewerkt", dan heb je toch wat je wil.

steven
 
dag eric,

als je nu eens een macro opneemt en deze dan "bewerkt", dan heb je toch wat je wil.

steven

Hallo Steven,

Als ik ga openemen heb ik het probleem dat het alleen werkt voor de betreffende cel die gebruikt wordt met opnemen. Wat ik wil is dat het voor alle cellen gebeurt waarvan de waarde in kolom H op dezelfde regel 1 is. Dus een soort IF functie.

En dat gedeelte is iets wat ik niet kan opnemen.

Groeten Eric
 
Ook al heeft Wigi gelijk dat je dit gewoon met de functies van Excel zelf kan afhandelen, heb ik toch een kleine start voor je gemaakt. De 'toppers' onder ons kunnen dit vast fraaier, maar 't werkt wel...:)
Code:
Sub VoegIn()
Dim Hbereik As String
Dim r As Range
    
    Hbereik = Range("H15:" & Range("H65536").End(xlUp).Address).Address
    
    For Each r In Range(Hbereik)
        If r.Value = 1 Then
                r.Offset(, -2).Formula = "=C" & r.Row & "*D" & r.Row
                r.Offset(, -1).Formula = "=C" & r.Row & "*E" & r.Row
        End If
    Next r

End Sub

Groet, Leo
 
Ook al heeft Wigi gelijk dat je dit gewoon met de functies van Excel zelf kan afhandelen, heb ik toch een kleine start voor je gemaakt. De 'toppers' onder ons kunnen dit vast fraaier, maar 't werkt wel...:)
Code:
Sub VoegIn()
Dim Hbereik As String
Dim r As Range
    
    Hbereik = Range("H15:" & Range("H65536").End(xlUp).Address).Address
    
    For Each r In Range(Hbereik)
        If r.Value = 1 Then
                r.Offset(, -2).Formula = "=C" & r.Row & "*D" & r.Row
                r.Offset(, -1).Formula = "=C" & r.Row & "*E" & r.Row
        End If
    Next r

End Sub

Groet, Leo

Thanks hga hier eens mee stoeien en kijken of ik hem kan ontleden morgen zodat ik het zelf ook ga begrijpen.
 
Dit is al genoeg:

Code:
Hbereik = "H15:" & Range("H65536").End(xlUp).Address

Zet ook aan het begin van de code

Code:
Application.ScreenUpdating = False

en op het einde

Code:
Application.ScreenUpdating = True

Het belangrijkste is dat hier een lus wordt gemaakt, terwijl de autofilter dit zelf doet. En dan gaat het normaal gezien stukken sneller. Nadeel... die code is moeilijker :(

Wigi
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan