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

Hoe via code de naam van een tabblad als variabele te gebruiken

Status
Niet open voor verdere reacties.

JohanKoers

Gebruiker
Lid geworden
7 jul 2022
Berichten
7
Ik werk met excel 2019 en werk aan een sheet waat ik de verbouwing van mijn huis ga plannen.
Momenteel werkend dat als ik een nieuw project toevoeg (in tab Overzicht werk in kolom A) dat er een nieuw tabblad gemaakt wordt met de naam van dit veld.

Dus als je in kolom A1 een naam typt, wordt er een nieuwe gemaakt bijvoorbeeld badkamer of woonkamer of wat dan ook. Dan moeten de waardes van die nieuwe tab (welke naam deze nieuwe tab ook heeft) op B1 en B40 weergegeven worden in tab overzicht werk in kolom B en C naast waar je net de nieuwe naam hebt ingevoerd. Dit kan elke rij zijn. Het hele idee van is dat er voor elk project een tab is met een totaal overzicht in tab Overzicht werk.
Nu loop ik vast op stukje hoe in verwijs naar dit tabblad omdat de naam altijd anders is.

Hier de link naar bestand: https://www.dropbox.com/t/WWQIsnyX66wtRvFT

Dit is de code tot nu toe:

On Error GoTo Foutmelding:


If Target.Column = 1 Then

Sheets("Template").Copy after:=Sheets(Sheets.Count)
ActiveSheet.Name = Target

End If

Exit Sub

Foutmelding:
MsgBox "Dit werkblad bestaat al.", vbExclamation, "Werkblad bestaat al."

Alvast dan voor de moeite,
 
In je voorbeeldcode is de bedoelde naam: target.
Daar kan je naar verwijzen met bijvoorbeeld: Sheets(target)

Wijzig tevens je code eens in dit:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column = 1 Then
        If Evaluate("ISREF('" & Target & "'!A1)") Then
            MsgBox "Werkblad " & Target & " bestaat al.", vbExclamation, "Werkblad bestaat al."
        Else
            Sheets("Template").Copy after:=Sheets(Sheets.Count)
            ActiveSheet.Name = Target
        End If
    End If
End Sub
 
Laatst bewerkt:
Thx, ben vergeten te zeggen dat ik echt beginner ben in code haha. De eerste code heeft me heel veel tijd gekost maar zo gaaf dat tab toevoegen werkte. Kun je met iets verder helpen hoe ik dan kopieer met Sheets(target)
 
Wat wil je waar vandaan waar naar toe kopiëren?
 
Als in kolom A1 tabblad Overzicht werk op bijvoorbeeld op rij 6 een klus wordt toegevoegd, laten we zeggen keuken Dan word tab keuken gemaakt in dat geval zou ik van dit nieuwe tabblad de waardes B1 (prioriteit) en B40 (totaalprijs op Overzicht werk in B6 en C6 willen. Uitdaging is dat de naam van nieuwe tab veranderd en dat in dit geval B6 en C6 op tab Overzicht werk, als je een nieuwe klus toevoegt op bv rij 7 B7 en C7 worden.
 
De bedoeling is het bestad hier te plaatsen, niet op een externe locatie.
 
zo iets?
 

Bijlagen

  • Todo huis (hs).xlsm
    22,3 KB · Weergaven: 22
Jaaa, precies. Ga nog even uitvissen hoe precies werkt dan weer wat bij geleerd.:D
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan