Toon posts:

[VB6] Sheet naam wijzigen

Pagina: 1
Acties:
  • 1.039 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Hoi mensen,

ik ben bezig met een macro maken in excel met VB.
Nu wordt er in die macro in een bestaande blad een nieuwe sheet aangemaakt. Nieuwe sheets heten standaard "Blad 1" en ik wil deze naam wijzigen in de tekst die in cel H2 staat in het blad "Invoer".

Heb het via Help gezocht, maar daar kon ik alleen oldname & newname vinden en daar lukte het helaas niet mee.

Iemand enig idee hoe ik dit kan doen?

  • jvdmeer
  • Registratie: April 2000
  • Laatst online: 08-05 18:44
code:
1
    Sheets("Blad1").Name = "Test"


Even ter verduidelijking hoe ik hier aan kom:
• Start Excel
• start opname van macro
• hernoem een sheet
• stop de opname
• bekijk de macro

en in stap 3 kan je alles doen wat je niet niet weet. Op deze manier los je de meeste VBA-vragen in het forum hier op.

[ Voor 16% gewijzigd door jvdmeer op 30-03-2005 10:37 ]


Verwijderd

Topicstarter
@jvdmeer,

Zo doe ik het ook altijd, alleen dit x is het iets anders.
De naam van de sheet moet verwijzen naar een cel (H2) in een ander blad.
Deze cel is elke week verschillend (week 1, week 2, week 3, enz.)
Dit werkt helaas niet:
Sheets("Blad1").Name = range ("H2")

Edit:
wat ik ook al heb geprobeerd is:
Dim week
week = range ("H2")
x
x
Sheets("Blad1").Name = week

Helaas werkt dit ook niet....

[ Voor 24% gewijzigd door Verwijderd op 30-03-2005 10:52 ]


Verwijderd

Topicstarter
Iemand enig idee hoe dit moet???
Modbreak:Kicken staan we pas na 24 uur toe :)

[ Voor 50% gewijzigd door gorgi_19 op 31-03-2005 09:45 ]


Verwijderd

osp, je aanname dat een nieuwe sheet altijd blad1 zou heten, klopt gewoon niet. ik mis ook de foutmelding die je krijgt in je antwoord op jvdmeer. ook is het aangeraden als je met meerdere bladen tegelijkertijd werkt, een volledige referentie naar het bereik te geven, ipv enkel rechtstreeks naar het bereik te verwijzen (werkblad.bereik of zelfs werkmap.werkblad.bereik ipv alleen maar bereik). anyway, in dit geval is de beste manier de nieuwe sheet toe te wijzen aan een objectvariabele en daarmee verder te werken, en als alternatief hieronder zonder toewijzing:
Visual Basic:
1
sheets.add.name=sheets("invoer").range("h2").value

met:
Visual Basic:
1
2
3
4
5
6
dim NieuwBlad as worksheet
set nieuwblad=worksheets.add
nieuwblad.name=sheets("invoer").range("h2").value
nieuwblad.range("a1").value="titel1"
nieuwblad.range("b1").value="titel2"
'enz

  • jvdmeer
  • Registratie: April 2000
  • Laatst online: 08-05 18:44
Verwijderd schreef op woensdag 30 maart 2005 @ 10:48:
@jvdmeer,

Zo doe ik het ook altijd, alleen dit x is het iets anders.
De naam van de sheet moet verwijzen naar een cel (H2) in een ander blad.
Deze cel is elke week verschillend (week 1, week 2, week 3, enz.)
Dit werkt helaas niet:
Sheets("Blad1").Name = range ("H2")

Edit:
wat ik ook al heb geprobeerd is:
Dim week
week = range ("H2")
x
x
Sheets("Blad1").Name = week

Helaas werkt dit ook niet....
Ik hoopte je richting een oplossing te sturen. Jij gaf aan dat je 't niet kon vinden in de help en dat newname, oldname niet werkte. Via mijn suggestie moest je nu weten dat het via de property name moet doen.

code:
1
Sheets("Blad1").Name =  range ("H2")

Als je in de help kijkt bij range, dan zie dat deze een range object teruggeeft en geen waarde ofzo, terwijl jij de waarde nodig hebt. Dit kan je, zoals _heretic_ terecht opmerkt, via de value-property doen van de range.
Ik had hierna al wel een vraag verwacht over dat de naam van het blad niet altijd "blad1" is, maar _heretic_ heeft het geheel al voor je uitgekauwd. Dus voorlopig ben je wel weer gered.
Pagina: 1