Help!

PC-Problemen?
De vrijwilligers van Oplossing.be zoeken gratis met u mee!

Hulp bij posten

Recente topics

Auteur Topic: vba code om vba code in sheetevents te plaatsen  (gelezen 3497 keer)

0 leden en 1 gast bekijken dit topic.

Offline kneuter

  • Nieuw lid
  • Berichten: 7
  • Geslacht: Man
  • Oplossing.be
vba code om vba code in sheetevents te plaatsen
« Gepost op: 09 januari 2021, 01:15:58 »
Hallo, aan allen een voorspoedig gezond 2021 gewenst !!
Kan iemand mij helpen met het volgende probleem ? In mijn workbook zijn er ongeveer 60 sheets. Om te verhinderen dat gebruikers de copy and paste methode gebruiken wil ik in een 50-tal sheets de volgende events aanpassen:
Worksheet_activate : Application.CutCopymode = false
Worksheet_deactivate :  Application.CutCopymode = true
Worksheet_Selection_change : Application.CutCopymode = false
Om niet alle sheets separaat te moeten openen zoek ik nu code om dit te doen. De namen van de betrokken sheets lopen van 01,02,03....50.
Iemand een idee? Alvast bedankt  :)

Offline pitufo

  • Excel-Expert
  • Ambassadeur
  • *****
  • Berichten: 1.318
  • Geslacht: Man
Re: vba code om vba code in sheetevents te plaatsen
« Reactie #1 Gepost op: 09 januari 2021, 09:28:59 »
kneuter,

Welkom op oplossing.be !

Iets valt er wel te zeggen voor je plan, maar heb je er ook bij stilgestaan dat ze dan nog steeds al wat ze maar willen kunnen kopiŽren en in een ander (of nieuw) bestand kunnen plakken?
Misschien eerst even laten bezinken vooraleer eventueel uit te werken?

Groeten,
pitufo
"De computer doet wel degelijk wat je hem vraagt,
 maar NIET wat je DENKT dat je hem vraagt"

Offline Veerj

  • Lid
  • *
  • Berichten: 24
Re: vba code om vba code in sheetevents te plaatsen
« Reactie #2 Gepost op: 09 januari 2021, 11:23:42 »
Deze achter ThisWorkbook zou voldoende moeten zijn. Maar zoals pitufo al zegt, werkt het alleen voor het bestand waarin de code staat.

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
Application.CutCopyMode = False
End Sub


Offline kneuter

  • Nieuw lid
  • Berichten: 7
  • Geslacht: Man
  • Oplossing.be
Re: vba code om vba code in sheetevents te plaatsen
« Reactie #3 Gepost op: 09 januari 2021, 12:35:39 »
pitufo en Veerj, bedankt voor jullie reactie.
@pitufo : dit is inderdaad iets om over na te denken.
@Veerj : ja daar heb ik aan gedacht, maar geldt dit dan niet voor ALLE sheets? En dat is niet de bedoeling
Eigenlijk ben ik echt op zoek naar code die me toelaat dit slechts in enkele sheets aan te brengen.
Mvg,
kneuter

Offline pitufo

  • Excel-Expert
  • Ambassadeur
  • *****
  • Berichten: 1.318
  • Geslacht: Man
Re: vba code om vba code in sheetevents te plaatsen
« Reactie #4 Gepost op: 09 januari 2021, 12:49:58 »
kneuter,

In post 1 sprak je over een 50-tal sheets, nu over enkele.
Als het er letterlijk maar een paar zijn zou ik er ook de copy/paste-methode voor gebruiken, hoor.

Hierbij toch een simpel macrootje om in een module te zetten. Omdat we niet weten wat waar moeten komen ga ik uit van de situatie waarin code achter Blad1 staat en deze wordt toegevoegd aan alle andere werkbladen.
Die krijg je ongetwijfeld zelf aangepast om ervoor te zorgen dat ze enkel op door jou te kiezen werkbladen terechtkomt.
Succes !
Sub events_kopiŽren()

Application.DisplayAlerts = False
With ThisWorkbook.VBProject.VBComponents("Blad1").CodeModule
    tekst = .Lines(1, .CountOfLines)
End With
For i = 1 To Sheets.Count
    If Sheets(i).Name <> "Blad1" Then
        ThisWorkbook.VBProject.VBComponents(Sheets(i).Name).CodeModule.AddFromString tekst
    End If
Next i
Application.DisplayAlerts = True

End Sub
"De computer doet wel degelijk wat je hem vraagt,
 maar NIET wat je DENKT dat je hem vraagt"

Offline kneuter

  • Nieuw lid
  • Berichten: 7
  • Geslacht: Man
  • Oplossing.be
Re: vba code om vba code in sheetevents te plaatsen
« Reactie #5 Gepost op: 09 januari 2021, 12:58:54 »
Bedankt pitufo. Hier kan ik inderdaad mee verder.

Offline Veerj

  • Lid
  • *
  • Berichten: 24
Re: vba code om vba code in sheetevents te plaatsen
« Reactie #6 Gepost op: 09 januari 2021, 19:08:52 »
Het zou ook alsnog achter thisworkbook kunnen.
Bvb:

Nu geldt het voor alle bladen behalve voor 01
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
 If Target.Parent.Name <> "01" Then Application.CutCopyMode = False
End Sub

Of je werkt met sheet.index zodat je kan instellen vanaf welke sheetindex het moet gaan werken.
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
 If Sheets(Target.Parent.Name).Index > 1 Then Application.CutCopyMode = False
End Sub
« Laatst bewerkt op: 09 januari 2021, 19:24:27 door Veerj »

Offline kneuter

  • Nieuw lid
  • Berichten: 7
  • Geslacht: Man
  • Oplossing.be
Re: vba code om vba code in sheetevents te plaatsen
« Reactie #7 Gepost op: 10 januari 2021, 21:37:38 »
Bedankt Veerj voor je reactie. Heb zelf niet veel ervaring met die .parent maar ik zoek het uit en zal dit eens uitproberen.
Gegroet,
kneuter

Offline Veerj

  • Lid
  • *
  • Berichten: 24
Re: vba code om vba code in sheetevents te plaatsen
« Reactie #8 Gepost op: 10 januari 2021, 22:01:46 »

Offline kneuter

  • Nieuw lid
  • Berichten: 7
  • Geslacht: Man
  • Oplossing.be
Re: vba code om vba code in sheetevents te plaatsen
« Reactie #9 Gepost op: 10 januari 2021, 22:10:05 »
Veerj,
Was dit toevallig al zelf aan 't bekijken. Bedankt. Leren we weer iets nieuws! :thumbsup:

 


www.combell.com