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

referentie in sheetnaam dmv macro

Status
Niet open voor verdere reacties.

nmeijer

Gebruiker
Lid geworden
17 sep 2012
Berichten
81
Beste,
Ik ben bezig met een excel bestand waarin een nieuwe sheet wordt aangemaakt met als naam de huidige datum. Als ik deze sheet dmv een macro een naam wil geven via formules-name manager, dan krijg ik de naam wel kloppend maar de verwijzing werkt niet, kan iemand mij daarmee helpen?

Bvd,

Niels

Code:
ActiveWorkbook.Names.Add Name:=Format(Date, "_ddmmyyyy"), RefersToR1C1:= _
     "=[COLOR="#FF0000"]'huidige datum'[/COLOR]!R1:R1048576"
    ActiveWorkbook.Names(Format(Date, "_ddmmyyyy")).Comment = ""
 
Wat is de bedoeling, je maakt met deze macro een benoemd bereik aan en geen nieuw tabblad?


Niels
 
dat is de bedoeling ook, het aanmaken van een nieuwe sheet en dergelijke werkt al naar behoren.
 
Waar moet de naam dan naar verwijzen? nu verwijst je naar alle cellen in dat blad.

Niels
 
dat klopt, alleen de naam van het blad moet er nog juist in komen. de naam van het blad is de huidige datum.

Bvd
 
Waarom wil je een naam maken die naar alle cellen verwijst?
Zorg er wel voor dat je blad bestaat.

Code:
Sub test()

x = "='" & Date & "'!R1:R1048576"
ActiveWorkbook.Names.Add Name:=Format(Date, "_ddmmyyyy"), RefersToR1C1:=x

End Sub

Niels
 
Ik krijg hem niet werkend, Ik heb mijn volledige macro onder bijgevoegd, zou je willen kijken of ik het er zo goed in heb gezet?
Ik selecteer het volledige bereik omdat hiermee wordt gerekend in de eerste sheet, doormiddel van dropdown lijstjes kies ik de juiste datum en adhv die datum wordt de betreffende sheet geraadpleegd.

Mvg,
Niels
 
Je macro staat er niet bij.
Het lijkt mij niet slim om het hele bereik te kiezen, dat zijn heel veel cellen waar je niks mee doet maar toch berekend moeten worden, als je straks veel formules hebt wordt je bestand heel traag.
Plaats anders even een voorbeeld bestandje ontdaan van gevoelige informatie.


Niels
 
Mijn excuses :o.
In de bijlage eerst het bestand waar de gegevens heen moeten en daarna een bestand waar de gegevens staan. De bedoeling is dat de macro (hieronder weergegeven, staat in mn persoonlijke map) de gegevens uit het tweede bestand bewerkt en in een nieuwe sheet in het eerste bestand plakt, dan moet de naam van de sheet de huidige datum worden en ook het probleem zoals uitgelegd. (de keuze box op ja klikken).

Code:
    Sub Planning()
    Range("A:A,C:I,K:N,Z:AA").Select
    Selection.Delete Shift:=xlToLeft
    Columns("L:M").Select
    Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
    If vbNo = MsgBox("Today's planning?", vbYesNo) Then Exit Sub
    Columns("A:O").Select
    Columns("A:O").EntireColumn.AutoFit
    Cells.Select
    Selection.Copy
    Windows("Intertoys_aflevertijden.xlsx").Activate
    Sheets.Add After:=Sheets(Sheets.Count)
    Sheets(Sheets.Count).Name = Format(Date, "DD-MM-YYYY")
    ActiveSheet.Paste
    x = "='" & Date & "'!A1:AA1048576"
    ActiveWorkbook.Names.Add Name:=Format(Date, "_ddmmyyyy"), RefersToR1C1:=x
    End Sub

Bvd,
Niels
 

Bijlagen

Laatst bewerkt:
Ik heb een aantal select uit je code gehaald want die zijn niet nodig.
Je geeft nog steeds niet aan waarom je alle cellen in het bereik wilt.
Ik zie in je macro ook dat je alle cellen kopieert en plakt, misschien dat je het nu niet merkt maar het komt de snelheid niet ten goede.

PS ik heb niet alles kunnen testen omdat de namen van de bestanden en tabbladen in de macro niet kloppen met de voorbeelden.

Code:
    Sub Planning()
    Range("A:A,C:I,K:N,Z:AA").Delete Shift:=xlToLeft
    Columns("L:M").Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
    If vbNo = MsgBox("Today's planning?", vbYesNo) Then Exit Sub
    Columns("A:O").EntireColumn.AutoFit
    Cells.Copy

    Windows("Intertoys_aflevertijden.xlsx").Activate
  Sheets.Add After:=Sheets(Sheets.Count)
    Sheets(Sheets.Count).Name = Format(Date, "DD-MM-YYYY")
    ActiveSheet.Paste
    ActiveWorkbook.Names.Add Name:=Format(Date, "_ddmmyyyy"), RefersToR1C1:=ActiveSheet.Range("A1:AA1048576")
    End Sub

Niels
 
Het werkt :d, hartstikke bedankt.
ik heb mn selectie gelijk even kleiner gezet, het hele veld is idd niet nodig.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan