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

Kopieëren tabblad

Status
Niet open voor verdere reacties.
Bram,

Misschien heb je mijn uitleg niet begrepen en ben ik niet duidelijk genoeg geweest.

Het tabblad Hoofdmenu heb jij beveiligd maar de macro liep daar op stuk omdat op een beveiligde sheet niet gekopieerd kan worden.
Dat is gefixed en daarvoor wordt deze sheet eerst vrij gezet en daarna weer beveiligd, dit gebeurd met de macro.
Sheet Mengen wordt niet beveiligd door de macro.
Wanneer je nu het programma opent verschijnt een login venster.
Om verder te kunnen de beide velde in vullen en op OK drukken.
Bram, Bram is een ID en een WW (zo ook Piet, Piet en KLaas, Klaas)
Deze staan op de sheet Info vermeld.

Tevens heb ik jouw probleem ontdekt.
Wanneer je het programma nu draait loopt de macro weer vast en dat komt de beveiliging op het VBA project.
Hierdoor kun je geen nieuwe module aanmaken.
IK heb de beveiliging eraf moeten halen want deze is niet zo simpel met een code op te heffen en er weer terug op te zetten.

Zijn er nog vragen dan verneem ik die graag.

Bijgevoegd een werkend voorbeeld.

Grtz.
 

Bijlagen

Rudi,

Ik heb het bestand ontvangen en de VBA doorgespit, maar het behoeft nog even wat uitleg.

Misschien zie ik iets over het hoofd of doe ik iets verkeerd.
Ik geef een naam in en een ww maar ik kom niet verder.

Jouw VBA wordt die beveiligd met deze login of wat moet ik ervan verwachten.

Grtz.
 
Superzeeuw weer bedankt!

Op dit moment heb ik een probleem wat nu even belangrijker is dan de beveiliging. Ik heb je code(zonder het gedeelte van de beveiliging) in mijn worksheet meerdere malen gebruikt, en ook meerdere infobladen aangemaakt. Bij deze infobladen heb ik in b2 respectievelijk een nummer ingevoerd: 100, 200, 300, 400, 500 en 600. Dit heb ik gedaan om de modelunummer overzichtelijk te houden. Als ik dan via de knop een sheet in ga voeren krijg ik bij sommige namen de volgende foutmelding:
De macro "ingevoerde naam" kan niet worden uitgevoerd. De macro is wellicht niet beschikbaar in het werkboek of alle macro's zijn mogelijk uitgeschakeld.

Als ik dan bij macro's kijk zie ik dat de naam van de macro ook anders is:
module500"ingevoerde naam".

Heeft iemand een idee waar deze foutmelding vandaan komt?


groeten Bram!
 
Laatst bewerkt:
Hm er zit denk ik echt een foutje in de code, zojuist maakte hij even helemaal geen nieuwe module aan, toen ik excel opnieuw opstarte deed hij het weer. Mischien ligt het aan het gedeelte van macro file? En is een hyperlink ipv knop daar geen oplossing voor?
Jij bent de expert:D

Edit: Mischien dat andere gebruikers er ook eens naar willen/ kunnen kijken, zodat ik superzeeuw niet steeds lastig hoef te vallen! Dit is de code die gebruikt word:


Sub Newsoorten()
MacroFile = "C:\Bram.dat"
Naam = InputBox("Geef NAAM nieuwe tabblad in: ")
For sh = 1 To Worksheets.Count
If UCase(Naam) = UCase(Sheets(sh).Name) Then MsgBox "Deze naam is reeds in gebruik, probeer nogmaals.": Exit Sub
Next sh
If Naam = "" Then Exit Sub
If InStr(Naam, "\") <> 0 Or _
InStr(Naam, "/") <> 0 Or _
InStr(Naam, "[") <> 0 Or _
InStr(Naam, "]") <> 0 Then MsgBox "U heeft een ongeldig karakter opgegeven, gebruik alleen text.": Exit Sub
Application.ScreenUpdating = False
Knopjes = Sheets("Allesoorten").Range("B1").Value
Volgnummer = Sheets("Allesoorten").Range("B2").Value
On Error Resume Next
Kill (MacroFile)
On Error GoTo 0
MyFile = MacroFile
fnum = FreeFile()
Open MyFile For Output As fnum
Print #1, "Attribute VB_Name = ""Module" & Volgnummer & ""
Print #1, "Sub " & Naam & "()"
Print #1, "Attribute " & Naam & ".VB_ProcData.VB_Invoke_Func = "" \n14"""
Print #1, " Sheets(""" & Naam & """).Select"
Print #1, " Range(""B6"").Select"
Print #1, "End Sub"
Close #fnum
Application.VBE.ActiveVBProject.VBComponents.Import (MacroFile)
Kill (MacroFile)
ActiveSheet.Shapes("Tekstvak 1").Select
Links = Selection.Left
Boven = Selection.Top
Selection.Copy
Range("B17").Select
ActiveSheet.Paste
Selection.ShapeRange.IncrementTop 34 * Knopjes
Selection.Characters.Text = Naam
Selection.OnAction = Naam
Range("B17").Select
Sheets("Template soorten").Copy Before:=Sheets("Template soorten")
Sheets("Template soorten (2)").Name = Naam
Sheets(Naam).Visible = True
Sheets("Alle").Range("B1").Value = Knopjes + 1
Sheets("Allesoorten").Range("B2").Value = Volgnummer + 1
Application.ScreenUpdating = True
Sheets(Naam).Select
Range("B6").Value = Naam
End Sub
 
Laatst bewerkt:
Bram,

Als je, voor jou, aan zo'n complexe macro wilt gaan sleutelen dan moet je wel weten wat je doet.
Het programma is werkend opgeleverd en nu help je hem zelf om zeep.

In de code ontbreken een aantal belangrijke regels en in je verhaal maak je niet duidelijk wat je gedaan hebt. Je begrijpt een aantal fundamentele zaken in de macro niet.

Hier heb ik het de vorige keer ook over gehad, wat je krijgt ga je compleet aanpassen zonder te weten wat je doet en gaat dan vervolgens kijken of een ander jou er weer weet uit te trekken.

Jammer, gemiste kans.
Stel niet iedere keer je doel bij, blijf bij je punt rond het af en ga dan pas weer verder en probeer niet om drie dingen tegelijk op te lossen, los het op per probleem.

Grtz.
 
Superzeeuw,
Vanwaar deze reactie? Jij geeft een goed werkend "product" aan de hand van een voorbeeld wat ik heb gegeven, werkt super en heb ik echt wat aan. De volgende stap is dan zoals je vast zelf wel begrijpt om deze te implementeren in zijn echte bestemming. Anders heb ik er natuurlijk nog niks aan. Ik ben hier een poos druk mee geweest, en omdat mijn kennis van VBA niet afdoende was heb ik dit gedaan door middel van 'trial and error'. Bij mijn weten heb ik alleen dingen veranderd die voorbeel gerelateerd zijn, dus die ik naar eigen wens kan aanpassen. Nu is me dat bijna gelukt, dacht ik, en vraag ik wat er dan toch nog fout is en dan zeg je dat ik niet aan de code moet zitten omdat het dan niet goed gaat.
Begrijp me niet verkeerd, ik ben heel erg blij met je input, maar als er helemaal niks aan kan veranderen dan heb ik er, bot gezegd, niks aan.

(het veranderen van Superzeeuw.dat heb ik alleen gedaan om even te kijken wat er dan gebeurt, ik probeer het namelijk te snappen)

Groeten
 
Bram,

Sorry voor mijn reactie en inderdaad ik heb het anders opgepakt.:confused:
Je had het al uitgelegd dat je formulering niet altijd juist is.:)

Ik vindt het helemaal niet erg om je te helpen en ik wil je best verder helpen met het implementeren.:thumb:

Ik zal eraan denken de volgende keer.:thumb:

Bijgevoegd een progje met uitleg in de macro.

Grtz
 

Bijlagen

En voor hen die geen Excel 2007 hebben ?;)
Of wil jij hier cavalier seul spelen:p

Mvg

Rudi
 
Laatst bewerkt:
Bram,

Sorry voor mijn reactie en inderdaad ik heb het anders opgepakt.:confused:
Je had het al uitgelegd dat je formulering niet altijd juist is.:)

Ik vindt het helemaal niet erg om je te helpen en ik wil je best verder helpen met het implementeren.:thumb:

Ik zal eraan denken de volgende keer.:thumb:

Bijgevoegd een progje met uitleg in de macro.

Grtz

Superzeeuw,
Dat is geen enkel probleem, fijn dat je het zo goed opvat en me wil helpen!:) En inderdaad, ik reageer niet altijd het fijnst! Maar ben heel erg blij met de hulp, en onderschat de waarde van de macro niet;)
Het weekend ben ik een beetje druk, ik zal kijken of ik er nog aan toe kom, anders ga ik er dinsdag weer mee aan de slag, en dan zal ik ook een bestandje in 2003 formaat proberen te regelen!:thumb:
 
Cavalier Seul spelen is een uitdrukking die evenveel wil zeggen als het allemaal zelf willen doen (oplossen oid)
Niet verkeerd op te vatten natuurlijk

Mvg

Rudi
 
Rudi,

Je hebt gelijk.
Soms ben ik inderdaad een Cavalier Seul.
Ik wil mijzelf verbeteren in excel en dan is er niets zo leuk als een doel hebben om jezelf te kunnen verbeteren.
Uitdagingen zijn voor mij voer en dit is er 1 die ik niet uit de weg ga maar inderdaad dan ontstaat wel het probleem dat je het allemaal zelf gaat doen.

Ik probeer eraan te denken bij de volgende pogingen.

Maar toch heel vriendelijk bedankt voor de leuke opmerking, ik kende hem nog niet.

P.S.: wat bedoelde je nog met "En voor hen die geen Excel 2007 hebben ?"

Grtz.
 
Laatst bewerkt:
Dat we het bestand ook in excel 2003 zetten, anders kan hij er niet naar kijken. :)
 
Om indien mogelijk ook een 2003 versie te posten

Mvg

Rudi
 
@ Superzeeuw Allereerst proficiat met het tot nu toe geleverde werk (55 posts is niet niks). Dan mijn vraagje, is het om een bepaalde reden dat je bij elk nieuw blad ook een nieuwe module maakt. Maak je bv. 20 bladen dan heb je ook 20 modules met 3 regeltjes code.Je kan ook via code elke keer die regeltjes bijvoegen in module1. Dan moet je ook niet elke keer extern werken om die module te maken en dan te importeren.(snelheid is het toverwoord:D)
Ik hoor het wel van je

Mvg

Rudi
 
Rudi,

Als je iemand in nood kunt helpen is dat het voornaamste.
Met jouw toverwoord "Snelheid" ben ik het helemaal eens.
Het importeren van een module is mij gelukt en daarna houd het op.
Gezien jouw reactie wordt het tijd om nog meer te leren.

Je interpretatie is helemaal correct, ik maak inderdaad voor iedere nieuwe knop een nieuwe module aan, ik heb momenteel geen andere optie ter hand.
Heb je er 20 bladen bij, jawel dan ook 20 modules, staat leuk in de lijst, hahahahahaha.

Ik hoor graag van jouw "snelheids" verbetering.

P.s.: Nog bedankt voor de felicitaties maar met de helft van de posts was ik ook al blij geweest.
P.s.2: jij ook gefeliciteerd met het behalen van de titel Mega Senior, terecht mag ik wel zeggen.

Grtz.
 
Laatst bewerkt:
Hartelijk bedankt, maar in mijn geval is het eerder een kwestie van inzet dan van kennis, want er zijn hier veeeeel straffere gasten dan ik.
In bijlage mijn bijdrage. Bekijk het eens en vergeet ook niet voor je de macro start van in je VB-Editor bij Extra >> Verwijzingen Microsoft Visual Basic For Applications Extensibility 5.3 aan te vinken
Zie post #63 voor macro

Mvg

Rudi
 
Laatst bewerkt:
Hoi Rudi,

Ik ben deze duscussie even aan het volgen, maar ik wil jouw bestandje openen en krijg gelijk een melding van de virusscanner dat er een macro-virus aanwezig is.
Het bestand heb ik kunnen tegenhouden.
Misschien kun je er nog even naar kijken of het werkelijk zo is.
Alvast bedankt.

Ik verneem van je.
 
Harry, ik ga niet zeggen 'Kan niet' maar mijn pc wordt dagelijks gescand en ik heb tot hiertoe nog geen enkele melding van een infectie gekregen ??

Mvg

Rudi
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan