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

tabbladnaam aanpaasen aan waarde in cel

Status
Niet open voor verdere reacties.
In een draaitabel kan je geen nummers intypen en je verwijst volgens mij naar een verkeerd linkje.
 
VenA,

Hartelijk dank voor je reactie :thumb:

De link is correct :d

In niels28 zijn bericht met de bijlage spelersdossier staat de volgende code :

Code:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Sh.Name = "voorblad" Then Exit Sub
On Error GoTo foutje
If Target.Address = "$A$1" Then Sh.Name = Target.Value
foutje:
If Err.Number = 1004 Then MsgBox "bladnaam bestaat al", vbExclamation
End Sub

Dit werkt prima.

In mijn draaitabel kan ik wel degelijk in het veld rek,nr wat ik in het gebied rapportfilter geplaats hebt een betaand nummer in typen en dan kies hij het rekening nr wat in de data zit.
Uiteraard kan ik alleen een nummer intypen wat in de range zit.

????

Friend
 
Laatst bewerkt:
Dat is een change_event, en wordt aangeroepen door target.
Daar het filter geen gebruik maakt van target loopt de code niet.
Zet ergens in het werkblad een formule met een verwijzing naar de cel van het filter.
De formule moet dan iets te berekenen hebben.
bv. =cel draaitabel*1

Je kan de procedure nu starten dmv. het "Private Sub Worksheet_Calculate()" event.
 
Harry, hartelijk dank voor je reactie :thumb:

Als ik *1 gebruik in bv cel B4 (B5*1) dan heb ik een probleem met sommige rek.nrs die met nul(len) beginnen, bv 0001.

Dan adviseer je om dit als volgt aan te roepen:

Je kan de procedure nu starten dmv. het "Private Sub Worksheet_Calculate()" event

Pas ik daar de code voor aan? En zo ja hoe?

Friend
 
1: Je kan gewoon een cel uitzoeken in het blad.
Maak er =subtotaal(9;draaitabelrange)

2: Dat is een event in de bewuste werkbladmodule.
 
Harry,

Als eerste nr 1:

dan krijg ik :

subt.jpg

Wat doe ik fout?

Friend
 
Dan is de cel waarschijnlijk opgemaakt als tekst.
Maak van de 9 een 3 (aantalarg i.p.v. som).
 
Harry,

Sorry dan krijg ik een 1

subt-2.jpg

Friend
 
Er is ook maar immers één argument zichtbaar dus de formule klopt wel.
Het maakt niet uit wat de uitkomst is, het gaat erom dat de event "worksheets_calculate' iets heeft om te berekenen.
 
Harry,

Punt 2, heb ik dus als volgt gedaan, waarschijnlijk niet goed want er gebeurd niets.

subt-3.jpg

???

Friend
 
Het is een draaitabel met een filter.
Er gebeurd niets met target dus.
Misschien heb je onderaan de draaitabel al de subtotalen staan, en is de gegeven formule overbodig.

Wat er wel gebeurd is dat het subtotaal veranderd als jij aan de filterknop zit.
Nu gaan de subtotalen veranderen, en gaat de code in werking.
Range("B5") veranderd van waarde.

Nu kun je kijken of het blad al bestaat of niet.
Even uit de losse pols.
Code:
private sub worksheet_calculate()
 if iserror(evaluate(range("b5") & "!a1")) then sheets.add (,sheets(sheets.count)).name = range("b5").value
end sub
 
Als je in plaats van plaatjes eens een excelbestand plaatst dan wordt het antwoord waarschijnlijk sneller gevonden.
 
VenA,

Dat wordt dan morgen want ik zal mijn bestand even moeten "verkleinen/aanpassen" om het van persoonlijke data te ontdoen.

Lees nl de data in van een ander bestand/pakket

Friend
 
VenA,

Dat is van mij maar ook een test bestand, daar zit niet deze vraag (nog) in.

Maar daar heeft Harry inmiddels een mooie oplossing voor gemaakt.

Komt later wel, als het goed is :d allemaal bij elkaar.

Maar bij deze nog even snel een voorbeeld/proef bestand voor dit probleem

Ik wil dus graag tabblad "blad2" veranderen in 00006 of andere waarde die in B3 staat.
Het ultieme doel is om de waarde, indien niet leeg, van E3 daar aan toe te voegen.

Dus "00006-vol" indien E3 is ingevuld en "00006" indien E3 niet is ingevuld

Hoor weer graag, hartelijk dank voor jullie reacties.

Friend
 

Bijlagen

Test het zo maar eens.
Code:
Dim check As Boolean
Private Sub worksheet_calculate()
If check = False Then
 If Range("E3") <> vbNullString Then
        If IsError(Evaluate("'" & Range("b3") & "-" & Range("E3") & "'!a1")) Then
           Sheets.Add(, Sheets(Sheets.Count)).Name = Range("b3") & "-" & Range("E3")
           Range("E3").ClearContents
        Else
           check = True
           MsgBox "Bladnaam al aanwezig"
           Exit Sub
        End If
    Else
      check = True
      MsgBox "cel E3 is leeg"
      Exit Sub
  End If
 End If
 check = False
End Sub
 
Harry,

Met dank voor je werk :thumb:

Ik krijg nu keurig :) een "nieuw" tabblad als ik via het filter een rekeningnummer kies + de toevoeging die in E3 staat.
Als ik een nummer intype krijg ik niets.

Echter de bedoeling is dat hij de naam van het huidige tabblad verandert + "eventueel" de toevoeging vermeld die in E3 staat.

Het mooiste zou zijn als ik een nummer via het filter kies of als ik in B3 zelf een nummer intype.


??? nog mogelijkheden?

Friend
 

Bijlagen

Je moet de code niet aanpassen.
Het buitenom declareren van 'check' staat daar niet voor niets.

Helaas begrijp ik de vraag niet.
Moet je nu én een nieuw blad, én het kunnen veranderen van een bepaald blad?
 
Harry,

Sorry voor de verwarring.

Wat ik wil is de naam van het tabblad veranderen dus niet het tabblad kopieëren en er de nieuwe naam aan meegeven.
Het huidige tabblad moet dus van naam veranderen.

Of ik het nummer nu in type of dat ik het kies via het filter het zou in beide gevallen de naam van het tabblad moeten wijzigen.

Friend
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan