Hoe kan ik dit oplossen?
--
Vriendelijke groet, Jan
Je kunt ook de macro stap voor stap uitvoeren en kijken wat er allemaal op
welk moment gebeurt.
Maurrieske
"Jan" <J...@discussions.microsoft.com> schreef in bericht
news:C7550473-B1FC-4CAC...@microsoft.com...
Hieronder de code:
Sub UitslagenPersoonlijkImporteren()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Dim ronde As String
Dim ImportScherm As String
Dim DamesHeren As String
Dim Importveld As String
Dim Verzamelblad As String
Dim Bestandsnaam As String
Dim Boodschap As String
Verzamelblad = ActiveWorkbook.Name
Application.Dialogs(xlDialogOpen).Show
Bestandsnaam = ActiveWorkbook.Name
If Left(Bestandsnaam, 11) <> "Persoonlijk" Then
MsgBox ("Verkeerde bestand gekozen, kies bestand met PERSOONLIJK in
de naam.")
Workbooks(Bestandsnaam).Close
Exit Sub
End If
ronde = Range("A1").Value
Range("A3").Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlToRight)).Select
Selection.Copy
Windows(Verzamelblad).Activate
Sheets(ronde).Visible = True
Sheets(ronde).Activate
BeveiligingUit
Range("A1").Select
Range("A1").End(xlDown).Select
ActiveCell.Offset(1, 0).Activate
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False
Range("A1").Select
BeveiligingAan
Workbooks(Bestandsnaam).Close
Sheets(ronde).Visible = False
Sheets("Voorblad").Activate
Boodschap = "U heeft de uitslagen van " & Bestandsnaam & " goed
geimporteerd."
MsgBox (Boodschap)
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
--
Vriendelijke groet, Jan
Dus als je de code
BeveiligingUit
zet voor de regel
Application.Dialogs(xlDialogOpen).Show
moet het volgens mij wel goed gaan.
Dan nog een tip:
De macro BeveiligingUit is wellicht ook te starten middels ALT + F8 (ofwel
Extra - Macro - Macro�s) evenals de macro BeveiligingAan. Daarmee kan
iedereen weer de beveiliging van de bladen afhalen en voegt de beveiliging
alleen iets toe voor de gebruikers die geen benul hebben van macro�s.
Indien je echter de code uitbreidt met een parameter (bijvoorbeeld aan of
uit) dan zijn de macro�s niet meer zichtbaar in de lijst met macro�s. De
macro kan immers niet meer zomaar gestart worden zonder parameter.
Stel de code van BeveiligingUit is
Sub BeveiligingUit()
ActiveSheet.Unprotect ("ww")
End Sub
en de code voor BeveiligingAan is
Sub BeveiligingAan()
ActiveSheet.Unprotect ("ww")
End Sub
Dan kun je beiden vervangen door
Sub Beveiliging(OnOff As Boolean)
If OnOff = False Then
ActiveSheet.Unprotect ("ww")
Else
ActiveSheet.Protect ("ww")
End If
End Sub
en die kun je aanroepen door de regel
Beveiliging False
of
Beveiliging True
Op deze manier kun je in de lijst met macro�s niets meer vinden dat duidt op
beveiliging van de bladen.
Groetjes
Maurrieske
"Jan" <J...@discussions.microsoft.com> schreef in bericht
news:0AD032F1-F7BF-4CE1...@microsoft.com...
er is niet bepaald welke sheet moet genomen worden.
> Sheets(ronde).Visible = True
> Sheets(ronde).Activate
er wordt niet gecheckt of werkblad 'ronde' wel bestaat
> BeveiligingUit
> BeveiligingAan
ik neem aan dat het om externe procedure gaat
Jouw tip betreffende de beveiliging uit/aan subs heb ik al over genomen.
Inderdaad is dit beter alhoewel ik over het algemeen geen gebruikers heb die
verder zoeken als nodig is voor het werken met de werkbladen.
Maar het eerder plaatsen van de beveiligingUit sub heeft niet geholpen. Het
werkblad waaruit de gegevens gekopieerd worden is niet beveiligd en de
beveiliging van het doelblad kan pas uitgezet worden na het inlezen van een
aantal gegevens van het bronblad waarmee bepaald wordt in welk tabblad van
het doelblad gekopieerd moet worden.
Ik heb mijn makroinformatie uit deze reply gehaald om het een beetje
leesbaar te houden.
Heb je nog meer tips? Of iemand anders misschien?
--
Vriendelijke groet, Jan
"Maurrieske" wrote:
> >
> >
Jan
--
Vriendelijke groet, Jan
> Wat bedoel je met externe procedure?
een private of punblic functie/sub aanroep zoals
private sub BeveiligingUit()
..
end sub
Ik heb het toch nog eens geprobeerd zonder beveiliging op het doelblad. En
dan gaat het inderdaad in een keer goed.
Het probleem is hiermee opgelost.
Hartelijk dank voor je bijdrage.
Het zou dus ook moeten werken met de beveiliging er wel op. Maar dan altijd
eerst in de code de beveiliging afhalen, daar waar je wil plakken. Daarna
pas de kopieer opdracht regelen. Excel kan helaas niet plakken meer als er
eerst weer beveiliging afgehaald moet worden. Dit werkt trouwens net zo
indien je met de hand wil kopieren en plakken. Je kunt niet eerst een copy
opdracht geven, vervolgens de beveiliging van een blad afhalen en dan pas
pasten. Excel zal dan niets meer hebben om te plakken...
Ik ben in ieder geval blij voor jou dat jouw probleem opgelost is.
Groetjes, en nog veel plezier bij het werken met VBA.
Maurrieske
"Jan" <J...@discussions.microsoft.com> schreef in bericht
news:B7C164E5-31F5-4149...@microsoft.com...