• 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 automatisch laten starten aan de hand van celwaarde

Status
Niet open voor verdere reacties.

universe

Gebruiker
Lid geworden
6 feb 2007
Berichten
99
allereerst goedendag iedereen die deze topic leest en alvast bedankt dat er zowiezo naar gekeken wordt:thumb:

Mijn vraag is :
Ik wil een macro laten opstarten als een cel een bepaalde waarde krijgt, dat lukt me wel. Maar nu is het probleem dat het getal in de cel geen absoluut getal is, maar de uitkomst van een formule. en hierdoor werkt de hele functie niet, omdat de uitkomst van de formule geen absoluut getal is.

Heeft iemand een oplossing voor dit probleem??

(mocht dit verhaal niet duidelijk genoeg zijn, laat me het even weten :) )
 
ik maak gebruik van 3 drop down boxes de teksten die daarin staan, zijn gekoppeld aan getallen en komen samen in een cel met de volgende formule :

=VLOOKUP(I1,keuze_kans2,2,0)*VLOOKUP(J1,keuze_ernst2,2,0)*VLOOKUP(K1,keuze_ontdekking2,2,0)

keuze_kans2,keuze_ernst2 en keuze_ontdekking2 zijn de namen van de bronnen voor de dropdown menu's.

De bedoeling is dat de cel waar de formule instaat rood wordt als de waarde 8 of hoger is, en dat hij bepaalde tekst invoerd in de naastliggende cellen als de waarde lager is dan 8.

Nu heb ik al wel wat met Worksheet_Change dingen gewerkt, dit werkt alleen als het absolute getallen zijn en blijkbaar niet met een uitkomst van een formule.

En het belangrijkste van dit alles is dat het flexibel moet blijven omdat dit een template is die in veel documenten gebruikt gaat worden.:rolleyes:
 
Ik kan perfect volgen, maar denk toch dat het ook moet lukken als er een formule in de cel staat. Geef eens de code van het Worksheet_Change event.
 
hoe kun je een file uploaden, misschien is dat nog wat duidelijker ;)
 
hoe kun je een file uploaden, misschien is dat nog wat duidelijker ;)

Eerst zippen met bv. Winzip, vervolgens antwoorden op je eigen bericht en je zal een knop zien staan om een attachment bij te voegen.
 
Code:
Target.Address = "$L$3"

Moet het niet L1 zijn?

Ook moet de code van het event achter het werkblad komen te staan waar je dat event wilt laten uitvoeren. Dus niet de code in ThisWorkbook zetten (tenzij het voor elke L3 in je bestand moet gebeuren).

Wigi
 
wat de bedoeling is dat men een keuze uit de dropdownboxes maakt en als het getal wat eruit komt groter is dan 8, dan wordt de cel met het getal rood en anders worden al die achterliggende cellen gevuld met het woordje NAP.
het werkboek heeft 2 sheets, 1 werk sheet en andere sheet bevat de informatie om bijvoorbeeld extra rijen in te voegen etc. (check de andere macro's eventueel ook maar)

en deze template wordt strax in verschillende andere werkboeken ingevoegd.

mocht er iets nog onduidelijk zijn, geef het alsjeblieft aan. breek mn hoofd al 2 dagen over dit stomme probleem.:evil:

macro doet t wel als je zelf het getal in de cel typt, maar niet als je het getal tevoorschijn laat komen door de keuzeboxen te gebruiken.

alvast bedankt voor je hulp zover :thumb:
 
Plaats dit in de code achter Sheet2:

Code:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
    With Target
        If Not Intersect(.Range("A1"), Range("I1:L1")) Is Nothing Then
            If Range("L1").Value <= 7 Then
                Range("L1").Offset(0, 1).Resize(1, 11) = "Nap"
                Range("I1").Select
            End If
        End If
    End With
End Sub

Doe de code in ThisWorkbook weg.

Wigi
 
ik denk dat ik jou code iets aan moet passen omdat hij 2 cellen over moet slaan waar 2 formules in staan.

maar in ieder geval heel erg bedankt, ik ga er eens even mee aan de gang.

ik laat weten of het werkt of niet

thx anyway:D
 
ik kan je wel zoenen ;) , ik heb hem nog ff iets naar mijn wens aangepast en hij werkt nu helemaal. nu heb ik nog 1 klein verzoekje :o , hoe kan ik het maken dat hij net zo makkelijk alle nap's weghaalt als het getal weer boven 8 komt. ik weet dat ik met een else moet werken, maar niet precies hoe.

en btw. dit is het eerst project in excel/vba dat ik heb gedaan, ziet het er een beetje uit ? :rolleyes:

