• 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 alle werkbladen selecteren behalve...

Status
Niet open voor verdere reacties.

URLeraar

Gebruiker
Lid geworden
19 jul 2001
Berichten
168
Misschien zijn er wel mensen die graag macro's schrijven, maar op den duur niet meer weten wat geschreven.
Daarom dit vraagje (en om mij te helpen natuurlijk :confused:

Met de rechtermuisknop kun je in Excel alle bladen selecteren.
Ik zoek echter een macro waarbij ik alle bladen kan selecteren behalve het blad met de naam LES en het blad met de naam KLAS. Achteraf kan ik die namen dan eventueel veranderen in de macro.

Op http://www.vbaexpress.com/kb/getarticle.php?kb_id=197#instr heb ik een macro gevonden om het 1ste en 2de blad uit te sluiten van selectie, maar handiger zou zijn dat ik in de macro zelf de uit te sluiten bladen kan aangeven.

Alvast bedankt voor de moeite.
 
Code:
Sub SelectAllSheets()
    Dim ws As Worksheet
    Application.ScreenUpdating = False
    For Each ws In ActiveWorkbook.Sheets
        If ws.Name <> "LES" And ws.Name <> "KLAS" Then ws.Select False
    Next ws
    Application.ScreenUpdating = True
End Sub

Dat van die False achter .Select wist ik niet. Bedankt.

Wigi
 
Code:
Dat van die False achter .Select wist ik niet. Bedankt.

Wigi[/QUOTE]

Hartelijk dank - werkt perfect.

Begrijp ik het goed als ik denk dat ik je geholpen heb? Ik ben er blij om.


Ik gebruik deze selectie in samenwerking met de add-in van de onvolprezen 
[URL="http://www.asap-utilities.com/index.php"]http://www.asap-utilities.com/index.php[/URL]
Heb er al veel papier en inkt door gespaard.

Ik selecteer eerst de bladen (behalve...) en dan laat ik met asap op de geselecteerde bladen een aantal rijen selecteren die dan samengevoegd worden op 1 nieuw werkblad (functie = Put together rows and columns from several sheets).

Het zou natuurlijk nog leuker zijn mocht dat allemaal in 1 macro zitten: ik selecteer de bladen die ik wil en dan vraagt Excel: wat wens je te selecteren op de geselecteerde bladen om samen te voegen op een nieuw werkblad.

Maar met de hulp van Wigi ben ik dus al flink geholpen :thumb:
 
Begrijp ik het goed als ik denk dat ik je geholpen heb?

;)

Het zou natuurlijk nog leuker zijn mocht dat allemaal in 1 macro zitten: ik selecteer de bladen die ik wil en dan vraagt Excel: wat wens je te selecteren op de geselecteerde bladen om samen te voegen op een nieuw werkblad.

Ik heb de source code van de ASAP utilities zelf niet, dus die kan ik niet geven. Schrijf de code zelf misschien, waar een wil is is een weg.

Wigi
 
;)

Ik heb de source code van de ASAP utilities zelf niet, dus die kan ik niet geven. Schrijf de code zelf misschien, waar een wil is is een weg.

Wigi

Probleem met informatica = je moet er veel tijd in stoppen om het goed te beheersen.
Ik heb me jaaaren geleden nog wat verdiept in o.a. VBA om dan vast te stellen dat ik uiteindelijk maar zelden een macro nodig had en als ik er 1 nodig had vond ik hem wel op het net of een gelijkwaardig dat ik kon aanpassen.

De functie uit asap "Put together rows and columns from several sheets", heeft blijkbaar niemand nodig want nergens op het internet vind ik iets dat er ook maar een beetje op lijkt:shocked:
 
Laatst bewerkt:
Blijkbaar nog een klein "foutje" in de macro.

Wanneer je de macro uitvoert wanneer je in een werkblad actief bent dat je niet wil selecteren, dan wordt dat werkblad toch geselecteerd, alhoewel je dat niet wilde.

Geen al te groot probleem, maar misschien toch interessant voor iemand die iets wil bijleren :(

Dus ben je bezig in KLAS, dan zal het toch geselecteerd worden.
 
U vraagt, wij draaien

Code:
Sub SelectAllSheets()
    Dim ws As Worksheet
    Dim i As Integer
    
    i = 1
    Do
        If Sheets(i).Name <> "LES" And Sheets(i).Name <> "KLAS" Then
            Sheets(i).Select
            Exit Do
        Else
            i = i + 1
        End If
    Loop Until i <= Sheets.Count
    
    For i = i + 1 To Sheets.Count
        If Sheets(i).Name <> "LES" And Sheets(i).Name <> "KLAS" Then Sheets(i).Select False
    Next
End Sub

Wigi
 
Levert bij mij geen beterschap op.
Sta ik op een blad dat ik niet wil selecteren, dan wordt het toch meegeselecteerd.
Beetje logisch misschien want het blad waarmee je bezig bent is automatisch geselecteerd, of niet? Anders zou je naar een ander blad moeten verspringen.:shocked:
Misschien heb ik ook wel een foutje gemaakt want ik heb intussen meer dan 2 bladen die moeten uitgesloten worden en zodoende heb ik de macro wat moeten uitbreiden.

In zal trouwens kijken of ik de macro niet kan omkeren. Nu geef ik in de macro de bladen aan die ik wens uit te sluiten maar ik merk: bladen die ik wens te selecteren = constant, maar uit te sluiten bladen = variabel = macro aanpassen = niet handig.

Maar voor nu ben ik "gered" :thumb:, hartelijk dank hoor en indien wat meer tijd :cool: probeer ik dus de macro om te draaien. Misschien stel ik dan nog wel een vraagje :confused:
 
In zal trouwens kijken of ik de macro niet kan omkeren. Nu geef ik in de macro de bladen aan die ik wens uit te sluiten maar ik merk: bladen die ik wens te selecteren = constant, maar uit te sluiten bladen = variabel = macro aanpassen = niet handig.
Zou ik zo ie zo doen.

Kan je de vraag nog op opgelost plaatsen?
Bedankt.
 
Euh... belangrijk dat ie op opgelost staat?

Misschien probeer ik dus de macro om te draaien, maar heb ik toch nog een probleempje.:)
 
URLeraar,

Door een extra regel aan de code van WiGi toe te voegen wordt in het begin van de code al naar een ander tabblad dan LES of KLAS gegaan en werkt de volgende code volgens mij dan wel.
Immers als je KLAS hebt geselecteerd wordt in het begin van de code naar "blad2" gesprongen.

Code:
Sub SelectAllSheets()
    Dim ws As Worksheet
    ' Hier wordt al een ander tabblad dan LES en KLAS geselecteerd
    Sheets("blad2").Select  'verander blad2 in naam tabblad die altijd geselecteerd moet zijn.
    Application.ScreenUpdating = False
    For Each ws In ActiveWorkbook.Sheets
        If ws.Name <> "LES" And ws.Name <> "KLAS" Then ws.Select False
    Next ws
    Application.ScreenUpdating = True
End Sub


Heb je hier iets aan?


Koosl
 
URLeraar,

Door een extra regel aan de code van WiGi toe te voegen wordt in het begin van de code al naar een ander tabblad dan LES of KLAS gegaan en werkt de volgende code volgens mij dan wel.
Immers als je KLAS hebt geselecteerd wordt in het begin van de code naar "blad2" gesprongen.

Code:
Sub SelectAllSheets()
    Dim ws As Worksheet
    ' Hier wordt al een ander tabblad dan LES en KLAS geselecteerd
    Sheets("blad2").Select  'verander blad2 in naam tabblad die altijd geselecteerd moet zijn.
    Application.ScreenUpdating = False
    For Each ws In ActiveWorkbook.Sheets
        If ws.Name <> "LES" And ws.Name <> "KLAS" Then ws.Select False
    Next ws
    Application.ScreenUpdating = True
End Sub


Heb je hier iets aan?


Koosl

Zou het mogelijk zijn om de extra regels toe te voegen aan de macro die zo vriendelijk werd aangepast door Wigi, want die werkt nu perfect, behalve dat er dus soms een onnodig blad geselecteerd werd.

Zie:
Wigi 21-05-2007 01:19 U vraagt, wij draaien (ik slaag er niet in om zijn code te selecteren)


Alvast bedankt voor de moeite.
 
Code:
Sub SelectAllSheets()
    Dim ws As Worksheet
    Sheets("blad2").Select
    Application.ScreenUpdating = False
    For Each ws In ActiveWorkbook.Sheets
        If ws.Name <> "LES" And ws.Name <> "KLAS" Then ws.Select False
    Next ws
    Application.ScreenUpdating = True
    Dim i As Integer
    
    i = 1
    Do
        If Sheets(i).Name <> "LES" And Sheets(i).Name <> "KLAS" Then
            Sheets(i).Select
            Exit Do
        Else
            i = i + 1
        End If
    Loop Until i <= Sheets.Count
    
    For i = i + 1 To Sheets.Count
        If Sheets(i).Name <> "LES" And Sheets(i).Name <> "KLAS" Then Sheets(i).Select False
    Next
End Sub
 
URLeraar,

ik voeg hier een klein bestandje bij met de code (u vraagt en wij draaien) van Wigi erin.
Ik snap eigenlijk niet wat er niet goed aan werkt.
De macro selecteert mooi alle bladen behalve KLAS en LES.
Precies zoals je gevraagd hebt, toch?


(tenminste bij mij werkt deze prima)

Koosl
 

Bijlagen

URLeraar,

ik voeg hier een klein bestandje bij met de code (u vraagt en wij draaien) van Wigi erin.
Ik snap eigenlijk niet wat er niet goed aan werkt.
De macro selecteert mooi alle bladen behalve KLAS en LES.
Precies zoals je gevraagd hebt, toch?


(tenminste bij mij werkt deze prima)

Koosl

Bij mij werkt die ook, anders had ik hem niet gegeven natuurlijk.

URLeraar, post jij eens een bestandje waar het fout loopt dan.

Wigi
 
Beste oplossing zal zijn:

Sheets(Array("Blad1", "Blad2", "Blad3")).Select

aangezien de bladen die ik moet selecteren altijd een vaste naam hebben

o.a. gevonden op http://bvrve.club.fr/Astuces_Michel/02excelvba.html - maar dan met Feuille1... :-)


Hartelijk dank voor het meezoeken.

Nu ik 3 werkbladen uit een geheel van 10 kan selecteren, zou ik nu nog een aantal rijen uit de werkbladen willen selecteren.
Dat doe ik nu dus via ASAP utilities (schitterend) met "Put together rows or columns from several sheets..."; maar leuker zou nog zijn om het met een "eigen" macro te kunnen doen.

Heel erg bedankt voor de hulp en misschien ook een oplossing voor mijn "nieuwe" vraag?
 
Laatst bewerkt:
Ik zit hier tegen mezelf te praten :D maar ik moest onderstaande ook invoeren.
Begrijp wel niet goed wat het is maar de macro loopt nu niet meer vast.
Zal wel nog moeten bijgesteld worden om ASAP-functie te evenaren (is met combobox waardoor je kunt aangeven welke range je wil selecteren)

Function LastRow(sh As Worksheet)
On Error Resume Next
LastRow = sh.Cells.Find(What:="*", _
After:=sh.Range("A1"), _
Lookat:=xlPart, _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious, _
MatchCase:=False).Row
On Error GoTo 0
End Function
 
Begin eens een nieuwe topic en zet deze op opgelost.

Wat betreft de nieuwe vraag: geef eens duidelijk aan wat er moet gebeuren, en hang een voorbeeldbestandje bij.
 
Je hebt gelijk Wigi - anders wordt het te onduidelijk- maar kan iemand mij eerst zeggen hoe onderstaande "keuzebox" in het vakjargon heet?



Daarna begin ik een nieuwe topic met een (hopelijk) duidelijke vraag.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan