Excel - Voer een macro uit wanneer gegevens in een cel worden ingevoerd

Als een gebruiker een macro in Microsoft Excel wil uitvoeren wanneer wordt gevonden dat de cel D10 is gevuld, moet de werkbladwijzigingsgebeurtenis worden gebruikt in het Excel-werkblad en niet in de module. //www.4shared.com/file/89145449/43c8c38/Change_Value_of D10.htlml is gedownload en de originele code die werd gebruikt om de macro uit te voeren is ingesteld. Het Visual Basic-pictogram van het tabblad Ontwikkelaar is geselecteerd voor Microsoft Excel-2007. Na het bekijken van het werkblad waar men wenst dat de code wordt uitgevoerd, worden Verklaringen en Algemeen verbroken en wordt het werkblad geselecteerd. Het woord 'Selectie' wordt verwijderd uit het 'Privé subwerkblad_selectie wijzigen' in het codevenster. Voor het wijzigen van de waarde in D10-cel is '$ D $ 10' het doeladres dat is ingesteld. Dit zou op zijn beurt het werkblad de gebeurtenis "Roep" de Macro maken .

  • Kwestie
  • Oplossing
  • Notitie

Kwestie

Ik heb een macro die wordt uitgevoerd wanneer de gebruiker op een knop klikt. In plaats daarvan wil ik dat de macro wordt uitgevoerd wanneer cel D10 wordt gevuld. De gegevens voor D10 komen uit een validerend gegevensvalidatie, als dat ertoe doet. Dit zou gemakkelijk moeten zijn, maar ik kan er niet achter komen.

Oplossing

U kunt uw Macro in module één houden. U moet het werkblad wijzigen gebruiken in het werkblad zelf, niet in een module. Laat het me uitleggen: ik zal een bestand leveren dat bij de uitleg hoort. In het werkblad is bereik A5: A25 vol getallen. Als u in cel D10 een numerieke waarde invoert, wordt in bereik G5: G10 gekopieerd wat zich in A5: A25 bevindt. Als u de waarde in D10 verwijdert, wordt de inhoud van bereik G5: G10 verwijderd.

//www.4shared.com/file/89145449/43c8c38/Change_Value_of_D10.html

Wat je originele code ook was om je Macro uit te voeren, zet die terug in zijn oorspronkelijke vorm.

Aangezien u Excel 2007 gebruikt, is dit wat u moet doen:

  • 1) Klik op het tabblad Ontwikkelaar.
  • 2) Klik op het Visual Basic-pictogram.
  • 3) Dubbelklik in het linkerdeelvenster op het blad waar u uw code moet uitvoeren.
  • 4) Nu, bovenaan het codevenster ziet u (Algemeen) met een vervolgkeuzelijst en (Verklaringen) met een vervolgkeuzelijst.
  • 5) Klik op de vervolgkeuzelijst op (Algemeen) en selecteer Werkblad.
  • 6) Nu in het codevenster ziet u Private Sub Worksheet_SelectionChange (ByVal Target As Range)
  • 7) Verwijder het woord "Selectie". U wilt "Selectie" verwijderen, omdat dat betekent dat wanneer u op een cel in het werkblad klikt, er iets zal gebeuren. U wilt dat niet, u wilt een waarde invoeren in D10. Het zou nu Private Sub Worksheet_Change (ByVal Target As Range) moeten lezen
  • 8) Hier wil je de code ...

 Particulier Subwerkblad_Wijzigen (ByVal-doel als bereik)

If Target.Address = "$ D $ 10" Then

Bel MyMacro

Stop als

End Sub

  • 9) Dit betekent dat wanneer u de waarde in D10 wijzigt, het werkblad-wijzigingsgebeurtenis uw Macro zal "Opbellen".

Notitie

Met dank aan WutUp WutUp voor deze tip op het forum.
Vorige Artikel Volgende Artikel

Top Tips