maar in ieder geval heeeeeel erg bedankt:thumb: :thumb: :thumb:
 
ik kan je wel zoenen ;) nu heb ik nog 1 klein verzoekje

Ik ook trouwens: mij niet zoenen :D Tenzij je van het vrouwelijke geslacht bent.


hoe kan ik het maken dat hij net zo makkelijk alle nap's weghaalt als het getal weer boven 8 komt. ik weet dat ik met een else moet werken, maar niet precies hoe.

Code:
Range("M1").Resize(1,11).Replace What:="Nap", Replacement:="", LookAt:=xlWhole

Pas nog wat lichtjes aan voor de juiste cellen.

en btw. dit is het eerst project in excel/vba dat ik heb gedaan, ziet het er een beetje uit ? :rolleyes:

Als een Worksheet_Change event het eerste is wat je doet in VBA, dan heb je nog een mooie VBA toekomst voor jou. Zeker weten.

Wigi
 
kheb het nu allemaal werkende in sheet 2, maar hoe krijg ik het ook werkende in de hoofdsheet? want de 1e rij in sheet2 wordt met de macro"rij invoegen" gekopieerd en geplakt in de hoofdsheet.

en daar werkt het nog niet.
 
en ik ben achter nog iets gekomen, als er nog niks in de keuze vensters staat geeft hij een foutmelding... nog een idee om dat op te lossen?
 
en ik ben achter nog iets gekomen, als er nog niks in de keuze vensters staat geeft hij een foutmelding... nog een idee om dat op te lossen?

Code:
=ALS(OF(I1="";J1="";K1="");"";VERT.ZOEKEN(I1;keuze_kans2;2;0)*VERT.ZOEKEN(J1;keuze_ernst2;2;0)*VERT.ZOEKEN(K1;keuze_ontdekking2;2;0))
 
kheb het nu allemaal werkende in sheet 2, maar hoe krijg ik het ook werkende in de hoofdsheet? want de 1e rij in sheet2 wordt met de macro"rij invoegen" gekopieerd en geplakt in de hoofdsheet.

en daar werkt het nog niet.

Zoiets?

Code:
Sub Rij_add()
'
' rij_add Macro
' Macro recorded 31-1-2007 by peelerx
'
vTeller = 0
Dim vInputgetal As Integer
    vInputgetal = InputBox("Hoeveel rijen wilt u invoegen ?", "Abbot Zwolle Beslisboom")
    Do
        vTeller = vTeller + 1
        ActiveCell.Offset(1).Insert xlDown
        Sheets("Sheet2").Rows("1").Copy ActiveCell.EntireRow
    Loop Until vTeller = vInputgetal
End Sub

Wigi
 
dit is de code die er al staat

Code:
Sub Rij_add()
'
' rij_add Macro
' Macro recorded 31-1-2007 by peelerx
'
vTeller = 0
Dim vInputgetal As Integer

    vInputgetal = InputBox("Hoeveel rijen wilt u invoegen ?", "Abbot Zwolle Beslisboom")
    
    
   
    
    Do
    
        vTeller = vTeller + 1
    
    Sheets("Sheet2").Select
    Range("1:1").Select
    Selection.Copy
    Sheets("B.B. nieuw met macro").Select
    ActiveCell.Offset(1, 0).Select
    Selection.Insert Shift:=xlDown
    ActiveSheet.Paste
        
        
    Loop Until vTeller = vInputgetal
    
    Application.CutCopyMode = False
    ActiveCell.FormulaR1C1 = ""


End Sub

dit is de code die je mij gaf

Code:
Sub Rij_add()
'
' rij_add Macro
' Macro recorded 31-1-2007 by peelerx
'
vTeller = 0
Dim vInputgetal As Integer
    vInputgetal = InputBox("Hoeveel rijen wilt u invoegen ?", "Abbot Zwolle Beslisboom")
    Do
        vTeller = vTeller + 1
        ActiveCell.Offset(1).Insert xlDown
        Sheets("Sheet2").Rows("1").Copy
        ActiveCell.EntireRow
    Loop Until vTeller = vInputgetal
End Sub

om 1 of andere reden voegt hij geen rijen in. heb het idee dat hij ergens niet goed kopieerd en paste.
 
hij voegt wel weer gewoon de rij in, maar neemt dat systeem van van die nap'jes niet mee :( :( enig idee hoe dat komt?
 
Voeg eens het meeste recente bestandje bij, met alle wijzigingen tot nu toe erin verwerkt. Geef duidelijk aan waar het nog niet werkt.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan