Toon posts:

[VB6] Cell-bereiken - Sheetnamen Excel

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hoi mensen,

kan iemand mij advies geven hoe ik het volgende kan doen:

Ik moet een Excel-sheet maken waarin 15-100 namen ingevoerd worden. Zodra de namen erin staan moeten deze per naam als sheet worden toegevoegt in hetzelfde werkblad m.b.v. een macro (gemaakt in VB uiteraard)

Nu heb ik wel een macro kunnen maken om 1 naam toe te voegen, maar ik het zo gedaan dat hij telkens de laatste neemt. Dus 1 voor 1 lukt mij wel, maar alle namen tegelijk niet. Nu was mijn bedoeling om het zo te doen dat hij de namen dus controleert en als de naam dan NIET voorkomt in het werkblad, dat er dan een sheet toegevoegd word en de sheetnaam moet dan gelijk zijn aan de naam.

Het Sheet-hernoemen heb ik al voor mekaar, alleen wil de controle niet echt lukken. Heb zitten zoeken in HELP, maar daar kan ik het helaas niet vinden... Somebody :?

[ Voor 3% gewijzigd door Verwijderd op 06-04-2005 10:20 ]


  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

Quick en dirty:
Een sheet toewijzen aan een variabele en vervolgens kijken of er een fout is opgetreden:
Visual Basic:
1
2
3
4
5
6
7
On error resume next
Dim w as worksheet

set w=sheets(denaam)
If err=9 then
    'sheet bestaat nog niet
end if


en niet vergeten je foutafhandeling weer aan te zetten ;)

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland


Verwijderd

Of je loopt voor elke naam even elke sheet langs:

Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Dim MyBook As Workbook
Set MyBook = Workbooks(ActiveWorkbook.Name)
Dim MySheet As Worksheet
Dim BestaatSheet As Boolean
Dim Naam() As String
Dim i As Integer

Const AantalNamen = 2
ReDim Naam(1 To AantalNamen)

For i = 1 To AantalNamen
    BestaatSheet = False
    For Each MySheet In MyBook.Worksheets
        If MySheet.Name = Naam(i) Then
            BestaatSheet = True
        End If
    Next
    If Not BestaatSheet Then
        MyBook.Worksheets.Add.Move after:=Worksheets(Worksheets.Count)
        MyBook.Worksheets(Worksheets.Count).Name = Naam(i)
    End If
Next i

Verwijderd

Topicstarter
@Camiel23:
Perfect!!!!!!!!!!!
Tnx a lot!!!