• 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 uitvoeren na enter in bepaalde cellen

Status
Niet open voor verdere reacties.

Kaalbartje

Gebruiker
Lid geworden
3 jan 2020
Berichten
91
Ik heb 2 vragen:
1:Ik zou graag zien dat er een macro uitgevoerd wordt na het wijzigen van de cellen C4:C8 (aan te passen indien meer rijen).
Betreft Macro: ChangeWSName ook op te roepen met ctrl+r

2:
Code van Cow18:
Code:
Sub Horizontaal()
   With Sheets("Voorbeeld")
      Set c = Range("MijnDatums")                'bereik wordt bepaald door een gedefinieerde naam
      On Error GoTo ToonAlles                    'loopt er iets fout in de volgende rij = alle kolommen tonen
      If c.SpecialCells(xlVisible).Count <> c.Cells.Count Then GoTo ToonAlles   'toggle-functie, vorige keer minstens 1 kolom verborgen = eerst alles terug tonen
      On Error GoTo 0                            'einde reageren op fout

      rij2 = Application.Transpose(Application.Transpose(c))   ' gegevens >> array
      kol1 = Application.Match(CLng(Range("Van").Value), rij2, 0)   'positie datum "VAN" (omzetten naar Long)
      kol2 = Application.Match(CLng(Range("Tot").Value), rij2, 0)   'positie datum "TOT" (omzetten naar Long)

      If IsNumeric(kol1) And IsNumeric(kol2) Then   'beide datums gevonden
         If kol1 > kol2 Then GoTo ToonAlles      'VAN groter dan TOT = alles tonen
         c.EntireColumn.Hidden = True            'eerst c helemaal verbergen
         c.Offset(, kol1 - 1).Resize(, kol2 - kol1 + 3).EntireColumn.Hidden = False   'dit deel ook tonen, hou rekening met samengesteld karakter !!!
      Else
         GoTo ToonAlles                          'minstens 1 datum niet gevonden
      End If
   End With
   'Application.Goto c, 0
   Exit Sub

ToonAlles:
   c.EntireColumn.Hidden = False
End Sub
Ik zou "Voorbeeld" willen verwijzen naar tabblad A1 van tabblad "Voorbeeld". Dit wordt dus een dynamische naamgeving.

Hopelijk kunnen jullie helpen met jullie magische codes :)
 

Bijlagen

  • Personele inzet voorbeeld.xlsm
    321,9 KB · Weergaven: 55
Dit achter het blad Voorbeeld:
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Intersect(Target, Range("C4:C8")) Is Nothing Then ChangeWSName
End Sub
 
Hoi Edmoor,

Werkt super. Dankje wel.
Heb je misschien ook een idee voor vraag 2?
 
Dit bedoel je?
Code:
Sub Horizontaal()
   With Sheets(Sheets("Voorbeeld").range("a1").value)
 
Hoi HSV,

Dank voor je antwoord maar helaas.
De naam van de sheet staat in A1. Dus "Voorbeeld" is dynamisch vanuit A1.
Als er in A1: Piet staat moet de sub Horizontaal naar dat tabblad kijken
 
Zet eens
Code:
With sheets(range("a1").value)
 
Als de code bedoelt is voor elk actieve blad, dan moet inderdaad 'sheets("voorbeeld")' eruit.

In mijn code maakt het niet uit van welk blad je de code aanroept.
Het zal altijd kijken wat er in A1 staat van tabblad 'Voorbeeld', ook Voorbeeld zal daarin werken.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan