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

tabblad naam in werkblad/cel

Status
Niet open voor verdere reacties.

davylenders123

Gebruiker
Lid geworden
20 jun 2010
Berichten
902
Weet er iemand hoe ik in cel b 1 de naam van het werkblad kan laten komen.


Het is een bestand en er worden steeds nieuwe werkbladen aan toegevoegd.
De werkbladen krijgen een naam en deze naam moet ook nog eens getypt worden in cel b1.
Dus 2 maal typen.
Zou graag nu een formule bv willen zetten in cel b1 dat de naam van het werkblad daar wordt overgenomen.
Maar weet niet hoe.:eek:
 
Deze in een module:
Code:
Function Bladnaam() As String
    Application.Volatile
    Bladnaam = ActiveSheet.Name
End Function

In een cel tik je dan: =Bladnaam()
 
Sorry ben een beetje te snel geweest.

In het eerste werkblad lukte het.
Als ik in het volgende werkblad in de cel =bladnaam() tik dan is het ook juist.
Maar als ik dan terug ga naar het vorige werkblad dan staat daar de naam van het laaste tabblad.

Er wordt elke keer de naam van het laatste werkblad dat je hebt gedaan overgenomen in al de vorige werkbladen.
Dus het werkblad waar je het laatste de formule inzet die naam komt op al de werkbladen waar de formule al instaat .
 
Dan moet je de regel Application.Volatile eruit laten. Nadeel is dan wel dat wanneer de naam van een blad wijzigt, dit niet automatisch in de betreffende cel wordt bijgewerkt.
 
Zo werkt het wel dan blijven de namen wel staan.
Maar als dan de naam wijzigd dan wijzigd de naam in de cel inderaad niet mee.

Ik heb een werkblad met de naam blanco.
Heb hier een buton aan toegevoegd en door daar op te klikken voegd hij dan een nieuw werkblad in dat het zelfde is dan het blanco werkblad.
Code:
Sub Nieuwe_Aanmaken()
'
'
' De macro is opgenomen op 3-10-2014 door Lenders, Davy.
'

'
    Sheets("Blanco").Select
    Sheets("Blanco").Copy After:=Sheets(3)
    
    ActiveSheet.Unprotect
    ActiveSheet.Shapes("Button 1").Select
    Selection.Delete
    
End Sub
Dan moet ik de naam van het werkblad aanpassen naar een naam van een persoon.
Dus dan ben ik er eigenlijk nog niks mee.

Is er mischien nog een ander oplossing?
 
Code:
Sub Nieuwe_Aanmaken()
'
'
' De macro is opgenomen op 3-10-2014 door Lenders, Davy.
'

'
    Dim Bladnaam As String
    Sheets("Blanco").Select
    Sheets("Blanco").Copy After:=Sheets(3)
    
    ActiveSheet.Unprotect
    ActiveSheet.Shapes("Button 1").Select
    Selection.Delete
    
    While Bladnaam = ""
        Bladnaam = InputBox("Bladnaam: ", "Bladnaam")
    Wend
    ActiveSheet.Name = Bladnaam
    [B1] = Bladnaam
End Sub

Je zou er ook nog een controle in kunnen bouwen of de opgegeven naam al bestaat.
 
Laatst bewerkt:
ofwel deze
Code:
Function SheetName(rCell As Range, Optional UseAsRef As Boolean) As String
    Application.Volatile
    SheetName = IIf(UseAsRef = True, "'" & rCell.Parent.Name & "'!", rCell.Parent.Name)
End Function
met dan in b1 =SheetName(A1)

of met formule in b1
PHP:
=DEEL(CEL("filename";B1);VIND.ALLES("]";CEL("filename";B1))+1;255)
 
Edmoor /Warme bakkertje

Jullie oplossingen werken alle 3.
Heb die van Edmoor genomen omdat deze eigenlijk wel heel makkelijk is met de popup die er komt.

Alle 2 bedankt voor jullie hulp:thumb:
 
Vermijd Select en Selection in je code (in 99% v/d gevallen is dit overbodig en werkt vertragend)
Code:
Sub Nieuwe_Aanmaken()
'
'
' De macro is opgenomen op 3-10-2014 door Lenders, Davy.
'

'
    Dim Bladnaam As String
    
    While Bladnaam = ""
        Bladnaam = InputBox("Bladnaam: ", "Bladnaam")
    Wend
    
    If Not Evaluate("isref(" & Bladnaam & "!A1)") Then
        Sheets("Blanco").Copy , Sheets(3)
        With ActiveSheet
            .Unprotect
            .Shapes("Button 1").Delete
            .Name = Bladnaam
            .[B1] = Bladnaam
        End With
    Else
        MsgBox "Bladnaam bestaat reeds"
    End If
    
End Sub
 
Laatst bewerkt:
Ben nu verder geraakt met een code van iemand op dit forum.
Heb dit aangepast naar mijn bestand en het werkt.

Heb enkel nog een paar kleine probleempjes.
Die ik maar niet klaar krijg.

1. De werkbalden zullen allemaal met achternaam en voornaam zijn.
Om de hyperlink te laten werken moet er tussen de 2 een _ staan , als ik hier een spatie neem krijg ik de melding dat koppeling niet bestaat.
Wat moet hiervoor gewijzigd worden in de code dat die _ kan vervangen worden door een simpel spatie ?

2. De hyperlinks die nu gemaakt worden op het werkblad index staan op volgorde van de werkbladen.
Kan dit op alfabetische volgorde ?

3. De werkbladen" index blanco en ," worden ook telkens mee opgenomen als hyperlink.
Als ik deze verwijder en dan terug een nieuw werkblad aanmaak komen deze terug.
Kunnen deze 3 werkbladen niet mee opgenomen worden als hyperlink in tabblad index.

Deze 3 zaken krijg ik maar niet in orde :(



Code:
Sub Nieuwe_Aanmaken()
'
'
' De macro is opgenomen op 3-10-2014 door Lenders, Davy.
'

'
    Dim Bladnaam As String
    
    While Bladnaam = ""
        Bladnaam = InputBox("Bladnaam: ", "Bladnaam")
    Wend
    
    If Not Evaluate("isref(" & Bladnaam & "!A1)") Then
        Sheets("Blanco").Copy , Sheets(3)
        With ActiveSheet
            .Unprotect
            .Shapes("Button 1").Delete
            .Name = Bladnaam
            .[B1] = Bladnaam
        End With
    Else
        MsgBox "Bladnaam bestaat reeds"
    End If
     Sheets("Index").Select
    Range("A2").Select
    ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
        "", TextToDisplay:=""
    
     Range("F1").Select
     
     
     ' bladen verzamelen
Dim Blad As Worksheet
Dim Kolom As Integer
Dim Rij As Integer
Rij = 0
Kolom = 0

[A2].Select
For Each Blad In ActiveWorkbook.Sheets
    ActiveCell.Offset(Rij, Kolom).NumberFormat = "@"
    ActiveCell.Offset(Rij, Kolom).Value = Blad.Name
    Rij = Rij + 1
    If Rij = 200 Then
        Rij = 0
        Kolom = Kolom + 1
    End If
    Next Blad

' werkbladen omzetten naar hyperlinks
  Dim Bereik As Range
  Dim Cel As Range
  [A2].Select
  Set Bereik = ActiveSheet.UsedRange
  For Each Cel In Bereik
  If Cel.Value <> "" Then
  Cel.Hyperlinks.Add Cel, "", Cel.Value & "!" & ActiveCell.Address
  End If
  Next Cel

  ' werkbladnamen invullen tot met 200
      Range("A2:J200").Select
    Selection.Font.ColorIndex = 1
    With Selection.Font
        .Name = "Times New Roman"
        .Size = 12
        .Underline = xlUnderlineStyleSingle
    End With
[A1].Select
Application.ScreenUpdating = False


End Sub
 

Bijlagen

  • personeel fiche magazijn.xls
    223 KB · Weergaven: 72
Zet de bladnaam tussen enkele quotes: "'Jan Jansen'!A1"
 
Ik heb er anders een voorbeeld bij gezet hoe je een bladnaam met spaties toch kunt gebruiken.
 
Oei zie juist dat ik dit in verkeerde vraag heb gepost.
Had in de andere moeten zijn.
Kan ik dit zelf nog oplossen :eek:

Ben niet goed bezig :eek:

Edmoor

Waar heb je dat voorbeeld staan ?
 
Kan gebeuren ;)
Het voorbeeld staat in #12
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan