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

kopieren van vba code met vba

Status
Niet open voor verdere reacties.

ikselle

Gebruiker
Lid geworden
25 mei 2009
Berichten
198
Hoe kan je vba-code onder worksheet_change van een worksheet kopieren naar andere reeds bestaande worksheets ?
 
@VenA bedankt dat je opnieuw reageert en wat jij aankondigt lijkt me inderdaad evident. Maar hoe raar het ook mag klinken en hoeveel macro's ik reeds heb opgenomen, hier lukt het mij niet ! Er verschijnt een macro x maar zonder code.
Dus voor alle duidelijkheid : ik wil de code van blad1_change kopieren naar blad2_change.
 

Bijlagen

  • vba_voorwaardelijk3.xlsm
    21,6 KB · Weergaven: 28
Laatst bewerkt:
Dat kan hiermee:
Code:
Sub KopieerBladCode()
    Dim Bron As CodeModule, Doel As CodeModule
    
    Set Bron = ThisWorkbook.VBProject.VBComponents("Blad1").CodeModule
    Set Doel = ThisWorkbook.VBProject.VBComponents("Blad2").CodeModule
    Doel.AddFromString Bron.Lines(1, Bron.CountOfLines)
End Sub

Je moet wel even een reference zetten naar "Microsoft Visual Basic for Applications Extensibility 5.x"
En in het Vertrouwenscentrum moet je bij Macro's "Toegang tot het VBA project vertrouwen" aan zetten.
 
Laatst bewerkt:
@edmoor,

Zoals je weet is mijn website een raadpleegwebsite.
Er gebeurt niets met cookies of andere interaktieflauwekul.
Oxilion is de provider die een certifikaat heeft voor alle websites.
Je kunt mijn website zonder enige bedenking als 'veilig' (want wat is onveilig aan raadplegen) markeren.

Gegroet,
 
Laatst bewerkt:
Dat weet ik.
Ik wilde het je alleen even laten weten :)
 
ipv in meerdere/alle bladen die change_event te kopieëren, kan je dat ook in thisworkbook doen.
Bovendien kan je daar ook bepalen op welke bladen die event wel of niet mogen werken.
Code:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
 
@snb jouw site ken ik uiteraard maar aan sommige items ben ik nog niet aan toe ofwel gaan ze ronduit boven mijn petje. Alleszins bedankt voor jouw reactie en je verwijzing
@VenA nogmaals bedankt voor de suggestie
@cow18 goed om te weten. Heb het misschien in de toekomst nodig. Bedankt.
@edmoor wat jij tevoorschijn toverde was subliem al moet ik zeggen dat het in den beginne Chinees leek. Door te googelen vond ik een manier om de reference te zetten naar "Microsoft Visual Basic for Applications Extensibility 5.x" en .... alles werkt zoals ik wou. Bedankt !:thumb:
Voor de anderen hier de code :
Code:
Sub Add_VBE_ObjectLibrary()
  On Error Resume Next
  'Adding VBE object library (Microsof Visual Basic Extensibility 5.3)
  ActiveWorkbook.VBProject.References.AddFromGuid "{0002E157-0000-0000-C000-000000000046}", 0, 0
End Sub
 
Graag gedaan.
Toch vind ik de methode die cow18 aangeeft beter.
 
Nee, daar gaat het zonder die certificaat melding.
 
Je nieuwe link geeft aan "Niet Beveiligd" in de adresbalk.
Het zou mogelijke bezoekers afschrikken.
 
Sorry. Te vroeg gekraaid ... de code doet het niet wanneer ik die in mijn normaal bestand overbreng, terwijl die het wel deed in mijn laatst bijgevoegd bestand. Misschien kan ik dan toch beter de code van cow18 gebruiken.
Kan er iemand die misschien iets meer toelichten op basis van wat er nu in mijn change_event staat?
 
Dan zal iets in dat bestand toch anders zijn waarop de code moet worden aangepast.
Je bestaande code kan je zo verplaatsen naar de ThisWorkbook sectie:
Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)

Je hebt dan het object sh tot je beschikking met informatie over het werkblad waar het event plaatsvond.
 
Laatst bewerkt:
Heb hier aangepast bestand bijgevoegd ter verduidelijking. Waarom krijg ik de naam van de sheet niet te zien wanneer ik van sheet verander ?
 

Bijlagen

  • vba_voorwaardelijk4.xlsm
    21,8 KB · Weergaven: 33
De code wordt niet uitgevoerd als je van sheet verandert maar als er iets verandert op een sheet.
Het is dus een worksheet_change event voor alle werkbladen.
 
Laatst bewerkt door een moderator:
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan