• 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 en bereik uit ander blad

Status
Niet open voor verdere reacties.

jolly01

Gebruiker
Lid geworden
12 apr 2009
Berichten
486
De macro's in Blad 2 (Agents) en module 1 van HSV zorgen ervoor dat in kolom B blad 2 (Agents) de agents de juiste kleur krijgen uit het bereik D2:H124 van dit blad.
Nou wil ik dat kolom B van Blad 1 (Logboek) dezelfde behandeling krijgt als kolom B van blad 2 (Agents).

Ik heb de macro uit Blad 2 (Agents) gekopieerd naar Blad 1 (Logboek) en
Code:
If Not Intersect(Target, Range("B3:B124")) Is Nothing Then
 With Range("D2:H124")

Code:
If Not Intersect(Target, Range("B3:B124")) Is Nothing Then
 With [COLOR="#FF0000"]Sheets ("Teams") Range ("D2:H124")[/COLOR]

de macro uit module 1 gekopieerd naar module 2 genaamd hsv1


Code:
Dim cl As Range, c, teller As Long
 With Range("D2:H124")


Code:
Dim cl As Range, c, teller As Long
 With [COLOR="#FF0000"]Sheets ("Teams") Range ("D2:H124")[/COLOR]


Als ik het bereik D2:H124 uit blad Teams wil halen gaat het fout.
Wat doe ik fout? Moet ik het zo aanpakken of is er een beter alternatief als ik kolom B in Blad Logboek dezelfde behandeling wil geven?
 

Bijlagen

Laatst bewerkt:
Ik zie maar een fout en weet niet of dit een type-fout bij het posten was, anders is er een punt vergeten:

Code:
With Sheets("Teams")[B][/B][COLOR="#FF0000"].[/COLOR]Range("D2:H124")

Verder kan ik niet testen want alle werkbladen zitter er niet bij.
 
Bedankt voor je input Cobbe!

De punt heb ik toegevoegd, echter geeft de macro nog steeds een foutmelding.

Ik heb de oorspronkelijke sheet toegevoegd en hier werkt de macro van HSV prima in kolom B van blad (Teams
Er moet toch een manier zijn kolom B van blad (Logboek) dezelfde behandeling te geven uit het bereik D2:H124 van dit blad?
Je schreef:
Verder kan ik niet testen want alle werkbladen zitter er niet bij.
Wat bedoel je daarmee?
 

Bijlagen

Laatst bewerkt:
Ja dat was natuurlijk dom van mij, maar half naar gekeken.
Maar hier de macrocode die dat wel doet:

Code:
Sub hsv_cobbe()
Dim cl As Range, c, teller As Long
 With Sheets("Agents").Range("D2:H124")
  For Each cl In [COLOR="#FF0000"]Sheets("Logboek").[/COLOR]Range("b3:b124").SpecialCells(2)
    On Error Resume Next
  If WorksheetFunction.CountIf(Range(Range("b3"), cl.Address), cl) > 1 Then
     teller = -1
   Set c = .Find(cl, , xlValues, xlWhole)
 Do Until teller = WorksheetFunction.CountIf(Range(Range("B3"), cl.Address), cl)
     cl.Interior.ColorIndex = c.Interior.ColorIndex
            teller = teller + 1
     Set c = .FindNext(c)
       Loop
      Else
    cl.Interior.ColorIndex = .Find(cl, , xlValues, xlWhole).Interior.ColorIndex
    End If
  Next cl
 End With
End Sub

Er was niet veel aan toe te voegen aan de code van HSV.:)
 

Bijlagen

Helemaal top Cobbe!
Ik dacht al dat de oplossing eenvoudiger is, met het copieëren van de code en de aanpassing van het bereik alleen in module 1
 
Cobbe, is er een mogelijkheid dat de macro hsv_cobbe wordt uitgevoerd iedere keer als ik in de cellen van kolom B Blad (Logboek) een naam invoer?
 
Ja dat kan, enkel de macro aanroepen in je Change_event.
Heb ook een validatie toegepast voor het invullen van de namen, ik hoop dat dat mocht.
 

Bijlagen

Super, dit werkt.

enkel de macro aanroepen in je Change_event

Waar kan ik dat precies instellen? Als ik jouw code vergelijk met de code uit de vorige bijlage zie ik geen verschil.

Heb ook een validatie toegepast voor het invullen van de namen, ik hoop dat dat mocht.

Bedankt voor de extra input! ik wil hiervoor echter een dynamisch bereik beschreven in mijn andere post, waar ook al reacties op staan.
 
Ik keek niet goed.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("b3:b100")) Is Nothing Then
        Target.Offset(, -1).Value = Now
    End If
    [COLOR="#FF0000"]hsv_cobbe[/COLOR]End Sub
 
Dit is je Change-Event en daar kun je je macro direct aanroepen:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("b3:b100")) Is Nothing Then
        Target.Offset(, -1).Value = Now
    End If
    [B][/B][COLOR="#FF0000"]hsv_cobbe[/COLOR]
End Sub

Ook de validatie is nu dynamisch zoals gevraagd.
 

Bijlagen

Onze posts hebben elkaar gekruist. Nogmaals bedankt voor je input!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan