VBA automatisch cellen doorverwijzen naar specifieke tabblad

Pagina: 1
Acties:

Onderwerpen

Vraag


Acties:
  • 0 Henk 'm!

  • Ozzy1
  • Registratie: Februari 2020
  • Laatst online: 01-02-2022
Mijn vraag
Hoi allemaal,

Kan iemand mij helpen met een vba codering. Ik kwam er niet uit. Wat mijn wens is dat de tabblad “Namen Medewerkers” met range A5:P10 automatisch naar tabblad “Planning 1”, “Planning 2”, “Planning 3” doorverwijst bij wijzigingen in tabblad “Namen Medewerkers”. De kleuren ook automatisch doorverwijzen naar “Planning 1”, “Planning 2”, “Planning 3”.
Er is ook een filter bij deze “Planning 1”, “Planning 2”, “Planning 3”. Is hier een mogelijkheid en of oplossing er in? Graag ontvang ik uw reacties? En mogelijke coderingen.

Bedankt.

Relevante software en hardware die ik gebruik
...

Wat ik al gevonden of geprobeerd heb
...

Alle reacties


Acties:
  • +1 Henk 'm!

  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB

Front verplichte underscores

Welkom @Ozzy1 :)

Je lijkt nu een bestellijst over de muur te gooien zonder daadwerkelijk zelf al code te hebben. Da's niet de bedoeling - immers kan je dan ook iemand inhuren het te doen. We denken graag mee, maar nadruk ligt wel op meedenken.

Als je aangeeft met VBA te willen werken, ga ik er van uit dat je dus al wel bekend bent met VBA. Kan je aangeven waar je vastloopt? Voor elk van de stappen moet wel voorbeeldcode te vinden zijn, of liever zelf te maken.

(En als je er niet bekend mee bent, ga dan eerst de basics leren en wat oefenen voor je er in de praktijk mee gaat werken. En/of doe het zoveel mogelijk zonder VBA: draaitabellen, voorwaardelijke opmaak, etc)

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)


Acties:
  • 0 Henk 'm!

  • Ozzy1
  • Registratie: Februari 2020
  • Laatst online: 01-02-2022
Beste Er zijn twee punten waar ik vastloop. gegevens en kleur van cel

cellen met namen en gegegevens:

Blad5 "Namen Medewerkers" wat verwezen wordt naar Blad2, 3 en 4 "Planning 1, 2 en 3"
Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
Dim WB As Worksheet
    If Not Intersect(Target, Range("A6:P10")) Is Nothing Then
        For Each WB In ActiveWorkbook.Worksheets
            Worksheets("Planning 1").Value = ActiveSheet.Range("A6:P10").Value
        Next
    
    End If
End Sub

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
Dim WB As Worksheet
    If Not Intersect(Target, Range("A6:P10")) Is Nothing Then
        For Each WB In ActiveWorkbook.Worksheets
            Worksheets("Planning 2").Value = ActiveSheet.Range("A6:P10").Value
        Next
    
    End If
End Sub

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
Dim WB As Worksheet
    If Not Intersect(Target, Range("A6:P10")) Is Nothing Then
        For Each WB In ActiveWorkbook.Worksheets
            Worksheets("Planning 3").Value = ActiveSheet.Range("A6:P10").Value
        Next
    
    End If
End Sub

Option Explicit
Public Function CELKLEUR(ByRef cel As Range) As Variant
    Application.Volatile True
    CELKLEUR = cel.Interior.ColorIndex
If Not Intersect(Target, Range("A6:D10")) Is Nothing Then
        For Each WB In ActiveWorkbook.Worksheets
            WB.Range("A6:D10").Value = ActiveSheet.Range("A6:D10").Value
        Next
End Function

Vanuit blad5 ( naar blad 2, 3 en 4. planning 1, 2, en 3)

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
Dim WB As Worksheet
    If Not Intersect(Target, Range("A6:P10")) Is Nothing Then
        For Each WB In ActiveWorkbook.Worksheets
            Worksheets("Namen Medewerkers").Value = ActiveSheet.Range("A6:P10").Value
        Next
    
    End If
End Sub

Option Explicit
Public Function CELKLEUR(ByRef cel As Range) As Variant
    Application.Volatile True
    CELKLEUR = cel.Interior.ColorIndex
If Not Intersect(Target, Range("A6:D10")) Is Nothing Then
        For Each WB In ActiveWorkbook.Worksheets
            WB.Range("A6:D10").Value = ActiveSheet.Range("A6:D10").Value
        Next
End Function

Alvast bedankt voor u reactie en het meedenken.

[ Voor 0% gewijzigd door F_J_K op 17-02-2020 11:39 ]


Acties:
  • 0 Henk 'm!

  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB

Front verplichte underscores

Ik heb de opmaak wat aangepast door code tags toe te voegen (zie 'wijzig' bij je bericht voor wat ik heb aangepast.

-

Ik zie viermaal Workbook_SheetSelectionChange maar dat kan maar eenmaal bestaan: er is immers maar 1 workbook om een selection in te wijzigen. Die wil je dan aanpassen naar checken op zowel geslecteerde sheet (Sh.name) als cellen (de intersect op Target).

De If Not Intersect(Target, Range in je CELKLEUR functie kan niet werken, er is immers geen target. Ook wordt de functie nergens aangeroepen. Ik snap dus eerlijk gezegd niet wat er nu de bedoeling is.

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)


Acties:
  • 0 Henk 'm!

  • Ozzy1
  • Registratie: Februari 2020
  • Laatst online: 01-02-2022
Deze namen en gegevens wil ik automatisch door laten verwijzen naar andere werkbladen.( Werkblad Planning 1, Planning 2 en Planning 3)
hoef ik niet op elke blad handmatig in te typen.

Cel A1 bevat ook celkleur:
groep	code	voornaam	achternaam 			
1	om	piet		callum			
4	lfe	klaas		oma			
2		jan		poatrol			
3		hans		normal			
1	zi	marcel		omapmi

[ Voor 7% gewijzigd door F_J_K op 17-02-2020 12:38 . Reden: [pre] tags ]


Acties:
  • 0 Henk 'm!

  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB

Front verplichte underscores

Ik kom helaas niet verder in mijn begrip van het doel van de code die je geeft.

Als ik je goed begrijp en er in Planning3 altijd de code 'om' staat maar dat kleur 1 en naam Piet kunnen wijzigen:

- heb een (dus niet vier) Onchange() functie in alleen blad Namen. Check daar welke cel is gewijzigd met die Intersect().

- ga per sheet Planning1/2/3 met een FOR loop per regel de lijst codes langs

- pas op die regel de juiste kolommen aan. De kleur pas je dan aan met cel.Interior.ColorIndex = %kleur%

(Je kunt je druk maken over of het nu cel A3 of C5 is die is gewijzigd, maar als het weinig voorkomt dat maakt dat voor de performance niet uit en blijft je code tenminste relatief simpel).

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)


Acties:
  • 0 Henk 'm!

  • Ozzy1
  • Registratie: Februari 2020
  • Laatst online: 01-02-2022
Beste,

De bedoeling is om vanuit Tabblad Namen Medewerkers,
gegevens automatisch Tabblad Planning 1, 2 en 3 overneemt. Celbereik A1:D5

cel A1 staan cijfer en cel is gekleurd.

Acties:
  • +1 Henk 'm!

  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

Als ik je goed begrijp wil je dat als je iets wijzigt op het eerste blad (bv een medewerker toevoegt, een cel een kleurtje geeft, of een naam van een medewerker verandert) dat diezelfde wijziging wordt doorgevoerd op andere bladen?

Als dat je wens is, is de oplossing simpel en zonder formules:
Selecteer voor je begint met tikken alle werkbladen die gewijzigd moeten worden met ctrl+klik of klik op eerste blad en shift+klik op het laatste blad. Doe dan je wijzigingen. Alles meteen doorgevoerd.

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland

Pagina: 1