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

Meerdere tabbladen kopiëren met naam uit cellen.

Status
Niet open voor verdere reacties.

eddekik

Gebruiker
Lid geworden
18 okt 2020
Berichten
5
Beste mensen,

Heeft iemand misschien een voorbeeld om 3 namen uit het 1e tabblad te kopiëren voor de andere tabbladen.

Tabblad1: heeft de namen bijvoorbeeld: A1: Piet, A2: Kees A3: Joop
Tabblad 2 heeft een basisformat dat gekopieerd moet worden.

Alle namen die er zijn + de opmaak van tabblad 2 moet gekopieerd worden.

Alvast bedankt voor jullie wijze ideeën.
 
Een goed gebruik dat meer duidelijkheid geeft is het plaatsen van een voorbeeld document.
 
Je hebt gelijk hierbij een voorbeeldbestand.

Dus een namenlijst die meerdere namen kan bevatten en dit als tabbladnaam kopieert met de basislayout.

Dit voorbeeld past 1 tabblad naam aan: (maar dat is niet de bedoeling)

Function SheetExists(strNaam As String)
Dim a As Variant
On Error Resume Next
a = Sheets(strNaam).Range("A1")
SheetExists = (Err = 0)
End Function

////////////////////////////////////////////////////////////

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Target.Address = "$A$1" And Len(Target) > 0 Then
If Not SheetExists(Target.Value) Then
Sh.Name = Target
Else
MsgBox "De bladnaam '" & Target & "' bestaat al"
Application.EnableEvents = False
Application.Undo
Application.EnableEvents = True
End If
End If
End Sub
 

Bijlagen

  • Cel inhoud naam tabblad.xlsm
    20,1 KB · Weergaven: 30
Laatst bewerkt:
En welk nut heeft dit? Even los van dat er tig voorbeelden te vinden zijn over hoe je het kan doen. 'Basislayout (voorbeeld)' lijkt mij nogal statisch is de vraag wel compleet?
 
Klopt basislayout is nu niet af.
Bedoeling is voor elke klant een eigen tabblad te laten maken uit een lijst met namen. (met variabele gegevens.)

Hoe zou je het anders kunnen doen?
 
Laatst bewerkt:
Waarom wil je voor elke klant een eigen tabblad? Alles in 1 tabel houden en werken met filters/draaitabellen is veel eenvoudiger en heb je geen VBA voor nodig.
Begin dus eerst met de basis voordat je met code begint.

Om op jouw vraag terug te komen:
Om tabjes aan te maken in een lusje kan je zoiets gebruiken.
Code:
Sub VenA()
  ar = Sheets("Namenlijst").Cells(1).CurrentRegion
  For j = 1 To UBound(ar)
    If ar(j, 1) <> "" And IsError(Evaluate("'" & ar(j, 1) & "'!A1")) Then
      MsgBox ar(j, 1)
    End If
  Next j
End Sub

Waarbij je op de plek van de Msgbox dan dat neerzet wat jij wil laten gebeuren.
 
Ik schrijf het toch liever in VBA omdat er dan meer mogelijk is. Daarnaast wil ik het graag leren.

Het voorbeeld dat je geeft werkt. Maar welke code heb ik nodig voor het kopieren en plakken van een tabblad met die naam ?


Ik dacht aan zoiets: (Kopieert en plakt wel maar de namen kloppen nog niet.)

Sub VenA()
ar = Sheets("Blad1").Cells(1).CurrentRegion
For j = 1 To UBound(ar)
If ar(j, 1) <> "" And IsError(Evaluate("'" & ar(j, 1) & "'!A1")) Then
'MsgBox ar(j, 1)

Sheets("Blad2").Select
Cells.Select
Range("A4").Activate
Selection.Copy
Sheets.Add After:=ActiveSheet
ActiveSheet.Paste

End If
Next j
End Sub
 
Laatst bewerkt:
Plaats code svp tussen codetags.

Het lijkt mij de omgekeerde wereld als je niets van de basis functionaliteiten weet om het dan met VBA op te lossen.
 
Bedoel je zoiets?
 

Bijlagen

  • Cel inhoud naam tabblad.xlsm
    24,6 KB · Weergaven: 49
Ja klopt zoiets. Bedankt mannen.

Hebben jullie nog een idee om een link naar een tabblad te maken?
Op basis van positie en niet op naam. (naam kan wel eens wijzigen namelijk)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan