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

Terug naar vorig werkblad

Status
Niet open voor verdere reacties.

popipipo

Meubilair
Lid geworden
21 nov 2006
Berichten
9.093
Besturingssysteem
Win11
Office versie
Office 365
Ik heb verschillende tabbladen (ca 30 stuks) met verschillende inhoud maar dezelfde opmaak en formaat.

Dit zijn opgaven, je geeft een antwoord dmv kleur verandering en diagonale strepen.
Ter correctie worden weer ander kleuren toegevoegd en diagonale strepen toegevoegd of verwijderd.

Om alles te resetten (strepen weg, originele kleur, enkele cellen legen) heb ik een macro gemaakt.
Het resetten moet per werkblad en niet alle werkbladen in een keer.

Kan ik nu één macro maken voor alle tabbladen.
De macro die ik nu heb kopieert het origineel en plakt hem in oefen 1

Zelf denk ik aan zoiets als:
Ga maar tabblad origineel - kopieer dit - ga terug naar sheet waar je vandaan komt - plak speciaal opmaak.
Echter hoe doe je ‘ga terug naar sheet waar je vandaan komt’?
 

Bijlagen

Houd telkens het tabblad gevangen in een variabele en maak deze public of zet deze in een cel.
Deze kan je dan toch opvragen om terug te keren naar het vorige blad.

Tenminste dat denk ik zo :)

Cobbe
 
@Cobbe

Dank je voor je antwoord.

Maar dit was nu juist mijn vraag: Hoe doe je dit.
Mijn VBA kennis is niet toereikend (helaas) om dit voor elkaar te krijgen.
 
Hier een methode waarin het activesheet in een kolom op blad 1 wordt gezet(dit hoeft niet).
In cel B1 staat dan altijd het vorige active blad. Deze waarde kun je dan gebruiken om terug te keren.

Code:
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
Sheets(1).Cells(Sheets(1).Range("A100").End(xlUp).Row + 1, 1) = ActiveSheet.Name
lastpage = Cells(Sheets(1).Range("A100").End(xlUp).Row - 1, 1)
[B1] = lastpage
End Sub



Cobbe
 
Laatst bewerkt:
Code:
Sub reset()
  Sheets("origineel").Range("B4:G16").Copy ActiveSheet.Range("B4:G16")
  ActiveSheet.Range("B2,B3,F1,F2,H1").ClearContents
End Sub
 
Ben misschien toch niet geheel duidelijk geweest.
De macro moet alleen de opmaak van bereik B5:G16 kopiëren
De inhoud, de plusjes en minnetjes moeten blijven staan, deze zijn in elk werkblad verschillend.

Code:
Sub reset1()
    Sheets("origineel").Range("B4:G16").Copy
    Sheets("oefen 1").Range("B4:G16").[B]PasteSpecial Paste:=xlPasteFormats[/B]
    Range("B2,B3,F1,F2,H1").ClearContents

End Sub
 
Is toch niet gecompliceerder ?

Code:
Sheets("origineel").Range("B4:G16").Copy
Activesheet.Range("B4:G16").PasteSpecial xlPasteFormats
ActiveSheet.Range("B2,B3,F1,F2,H1").ClearContents
 
Dank je SNB
Mijn VBA kennis is niet toereikend (helaas) om dit voor elkaar te krijgen.

Maar nu ik hem zie snap ik hem
Ipv de sheet naam zeg je Active sheet.
Wat is het toch eenvoudig (als je het weet :D :D )
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan