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

Werkblad met macro's kopieren naar ander werkblad

Status
Niet open voor verdere reacties.

Neydel

Gebruiker
Lid geworden
30 jan 2016
Berichten
14
Hallo,
Wanneer ik in een werkmap een werkblad kopieer naar een ander werkblad werken de macro's niet meer.
Wanneer ik de naam van een werkblad aanpas werken de macro's niet meer.
Ik probeer een wedstrijdblad te maken van een viswedstrijd. In de werkmap moeten een 15 tal werkbladen komen welke een kopie zijn van de eerste.
In het werkblad staan enkele macro's en enkele formules.
Het eerste werkblad krijgt de naam Standaard, de tweede 22 april, de derde 05 mei enz.....
Het lukt me niet om de andere werkbladen werkende te krijgen.
De drukknoppen heb ik geplaatst om de persoon te helpen die het formulier moet gebruiken.
Wanneer ik dit werkende krijg moet ik nog een aantal werkmappen maken met andere wedstrijden.
Dank
ps: exel is niet mijn sterkste kant!
bladbeveiliging: vna
 
Laatst bewerkt:
Beste,

Indien je wil geholpen worden, moet je een versie met uitgeschakelde bladbeveiliging publiceren of het wachtwoord meedelen.
 
Beste,

Ik stel vast dat de macro's opgenomen zijn. Indien je de macro's wil toepassen in een ander blad moet je bladnaam in de opgenomen macro's wijzigen. Er staan geen formules in Blad1. Dit doe je in de VBA-editor (icoontje Visual Basic in het lint).
 
Laatst bewerkt:
Hallo,

wanneer ik de naam aanpas in de VBA-editor werkt alles op het aangepaste blad. Vervolgens stel ik vast dat eerste blad niet meer werkt.
 
Laatst bewerkt:
Beste,

Vervang de code voor het sorteren op naam eens door deze code :

Code:
Sub selecterennaam()
    Dim bereik As Range
    Dim cel As Range
    Set bereik = Range("B4:I59")
    Set cel = Range("B4")
    bereik.Sort Key1:=cel, Order1:=xlAscending, Header:=xlYes
End Sub

VERGEET NIET de bladbeveiliging uit te schakelen!
Kopieer de tabel van blad1 naar blad2 en probeer de code op blad2. Indien dit lukt, heb je een universele code voor het sorteren op naam op alle bladen.
 
Voor een een universele code kan je het beste één sub maken die die het geheel regelt.

Code:
Sub VenA(i)
With ActiveSheet
    .Unprotect "vna"
    .Range("B5:I64").Sort .[A5].Offset(, i)
    .Protect "vna"
End With
End Sub

Deze kan je dan dan in een nieuwe sub aanroepen
Code:
Sub SortNaam()
VenA (1)
End Sub

In de bijlage het eea een beetje opgeschoond.
 

Bijlagen

@ VenA
Krachtige code die getuigt van vakkennis. Heb weer bijgeleerd maar het combineren van eigenschappen of methoden krijg ik moeilijk onder de knie.
 
Laatst bewerkt:
Viswedstrijdtabel

VenA. Is het mogelijk om het visbestand privé over te maken met de nodige uitleg hoe het zou moeten werken?
Het kopiëren en naamsverandering van de bladen lukt. Andere zaken lukken niet gezien U niet kan weten
welke selecties moeten gedaan worden. Dank.
 
Je kan toch gewoon jouw bestand hier plaatsen? Vervang eventueel persoonlijke gegevens door fictieve gegevens. Haal bij voorkeur ook de beveiliging van de tabbladen af. Als je het zoals in de OP hebt over formules dan is het ook wel handig om deze ook in het bestand te zetten.
 
In bijlage het Excel bestand en een Word bestand met uitleg.
Bedankt.
 
Laatst bewerkt:
VenA,

ik ben samen met mijn vriend bezig geweest met de door U gemaakte code. Het ging de goede weg op maar .....we kunnen niet meer verder.
In bijlage voeg ik het formulier met de stand der zaken.
In het bijgevoegde Word doc staan de problemen waar we geen oplossing voor hebben.
Hopelijk zet je ons terug in de goede richting.
Dank.
 
Laatst bewerkt:
Ik zie in het bestand niets anders dan wat ik in #7 geplaatst heb.

Waarom stel je de vragen in een word bestand en niet gewoon in deze teksteditor?

- de cijfers 1 tot en met 60 in kolom I zouden niet gesorteerd mogen zijn. Moeten blijven staan
gezien ze aanduiden hoeveel deelnemers er zijn.
In kolom I staat de eindstand en heeft volgens mij niets met het aantal deelnemers te maken. Dus wat je hier mee wil ontgaat mij.

- wanneer men drukt op de toets gewicht zou de sortering van hoog naar laag moeten zijn.
is aangepast.

- bij toets sector zou de sortering moeten zijn: 1. Sector van laag naar hoog
2. Gewicht van hoog naar laag.
is aangepast

Na deze selectie worden manueel de sectorpunten ingevuld in de kolom sectorplaats.
Dit van 1 tot 11 bij 55 deelnemers of 1 tot ? bij minder deelnemers.
geen idee wat je hier mee bedoelt.

-bij toets eindstand zou de selectie moeten zijn: 1. Sectorplaats van laag naar hoog
2. Gewicht van hoog naar laag.

De eindstand staat in kolom I waar het aantal deelnemers staan wat juist weer niet gesorteerd mocht worden.

Met wat ik ervan begrepen heb kom ik tot zoiets

Code:
Sub VenA(i)
With ActiveSheet
    .Unprotect "vna"
        Select Case i
        Case 6
            .Range("B5:I64").Sort .[A5].Offset(, i), 2
        Case 5
            .Range("B5:I64").Sort .[A5].Offset(, i), , .[A5].Offset(, i), , 2
        Case Else
            .Range("B5:I64").Sort .[A5].Offset(, i)
        End Select
    .Protect "vna"
End With
End Sub
 
In bijlage formulier zoals het zou moeten zijn na gebruik van eventuele code.
 
Laatst bewerkt:
In bijlage formulier zoals het zou moeten zijn na toepassen macro SECTORPLAATS.
 
Laatst bewerkt:
formulier loopt met nieuwe code fout.
Waar dan en waarom dan en welke fout?

In de bestandjes zie ik niets van de aangereikte code terug. Ook geef je nog steeds geen inzicht in wat het echte probleem is. Het gaat toch om code die op verschillen werkbladen moet terugkomen? Dus ik weet niet wat er zo spannend aan is om een voorbeeld te plaatsen met wat nu echt de bedoeling is. De sortering kan in mijn optiek het probleem niet meer zijn.
 
Goede morgen,
Bij het eerste keer openen van het werkblad staan de eerste 5 kolommen goed. De kolom sectorplaats staat van hoog naar laag. Zou andersom moeten zijn.
Bij knop EINDSTAND staat alles van hoog naar laag. De rangschikking sorteert zich volgens nummer. De nummer hangt vast aan de persoon en houdt geen rekening met de gevangen hoeveelheid.

Wanneer men nu terug naar NAAM selectie gaat of INSCHRIJVING of PLAATS of SECTOR staat alles omgekeerd!

Ik weet ook niet wat ik verkeerd doe.

Groetjes

Willy
 
Laatst bewerkt:
Beste,

Indien je wil sorteren op gewicht en op nummer moet je sorteren op 2 niveau's. Selecteer je tabel te beginnen vanaf de titelrij, ga naar sorteren in de werkbalk en kies de kolomtitel waarop je wil sorteren en voeg daarna een niiveau toe en kies opnieuw een kolomtitel. De tabel wordt gesorteerd per gewicht en rekeninghoudend met het extra sorteerniveau.

Het feit dat de kolommen omgekeerd gesorteerd staan is wellicht te feiten aan het feit dat je een gesorteerde lijst op een bepaalde kolomtitel niet meer zomaar mag hersorteren op een andere kolomtitel.

Ik zou een wedstrijdtabel maken tot en met de gewogen vis per deelnemer en dan stap voor stap de tabel handmatig sorteren. Ie zal dan zien waar het verkeerd loopt.
 
Laatst bewerkt:
Hallo,

wanneer ik de naam aanpas in de VBA-editor werkt alles op het aangepaste blad. Vervolgens stel ik vast dat eerste blad niet meer werkt.

Bijna goed, met hulp van het zeuneke moet ge naam blad vervangen door 'ActiveSheet.Name'
Mer wé zulle het tich woal allemoal aanpasse hielegans noa dien goesting!!!
Wie gezag: t waas amper 3 minuute werk. Geduld es ein schoene deugd!
 
Bedankt voor de hulp. Oplossing voorlopig nog niet gevonden.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan