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

Wie kan mij helpen met mijn Macro ????

Status
Niet open voor verdere reacties.

Julius

Gebruiker
Lid geworden
1 jul 2004
Berichten
85
Hallo

Ik ben bezig met een macro maar kan hem niet goed krijgen
Wie kan mij helpen


Wat wil ik

1e
Als Cel B58 veranderd wil ik graag een macro starten

Deze cellen C58 enz zijn met een Als functie gekoppeld aan B58
Deze cellen zijn voor de duidelijkheid Dan weet ik welke bladen ik gebruik enz
=ALS(B58="aanvraag A ";"Ja";"NEE")

Ondertaande makro is bedoeld om te kijken welke makro er gestart moet worden. Ten eerst krijg ik die niet aan de praat. WIE ziet hier de fout ?????


If Range("C58").Value = "JA" And _
Range("D58").Value = "Nee" And _
Range("E58").Value = "Nee" And _
Range("F58").Valeu = "Nee" And _
Range("G58").Valeu = "Nee" Then _
Application.Run "'Natuursteen china.xls'!MacroS"
Else
If Range("C58").Value = "Nee" And _
Range("D58").Value = "JA" And _
Range("E58").Value = "Nee" And _
Range("F58").Valeu = "Nee" And _
Range("G58").Valeu = "Nee" Then _
Application.Run "'Natuursteen china.xls'!MacroA"
Else
If Range("C58").Value = "Nee" And _
Range("D58").Value = "Nee" And _
Range("E58").Value = "Ja" And _
Range("F58").Valeu = "Nee" And _
Range("G58").Valeu = "Nee" Then _
Application.Run "'Natuursteen china.xls'!MacroB"
Else
If Range("C58").Value = "Nee" And _
Range("D58").Value = "Nee" And _
Range("E58").Value = "Nee" And _
Range("F58").Valeu = "JA" And _
Range("G58").Valeu = "Nee" Then _
Application.Run "'Natuursteen china.xls'!MacroC"
Else
If Range("C58").Value = "Nee" And _
Range("D58").Value = "Nee" And _
Range("E58").Value = "Nee" And _
Range("F58").Valeu = "JA" And _
Range("G58").Valeu = "Nee" Then _
Application.Run "'Natuursteen CHina.xls'!MacroD"
End If
End Sub


2e
Kan ik de makro constant laten kijken naar B 58
als deze veranderd dat hij dan ook gelijk de macro uitvoert die nodig is

WIE heeft voor mij de juiste antwoorden
(Heb een test bestand toegevoed )



De makro moet elke keer blijven werken
:evil: :evil:
 

Bijlagen

Julius,

Uw bestand komt niet overeen met uw vraag.
Om het mezelf makkelijk te maken heb ik de zaak op uw bestand getest:
Rechtsklikken op je bladtab, en kiezen voor 'programmacode weergeven'. Daar plak je volgende macro:

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("B12")) Is Nothing Then
MsgBox "Je kan de macro starten"
End If
End Sub

Meer VBA?

users.skynet.be/Onderland/Excel.htm

Luc
 
Werkt OK

Hallo Luc

De oplossing werkt OK :thumb:

Maar nu nog een vraagje :confused:

Is het mogelijk in het scherm "je kan de macro starten" 2 buttons te krijgen met "JA / Nee"
Zodat ik de keuze heb om de macro wel of niet te starten
Als ik de macro NIET start mag hij de gegevens in B12 niet veranderen

Ik hoor het graag

Gr Julius

:confused:
 
uw macro:

If msgBox("Wenst u ... te starten?", vbYesNo)= vbYes Then
'Uw macro
End If
 
Krijg hem niet aan de praat

Wat zit hier nu fout ????



If Not Intersect(Target, Range("B58")) Is Nothing Then
MsgBox ("Wil je de gegevens vervangen ???"), vbYesNo = vbYes Then
If Range("B58").Value = "Geen" Then Application.Run "MacroS"
If Range("B58").Value = "Aanvraag A" Then Application.Run "MacroA"
If Range("B58").Value = "Aanvraag B" Then Application.Run "MacroB"
If Range("B58").Value = "Aanvraag C" Then Application.Run "MacroC"
If Range("B58").Value = "Aanvraag D" Then Application.Run "MacroD"
End If
End Sub


Vr Gr Julius
 
Julius,

Rechtsklikken op je bladtab... kiezen voor programmacode weergeven, en dit plakken:


Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("B58")) Is Nothing Then
If MsgBox("Wil je de gegevens vervangen ???", vbYesNo) = vbYes Then
If Range("B58").Value = "Geen" Then Application.Run "MacroS"
If Range("B58").Value = "Aanvraag A" Then Application.Run "MacroA"
If Range("B58").Value = "Aanvraag B" Then Application.Run "MacroB"
If Range("B58").Value = "Aanvraag C" Then Application.Run "MacroC"
If Range("B58").Value = "Aanvraag D" Then Application.Run "MacroD"
End If
End If
End Sub

Luc
 
Hoi Luc

Alvast bedankt dat je mij wilt helpen
De Macro werkt maar na de vraag JA Nee
veranderd hij welk B 58 in B.v Aanvraag A

Hij neemt niet de oude instellingen aan
Heb je hier ook nog een antwoord op

Gr Julius
 
Julius,

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("B58")) Is Nothing Then
If MsgBox("Wil je de gegevens vervangen ???", vbYesNo) = vbYes Then
If Range("B58").Value = "Geen" Then Application.Run "MacroS"
If Range("B58").Value = "Aanvraag A" Then Application.Run "MacroA"
If Range("B58").Value = "Aanvraag B" Then Application.Run "MacroB"
If Range("B58").Value = "Aanvraag C" Then Application.Run "MacroC"
If Range("B58").Value = "Aanvraag D" Then Application.Run "MacroD"

Else

Range("B58").Value = 'Vul hier de waarde in die je wenst.
End If
End If
End Sub

Luc
 
Hoi

Hiet helemaal mijn bedoeling
Ik wil de vorige waarde weer terug van B58
Ik kies via menu met data valideren doordat ik dan de vraag krijg Ja/Nee heeft hij de waarde in B58 al veranderd. Nu wil ik dus de oude waarde van B58 terug

KAn dit ook ???

Gr Julius
 
Was ook aan het zoeken, maar kwam niet op de juiste listing tot ik die van Luc zag.

Volgens mij is het dit wat je bedoeld :

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("B58")) Is Nothing Then

If Range("B58").Value = "Geen" Then Application.Run "MacroS"
If Range("B58").Value = "Aanvraag A" Then Application.Run "MacroA"
If Range("B58").Value = "Aanvraag B" Then Application.Run "MacroB"
If Range("B58").Value = "Aanvraag C" Then Application.Run "MacroC"
If Range("B58").Value = "Aanvraag D" Then Application.Run "MacroD"


End If
End Sub

Als ik het op "Geen" zet word macroS uitgevoerd enz
zonder MsgBox ?

Pierre
 
Laatst bewerkt:
OOk Niet

Het voorgaande met de message box is goed
Alleen doordat ik eerst in B58 kies voor b.v Aanvraag A naar Aanvraag B (staat er nu in B58 Aanvraag B) gaat de makro lopen en komt met de Message box

Bij de vraag JA NEE wil je wel of niet de bewerking van de macro doen daat met JA alles goed

Alleen als ik Nee zeg blijft de waarde Aanvraag B staan
Deze wil ik weer terug hebben naar de vorige waarde (aanvraag A)

Nu staat het volgende al in mijn Macro
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("B58")) Is Nothing Then
If MsgBox("Wil je de gegevens vervangen ???", vbYesNo) = vbYes Then
If Range("B58").Value = "Geen" Then Application.Run "'Natuursteen china.xls'!MacroS"
If Range("B58").Value = "Aanvraag A" Then Application.Run "'Natuursteen china.xls'!MacroA"
If Range("B58").Value = "Aanvraag B" Then Application.Run "'Natuursteen china.xls'!MacroB"
If Range("B58").Value = "Aanvraag C" Then Application.Run "'Natuursteen china.xls'!MacroC"
If Range("B58").Value = "Aanvraag D" Then Application.Run "'Natuursteen china.xls'!MacroD"
Else
Range("B58").Value = ???????? Weet ik niet
End If
End If
End Sub

Wie weet het antwoord ???


Alvast bedankt
Julius
 
Julius,

De truc zit er hem in je variabele buiten de sub te declareren:

Dim strOldValue As String

Private Sub Worksheet_Activate()
strOldValue = Range("B58").Value
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
Application.EnableEvents = False
If Not Intersect(Target, Range("B58")) Is Nothing Then
If MsgBox("Wil je de gegevens vervangen ???", vbYesNo) = vbYes Then
strOldValue = Range("B58").Value
If Range("B58").Value = "Geen" Then Application.Run "MacroS"
If Range("B58").Value = "Aanvraag A" Then Application.Run "MacroA"
If Range("B58").Value = "Aanvraag B" Then Application.Run "MacroB"
If Range("B58").Value = "Aanvraag C" Then Application.Run "MacroC"
If Range("B58").Value = "Aanvraag D" Then Application.Run "MacroD"
Else
Range("B58").Value = strOldValue
End If
End If
Application.EnableEvents = True
End Sub

Zal misschien niet onmiddelijk het gewenste effect hebben. Je moet een waarde in cel B58 krijgen. Vervolgens het werkblad aktiveren... en vanaf dan werkt het wel.

Luc
 
Luc en Pierre

Hartstikke bedankt

HET WERKT VOLLEDIG en GOED :D

Misschien nog een vraag
Waar haal je de kennis van Macro vandaan
Ik wil er meer van leren maar hebben jullie een idee waar ik een goede handleiding kan vinden

GR Julius

:thumb:
 
Julius,

Mijn website al eens bekeken?

Onderland

En waar ik mijn kennis vandaan haal?
Zowat overal: boeken; internet; Help van Excel zelf; en vééééééééééééél ondervinding.

Luc
 
Macro of formule?

Hallo,

Ik heb ook een proleempje met Excel. Als je naar het bestandje wil kijken, dan kan aan de hand daarvan mijn probleem uitleggen.

Wat ik namelijk wil is:

CEL D4 is een drop-down menu. Ik wil graag dat als ik van dat drop-down menu bijvoorbeeld "Mail / Outlook / Kamerboek" selecteer, dat de waardes die in de kolom E14:E19 staan in de kolom D5:D10 worden geplaatst.

Nu wordt dit ook gedaan, maar dit is een simpele formule die nu alleen werkt bij "Mail / Outlook / Kamerboek" en bij "Netwerk", omdat ik dus maar 2 waardes kon mee geven aan de formule (true or False).

Ik zou nu ook graag willen dat kan voor "CIS Intranet" en daarna ook met de rest natuurlijk.

Is dit mogelijk met alleen een formule of moet ik er een macro voor bouwen.

Weet iemand hoe ik deze functie of macro kan bouwen?

Hiermee zou ik erg geholpen zijn.


Alvast bedankt.

Gegroet,

Jeffrey.
 

Bijlagen

Jeffrey,

Deze formule in D5 (en doortrekken)

=VERT.ZOEKEN(B5;$D$13:$P$19;VERGELIJKEN($D$4;$B$14:$B$28;0)+1;ONWAAR)

Luc
 
Wow,

thanx luc.
ik moest nog een kleine aanpassing doen, want ik heb de engelse versie van office. Het was dus even zoeken welke functies het in het engels zijn, maar het is helemaal gelukt.

Hartstikke bedank en misschien tot de volgende keer.

Gegroet,

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