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

Macro in meerdere worksheets tegelijk

Status
Niet open voor verdere reacties.

Alex1712

Gebruiker
Lid geworden
3 jan 2007
Berichten
15
Hallo,

Ik wil graag een geschreven (lees: grotendeels opgenomen(niet echt VB kennis!)) macro in meerdere sheets tegelijk uitvoeren.

Ik heb een excel file die ik elke week moet updaten. Daarvoor moet ik ongeveer 15 van de 20 'leegmaken' met een bestaande macro. Dus nu ga ik elke sheet stuk voor stuk af. Volgens mij kan dat sneller..

Kan ik de macro bewerken met een code die dan in 1x alle benodigde sheets behandeld?

Alvast bedankt.
Groet Alex
 
Je kunt uhm simpelweg nog een keer opnemen als je de volgende keer begint. Dan hoef je het nog maar 1x te doen... :thumb:

Wat natuurlijk ook kan is het workbook even als attachment meesturen hier; dan maakt iemand het hier (of ik) vast wel voor je...

Succes!
 
Welkom op het forum!

Draai deze macro - die ik net voor je geschreven heb - eens op een willekeurig bestand.

Code:
Sub messageboxpersheet()
    Dim ws As Worksheet
    For Each ws In ThisWorkbook.Worksheets
        MsgBox "Blad " & ws.Index & ":" & vbTab & ws.Name
    Next
End Sub

Ga verder op de ingeslagen weg.

Wigi
 
Laatst bewerkt:
Oplossing werkt niet

Waarschijnlijk doordat ik het niet begrijp...

Ik heb een nieuwe macro gemaakt met jouw tekst erin..
maar daar doet hij niets mee (en verwacht end sub):

Sub Macro2()
'
' Macro2 Macro
' Macro recorded 3-1-2007 by Annelies
'
' Keyboard Shortcut: Ctrl+m
'
Sub messageboxpersheet()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
MsgBox "Blad " & ws.Index & ":" & vbTab & ws.Name
Next
End Sub

ik heb een test excel sheet gemaakt met simpel het idee van wat er moet gebeuren..
Zie bijlage.. (maak van .zip .xls want kon hem niet echt 'zippen'! :confused: )
(echte file niet beschikbaar.. op werk)
sheets 1-4 moeten met de macro die ik heb 'leeg'worden gemaakt.

Sub Test()
'
' Test Macro
' Macro recorded 3-1-2007 by Annelies
'
' Keyboard Shortcut: Ctrl+t
'
Range("A3:M4").Select
Range("M3").Activate
Selection.ClearContents
End Sub


Hij moet dus de 'andere' sheets niet doen....

Kunnen jullie het me in iets meer dummie language verder uitleggen...??????

oh ja.. het simpel 'opnemen'van alle handelingen is slim.. maar wil graag de handigheid leren...

Thanks!
 

Bijlagen

  • test.zip
    25,5 KB · Weergaven: 36
OK

Hier komen we zeker door. Maar first things first Annelies. Of is het Alex? :D

De code die ik je gegeven heb is al een macro op zich.

Plak die gewoon in een nieuwe module. Ga naar VBA editor en doe Invoegen > Module en plak hetgeeen ik je gegeven heb. Ga dan ergens in die code staan en druk F5.

Lukt het met de message boxes?

Ofwel mag je gewoon de regel

Code:
Sub messageboxpersheet()

deleten in de code die je al had. Werkt ook als je dan F5 doet.

Wigi
 
Laatst bewerkt:
Ik heb het volgende gedaan..

Plak die gewoon in een nieuwe module. Ga naar VBA editor en doe Invoegen > Module en plak hetgeeen ik je gegeven heb. Ga dan ergens in die code staan en druk F5.

Dan gaat hij naar de excel sheet en geeft een pop up:
Blad1: Sheet1
ok

Als ik op OK druk gaat hij weer naar VBA ed.
 
Re: nog niet gelukt!

Sorry titel vergeten!!

Ik heb het volgende gedaan..

Plak die gewoon in een nieuwe module. Ga naar VBA editor en doe Invoegen > Module en plak hetgeeen ik je gegeven heb. Ga dan ergens in die code staan en druk F5.

Dan gaat hij naar de excel sheet en geeft een pop up:
Blad1: Sheet1
ok

Als ik op OK druk gaat hij weer naar VBA ed.
 
Ik heb het volgende gedaan..

Plak die gewoon in een nieuwe module. Ga naar VBA editor en doe Invoegen > Module en plak hetgeeen ik je gegeven heb. Ga dan ergens in die code staan en druk F5.

Dan gaat hij naar de excel sheet en geeft een pop up:
Blad1: Sheet1
ok

Als ik op OK druk gaat hij weer naar VBA ed.

Voeg nu een paar tabbladen bij en doe de code opnieuw. De MsgBox zou nu meerdere keren moeten komen. Als dat gelukt is, gaan we richting jouw code.
 
stap verder?

Ik heb de module nu bij de goede sheets geplaatst :O
Krijg nu evenveel pop ups als tabbladen met de teksten:
11: 1
12: 2
13: 3 enz (zoals de tabbladen heten in ieder geval!)

en nu?
 
Heb je nu ingezien dat je dezelfde code kan toepassen op elk blad uit je bestand? Dus zoiets:

Code:
Sub Test()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
Range("A3:M4").ClearContents
Next
End Sub

Was dit het? Ik krijg de bijlage niet open, je zal toch moeten zippen.

Wigi
 
Andere oplossing..

Wigi, Dank je wel voor je uitleg en tijd...
Ik denk dat ik (wij) het voorlopig nog niet ga begrijpen.
Ik heb een tussen oplossing (door apart elke sheet met de uit te voeren regels apart te benoemen).
Als ik deze gebruik kom ik er ook! (geloof ik)

Dank je wel!

p.s. denk je dat er nog een followup komt op de 0 regels verwijderen vraag?
 
Wigi, Dank je wel voor je uitleg en tijd...
Ik denk dat ik (wij) het voorlopig nog niet ga begrijpen.
Ik heb een tussen oplossing (door apart elke sheet met de uit te voeren regels apart te benoemen).
Als ik deze gebruik kom ik er ook! (geloof ik)

Geef mij (ons) de handelingen die op elk blad moeten gebeuren, en ik zal dan wel de code opstellen. Ook een voorbeeldbestandje (gezipt, het vorige kon ik niet openen) kan wonderen doen.
 
manana

Thanks!
Ik ga morgen wel kijken of ik mijn bestand op het werk, vereenvoudigd en gezipt, kan plaatsen!

Welterusten!
 
Toegevoegd: ZIP

Hallo Wigi,

Ik heb de macro aangepast op mijn hoogstwaarschijnlijk omslachtige manier.
Maar hij doet nu wel wat er moet gebeuren....:cool:

Ik heb de regels:
Range("C1").Select
ActiveCell.FormulaR1C1 = "=SUM(C[14])"
Range("G1").Select
ActiveCell.FormulaR1C1 = "=SUM(C[12])"
bij elke sheet toegevoegd, omdat deze cellen zich niet refreshten (mooi ww eh?).
Kan ik deze handeling vereenvoudigen door simpelweg calculate neer te zetten?

Groet, Alex
 

Bijlagen

  • Sub schonen.zip
    4,2 KB · Weergaven: 34
Alex

Dit is een ietsje korter, niet :cool: :eek: :D

Code:
Sub Test()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
    ws.Cells.EntireColumn.Hidden = False
    ws.Range(ws.Range("A3"), ws.Cells.SpecialCells(xlLastCell)).ClearContents
Next
Calculate
End Sub

Wigi
 
Laatst bewerkt:
Het werkt idd... totdat

Hallo,

Je oplossing werkt idd. prima.. echter neemt hij de laatste 4 sheets uit het workbook ook mee... en dat is niet echt de bedoeling.. daar zitten weer andere formules e.d. in.

Deze sheets heten TOTAAL, Budget MN, Huisaandeel en LRW!

Groet,
 
Zijn het altijd de laatste 4 of worden ze soms van plaats veranderd?
 
worksheet hetzelfde

die laatste 4 pagina's zijn altijd hetzelfde..
ik pak altijd de laatste versie en maak hem dan leeg om weer nieuwe gegevens erin te plakken..
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan