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

Code voor alle tabbladen

Status
Niet open voor verdere reacties.

don42

Gebruiker
Lid geworden
25 apr 2014
Berichten
800
ik heb een file met 80 tabbalden 1 t/m 80
nu moet ik in die bladen een zwarte streep zetten
met onderstaande code lukt dat prima
had hier eerst een macro voor opgenomen en met een Ctrl Q als code kon ik redelijk snel een streep zetten
nu wil ik het graag doen met dubbelklik
met een kleine aanpassing kreeg het werkend maar niet voor alle bladen helaas

Code:
 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Selection.Insert Shift:=xlDown
    With Selection.Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .ThemeColor = xlThemeColorLight1
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With
End Sub

bovenstaande code is goed (hij werkt in elk geval)

maar nu moet ik deze code in elk tabblad plakken er is vast een manier om dat een stuk handiger te doen denk ik
zodat de code voor de hele file werkt, en nog beter voor de tabbladen 1:80
wie kan me daar mee helpen

Don
 
Laatst bewerkt:
Met die code maak je de geselecteerde cel zwart. Voor welke cel moet dat per blad worden gedaan?
 
Hoi,
dit is verschillend het is voor een verlofboek van mijn werk
er staan formules in de cellen en dan zet ik er met bovenstaande code er een zwarte streep tussen
maar op welke plaats is verschillend.

Bekijk bijlage verlof.xlsx

heb er snel een voorbeeldje bij gedaan de namen boven de streep hebben gegarandeerd verlof
 
Laatst bewerkt:
Hoe bepaal je dan welke cel zwart moet worden? Dat zal toch in de code moeten worden opgenomen.
 
Nou dat gaat eigenlijk handmatig momenteel (misschien iets voor de toekomstdat onderstaande gegevens ingevoerd kunnen worden)

Maar nu: krijg ik een lijst met van week 1 tm 15 ma t/m vr 8 pers gegarandeerd verlof (za 6 en zon 4)
weken waar een zondag extra is schoolvakanties ect. maakt dat het zo verschillend is
en dat moet ik dan zo invullen vandaar een dubbelkik die de code uitvoert wel makkelijk zal zijn
want hij maakt niet enkel een cel zwart maar voegt er eerst 1 toe en die maak ik zwart
=A3
zwarte streep
= A4
zo blijft de vewijzing overeind staan,
IK heb dit allemaal in een verlofboek gezet, is een heel ding geworden van een kleine 9 mb
met een ongelooflijk lange kalender heb daar avonden aan zitten werken,
de kalender heeft 1496 kolommen (:)
zou je dat met plezier eens willen laten zien. maar je krijgt zoiets helaas niet verstuurt
het gaat om 130 chauffeurs die in 4 periodes verlof mogen aanvragen
en in elke periode een andere nummer van aanvraag hebben. maar dat is zonder de file bijna niet uit te leggen
maar chf nr 100 uit blok 1 gaat voor chf 3 van blok 2
het kan gestuurt worden met Wetransfer bedenk ik me net. maar dat laat ik aan jou over of je er eens naar wilt kijken.
opzich werkt het wel
maar zou vast veel eenvoudiger kunnen en het probleem, als er ooit meer chauffeurs bij komen dat heeft deze hier een probleem


Don
 
Laatst bewerkt:
Maar eigenlijk dalen we af, de vraag was hoe krijg ik bovenstaande code werkend op meer tabbladen
daar ben ik voorlopig alweer mee geholpen.
 
Dat doe je dan met een For loop:

Code:
For i = 1 to Activeworkbook.Sheets.Count
    'je code
Next  i
 
Zoiets?
en waar zet ik die code dan neer?

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
For i = 1 to Activeworkbook.Sheets.Count    
Selection.Insert Shift:=xlDown
    With Selection.Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .ThemeColor = xlThemeColorLight1
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With
Next  i
End Sub

en dan in Thisworkbook of waar laat ik die code
 
Dat lijkt me goed.
Als je wilt dat het wordt uitgevoerd met een dubbelklik in een willekeurig werkblad moet je die hele routine achter elk werkblad zetten.
 
Heb bovenstaande code dus in ThisworkBook geplaats maar dat werkt dus niet
zonder jou toevoeging zou ik de code die ik had gewoon in elk tabblad kunnen zetten en dat werkt
maar met één deze code alle tabbalden dit laten doen is niet mogelijk
zet ik de code zoals nu in een los tabblad dan maakt hij 3 cellen Zwart! ipv 1
waar 1 voldoende is
 
Toch werkt het hier prima. Dus je doet iets niet goed en het hoort niet in ThisWorkbook thuis maar in het werkblad. Je moet natuurlijk wel het juiste blad actief maken in je loop.
 
lukt me niet , ik ga de code maar apart invoeren
Dacht dat het eenvoudiger zou zijn
Bedankt voor de moeite

Don
 
@Don:
jouw macro in bericht #1 voegt een rij in en maakt de cel boven de cel waarop je gedubbelklikt hebt, zwart. Dat invoegen lukt in jouw macro trouwens alleen als de bewuste cel niet leeg is (althans in Excel 2010, dat ik op dit moment voor me heb).
Mijn vraag is: wil je, als je in een willekeurig blad op een cel dubbelklikt, dat dan in alle bladen op precies dezelfde plaats een rij wordt ingevoegd en dat ook in alle bladen precies dezelfde cel zwart wordt? Als het antwoord JA is, dan is dat eenvoudig te verwezenlijken. Als het antwoord NEE is, dan moet eerst per blad bepaald worden WAAR precies het een en ander moet gebeuren. Dus dan moet bekend zijn op grond waarvan ik welk blad de actie moet gebeuren en in welke cel.
 
Dat laatste is het geval
maar omdat het zo verschillend is waar die streep moet komen is dat misschien ook teveel gevraagd
zou alleen graag willen dat ik met dubbelkik het voor elkaar kreeg
edmoor heeft dat voor mij gemaakt bij hem werkt het blijkbaar wel
maar ik snap niet hoe wat waar in te voegen
antwoord #11 snap ik gewoon niet

Don
 
Laatst bewerkt:
Als ik de code zo plaats

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
For i = 1 To ActiveWorkbook.Sheets.Count
Selection.Insert Shift:=xlDown
    With Selection.Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .ThemeColor = xlThemeColorLight1
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With
Next i
End Sub
en mijn werkblad heeft 3 tabbladen
dan maakt hij 3 zwarte strepen onder elkaar en op de andere tabbladen gebeurd niks
 
antwoord #11 snap ik gewoon niet

Ok, probeer dit eens:

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    For i = 1 To ActiveWorkbook.Sheets.Count
        Sheets(i).Select
        Selection.Insert Shift:=xlDown
        With Selection.Interior
            .Pattern = xlSolid
            .PatternColorIndex = xlAutomatic
            .ThemeColor = xlThemeColorLight1
            .TintAndShade = 0
            .PatternTintAndShade = 0
        End With
    Next i
End Sub

Maar daarmee is nog steeds niet bepaald welke cellen zwart moeten worden.
 
Laatst bewerkt:
A@Don,
Als de zwarte streep (= zwarte cel) in elk blad op een verschillende plaats moet komen zonder dat via Excel te berekenen is waar dat dat precies is, dan zit er niets anders op dan in elk blad afzonderlijk opdracht te geven om die streep te trekken. Het heeft dan ook geen zin om in de macro een loop te maken waarmee alle aanwezige bladen worden doorlopen, want die macro zou in elk blad hetzelfde doen en je schrijft dat het in elk blad anders is. Toch schrijf je dat je een macro wil die in alle bladen tegelijk wat doet. Hoe zie je dat dan?
De macro's uit bericht #8 en #15 zijn niet juist, maar het is niet moeilijk om die aan te passen. Als je bovenstaande vraag hebt beantwoord, kan ik gerichter antwoorden. Het is zeker niet nodig om een volledige macro in alle bladen op te nemen.
 
Onderstaande code voor ThisWorkbook voegt een cel toe bij het dubbelklikken en maakt vervolgens deze cel zwart.

Code:
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
ActiveCell.Insert
Target.Offset(-1, 0).Interior.Color = vbBlack
End Sub
Bovenstaande code geldt voor alle werkbladen.

Met vriendelijke groet,


Roncancio
 
Even iedereen bedanken voor hun bijdrage

Roncancio , dit is 99,99%

wat ik graag wou hebben
1 code die op alle tabbladen zijn werk doet
diit werkt perfect,
ik heb een aantal bladen in mijn file waar het niet nodig is
en dan blad 1 t/m 53 (zijn gewoon nummers) - elk tabblad is voor een week - Verlofboekje -
maar als de code enkel zo werkt dat het voor ALLE werkbladen van toepassing is
dan ga ik dit gewoon zo gebruiken.

je hebt me (alweer) een mooie oplossing geboden
thanks
Don :thumb:
 
Laatst bewerkt:
Don,

Nee je moet dit niet in elk blad zetten.
Hij heeft beschreven wat je moet doen.

Ik heb het net getest en het werkt dan in elk Blad.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan