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

Makro starten bij wijziging cel

Status
Niet open voor verdere reacties.

rob91

Gebruiker
Lid geworden
10 okt 2008
Berichten
198
hallo,

Ik heb een bestandje met de namen, geboortedata en datum in dienst enz.
Nu zou ik graag zien dat als er een nieuwe naam toegevoegd wordt dat dan de vraag komt
Verlofkaart aanmaken?

Dus als in kolom A een waarde toegevoegd wordt dat dan in kolom H de keuzevraag komt en dat bij Ja de makro gestart wordt (die een nieuwe kaart adh van een sjabloon) aanmaakt.

Hoe pak ik dit aan??
 

Bijlagen

Dat kan bijvoorbeeld met de change event
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim bAntwoord As Boolean
    If Target.Column = 2 Then
        bAntwoord = MsgBox("Nieuwe verlofkaart aanmaken?", vbOKCancel)
    End If
        If bAntwoord Then MsgBox "nieuwe kaart nu aanmaken"
End Sub

Dit is maar een simpel voorbeeld om op gang te komen.

mvg leo
 

Bijlagen

Laatst bewerkt:
Leo,

Bedankt voor deze oplossing.

Hier kom ik al weer wat verder mee.
Nu nog (met mijn zeer beperkte kennis van code) zien aan te passen aan mijn wensen.

Daar ga ik morgen aan werken; voor vandaag is het genoeg.

Nogmaals alvast bedankt.

Rob :):thumb:
 
:shocked:

Ik kom er toch nog niet uit, want ik kan weinig terugvinden over het gebruik van een "msgbox" anders dan een tekst laten zien.
In mijn geval moet het een keuze zijn tussen ja en nee. (Ok en Cancel)

Hoe kan ik nu het verschil aangeven tussen Ok en Cancel.
Bedoeling is bij Ok dat de macro gestart wordt en bij Cancel natuurlijk niet.

Wie helpt mij een beetje verder?
 
Rob, plak volgende code in het werkblad waar de tabel staat

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim response
    If Target.Column = 1 Then
        response = MsgBox("Nieuwe verlofkaart aanmaken?", vbOKCancel)
            If response = vbOK Then
                ' jouw code voor de sjabloon te starten
    End If
End Sub

Mvg

Rudi
 
Er moet nog een End IF bij.:thumb:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim response
    If Target.Column = 1 Then
        response = MsgBox("Nieuwe verlofkaart aanmaken?", vbOKCancel)
            If response = vbOK Then
                ' jouw code voor de sjabloon te starten
[COLOR="Red"][B]            End If  [/B][/COLOR]
    End If
End Sub

Met vriendelijke groet,


Roncancio
 
Wanneer je toch met vba aan de gang bent zijn de gratis mz-tools erg handig.
Die zijn behulpzaam op veel verschillende manieren.
oa ook bij het bouwen van een messagebox.
In het kort is de truc dat je het antwoord afvangt in een variabele
Dus bAntwoord = msgbox "voorbeeld"
Zie de eerdere code voorbeelden..

Ik kan helaas niet zo snel een goede nederlandse link vinden, maar hier is uitleg in het engels
 
Laatst bewerkt:
Heren,

Bedankt voor alle support;het is gelukt! :)

Ik wil toch nog even laten zien wat ik er van gebakken had,maar niet werkte.
Dit om even na te gaan waar het mis ging.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim bAntwoord As Boolean
If Target.Column = 7 Then
bAntwoord = MsgBox("Nieuwe verlofkaart aanmaken?", vbOKCancel)
End If
If bAntwoord = vbCancel Then
Exit Sub
End If
If bAntwoord = vbOK Then
Workbooks.Add Template:= _
"C:\Documents and Settings\Rob\Application Data\Microsoft\Sjablonen\verlofurenkaart.xlt"
End If
End Sub

Wat ik begrijp is dat ik Cancel eigenlijk niet verder in de code hoef mee te nemen,maar alleen OK en wat er dan moet gebeuren.

Kan ik de waarde (personeelsnummer) uit dezelfde regel in kolom 1 meenemen naar het nieuw te openen bestand naar cel [werknemer]?????
 
Kortom:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Column = 7 Then
    if  MsgBox("Nieuwe verlofkaart aanmaken?", vbOKCancel)= vbOK Then Workbooks.Add C:\Documents and Settings\Rob\Application Data\Microsoft\Sjablonen\verlofurenkaart.xlt"
  End If
End Sub
 
De oplossing voor de msgbox is duidelijk. Deze heb ik werkend.

Maar als aanvullende vraag had ik nog dat ik graag van de actieve regel de waarde uit de
1e kolom mee wil nemen naar mijn nieuwe verlofkaart naar het veld werknemer.

Ziet iemand hier nog mogelijkheden?? :shocked::rolleyes:
 
Je kan de celwaarde opvragen met cells.value en weer zetten in de door jouw gewenste cel.
Kolom is 1, dat is bekend
De rij vraag je op met target.row

iRij=target.row
cells(doel).value =cells(iRij,1).value
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan