Toon posts:

[excel] Macro starten mbv een formule.

Pagina: 1
Acties:
  • 4.901 views sinds 30-01-2008
  • Reageer

  • SideBuster
  • Registratie: Februari 2001
  • Laatst online: 07-01 19:59

SideBuster

Deka Dirk AH Yeah Vomar Ald!!!

Topicstarter
Ik heb een macro in mijn sheet staan deze werd altijd gestart door een knop in te drukken. Nu zou het makkelijer zijn wanneer de macro gestart wordt als er een waarde in een bepaalde cel is ingegeven en daarna op Enter (of een andere enkele toets) wordt gedrukt.

Is dit uberhaubt mogelijk?

V*k voor de frisdrank daar op de hoek... | Specs


  • Schonhose
  • Registratie: April 2000
  • Laatst online: 25-03 23:02

Schonhose

Retro Icoon

Ja, maar dan moet je werken met het volgende:

Visual Basic:
1
2
3
Private Sub Worksheet_Change(ByVal Target As Range)
   StartMacro '(Vul hier je eigen macro in)
End Sub


Deze moet je plaatsen door in de vba project editor te klikken op de sheet (sheet1) met de rechtermuisknop en dan op code. Daar moet ie dus staan (in de code van je sheet. Dus niet in een module!)

Nu wordt elke keer dat je wat veranderd in je sheet de macro gestart. Je kunt eventueel in de sub ook nog een restrictie toepassen dat die verandering in een bepaalde range moet liggen (bijv. alleen kolom C). Als je daar niet uitkomt wil ik het wel even uitleggen.

"The thing under my bed waiting to grab my ankle isn't real. I know that, and I also know that if I'm careful to keep my foot under the covers, it will never be able to grab my ankle." - Stephen King
Quinta: 3 januari 2005


  • SideBuster
  • Registratie: Februari 2001
  • Laatst online: 07-01 19:59

SideBuster

Deka Dirk AH Yeah Vomar Ald!!!

Topicstarter
Ah ok.. het is de bedoeling dat een bepaalde macro alleen gestart wordt als er in een bepaalde cel iets veranderd wordt.

V*k voor de frisdrank daar op de hoek... | Specs


  • Schonhose
  • Registratie: April 2000
  • Laatst online: 25-03 23:02

Schonhose

Retro Icoon

Visual Basic:
1
2
3
4
5
Private Sub Worksheet_Change(ByVal Target As Range)
   if ActiveCell.Address = "$A$1" then
       StartMacro '(Vul hier je eigen macro in)
   end if
End Sub


Nu kijkt ie naar de active cell en vergelijkt deze met het adres wat je opgeeft. In dit geval dus A1 (let niet op de $ tekens dat moet helaas....). Indien hij daar aan voldoet (er wordt wat veranderd in A1 dan start de macro. Anders stopt ie gewoon en doet ie niets.

Voer nu je eigen cell in maar wel met de $ tekens.......

"The thing under my bed waiting to grab my ankle isn't real. I know that, and I also know that if I'm careful to keep my foot under the covers, it will never be able to grab my ankle." - Stephen King
Quinta: 3 januari 2005


  • KeeZ
  • Registratie: Februari 2001
  • Laatst online: 25-04-2022

KeeZ

Deze plek is te koop.

Visual Basic .NET:
1
2
3
4
5
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
 If Target(1, 2) = "3" Then
  MsgBox ("woei!!")
 End If
End Sub


zo werkt het wel... bij mij tenmiste ;)

[Voor 73% gewijzigd door KeeZ op 13-02-2003 14:35]

Deze plek is te koop.


  • henkleerssen
  • Registratie: December 2000
  • Niet online

henkleerssen

Your life is as you narrate it

Visual Basic:
1
2
3
4
5
Private Sub Worksheet_Change(ByVal Target As Range)
   if ActiveCell.Address(FALSE,FALSE) = "A1" then
       StartMacro '(Vul hier je eigen macro in)
   end if
End Sub


Zo kan het ook nog.. :p

  • SideBuster
  • Registratie: Februari 2001
  • Laatst online: 07-01 19:59

SideBuster

Deka Dirk AH Yeah Vomar Ald!!!

Topicstarter
Ik krijg een compileer fout: Sub of Funtion is niet gedefieerd

Download hem anders maar even.
http://www.froeling.net/downloads/Dartscore.zip

Het is de bedoeling dat bij het veranderen van cel J7 de macro "speler01_ok" gaat lopen en bij het veranderen van cel N7 de macro "speler02_ok" gaat lopen.

[Voor 67% gewijzigd door SideBuster op 13-02-2003 14:47. Reden: Link added]

V*k voor de frisdrank daar op de hoek... | Specs


  • Schonhose
  • Registratie: April 2000
  • Laatst online: 25-03 23:02

Schonhose

Retro Icoon

Het moest dit zijn na testen:

Visual Basic:
1
2
3
4
5
6
7
8
9
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim SelectedCell As String
    SelectedCell = Mid$(ActiveCell.Address, 2, 1) & Right$(ActiveCell.Address, 1) - 1
   If SelectedCell = "J7" Then
       speler01_ok
   ElseIf SelectedCell = "N7" Then
       speler02_ok
   End If
End Sub

en dat allemaal omdat je na het invoeren van de cell op enter drukt waardoor hij 1 cel naar beneden gaat. Hiervoor moet je corrigeren.

Je kunt het downloaden.

Hoop alleen dat dit is wat je wou. >:)

"The thing under my bed waiting to grab my ankle isn't real. I know that, and I also know that if I'm careful to keep my foot under the covers, it will never be able to grab my ankle." - Stephen King
Quinta: 3 januari 2005


  • SideBuster
  • Registratie: Februari 2001
  • Laatst online: 07-01 19:59

SideBuster

Deka Dirk AH Yeah Vomar Ald!!!

Topicstarter
ah coolio die is wat ik zocht...
many thanx!!

V*k voor de frisdrank daar op de hoek... | Specs


  • henkleerssen
  • Registratie: December 2000
  • Niet online

henkleerssen

Your life is as you narrate it

wat is er mis met:
Visual Basic:
1
2
3
4
5
6
7
Private Sub Worksheet_Change(ByVal Target As Range)
   If Target.Address(False, False) = "J7" Then
       speler01_ok
   ElseIf Target.Address(False, False) = "N7" Then
       speler02_ok
   End If
End Sub

??

ff tussendoor... veel recorded macro stuff... eerst Range("J7").Select en dan Selection.Copy ? duh...

  • Schonhose
  • Registratie: April 2000
  • Laatst online: 25-03 23:02

Schonhose

Retro Icoon

Helemaal niets ware het niet dat je na het invoeren van de cell op enter drukt waardoor hij 1 cel naar beneden gaat. Hiervoor moet je corrigeren.

En ik ben zo lui om mijn eigen code te gebruiken, maar er zijn meerdere wegen naar Rome. >:)

Dat er veel record-macro spul instond viel mij ook al op :X Volgens mij kan die code efficienter. :X

"The thing under my bed waiting to grab my ankle isn't real. I know that, and I also know that if I'm careful to keep my foot under the covers, it will never be able to grab my ankle." - Stephen King
Quinta: 3 januari 2005

Pagina: 1


Tweakers maakt gebruik van cookies

Tweakers plaatst functionele en analytische cookies voor het functioneren van de website en het verbeteren van de website-ervaring. Deze cookies zijn noodzakelijk. Om op Tweakers relevantere advertenties te tonen en om ingesloten content van derden te tonen (bijvoorbeeld video's), vragen we je toestemming. Via ingesloten content kunnen derde partijen diensten leveren en verbeteren, bezoekersstatistieken bijhouden, gepersonaliseerde content tonen, gerichte advertenties tonen en gebruikersprofielen opbouwen. Hiervoor worden apparaatgegevens, IP-adres, geolocatie en surfgedrag vastgelegd.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Toestemming beheren

Hieronder kun je per doeleinde of partij toestemming geven of intrekken. Meer informatie vind je in ons cookiebeleid.

Functioneel en analytisch

Deze cookies zijn noodzakelijk voor het functioneren van de website en het verbeteren van de website-ervaring. Klik op het informatie-icoon voor meer informatie. Meer details

janee

    Relevantere advertenties

    Dit beperkt het aantal keer dat dezelfde advertentie getoond wordt (frequency capping) en maakt het mogelijk om binnen Tweakers contextuele advertenties te tonen op basis van pagina's die je hebt bezocht. Meer details

    Tweakers genereert een willekeurige unieke code als identifier. Deze data wordt niet gedeeld met adverteerders of andere derde partijen en je kunt niet buiten Tweakers gevolgd worden. Indien je bent ingelogd, wordt deze identifier gekoppeld aan je account. Indien je niet bent ingelogd, wordt deze identifier gekoppeld aan je sessie die maximaal 4 maanden actief blijft. Je kunt deze toestemming te allen tijde intrekken.

    Ingesloten content van derden

    Deze cookies kunnen door derde partijen geplaatst worden via ingesloten content. Klik op het informatie-icoon voor meer informatie over de verwerkingsdoeleinden. Meer details

    janee