Noob vragen VB

Status
Niet open voor verdere reacties.

Halbertsma

Gebruiker
Lid geworden
25 jun 2009
Berichten
34
Hallo,

1. Ik heb een script gemaakt waarin onder andere sheets worden toegevoegd.
Hiervoor gebruik ik de code:

Code:
Sub TLijst()
    Sheets("Lijst").Copy After:=Sheets(2)
    Sheets("Lijst (2)").Name = "TLijst"
End Sub

Als TLijst al bestaat komt er een error naar voren, dit wil ik ondervangen.
Het script moet dus gaan controleren of "Tlijst" al bestaat. Is dit het geval dan dient de oude eerst verwijderd te worden. Bestaat ie nog niet dan moet deze gewoon gemaakt worden.
Ik hoopte dit te kunnen doen door
Code:
 On error return next
sheets("TLijst").Delete
On error GoTo 0
Dit werkt echter niet. Ziet iemand de fout?

2. Als vervolg op de voorgaande vraag heb ik nog een 2e probleem. Ik maak namelijk ook een nieuwe sheet op basis van door de gebruiker ingegeven waarden (hier wordt eerder in hte script door middel van een pop-up om gevraagd)

Code:
 'Sheet maken en een naam geven, afhankelijk van hiervoor ingegeven items
Naampje:
      Sheets.Add.Name = ("Sheet " & weeknr & " " & naam)
ook hier zou ik eerst willen kijken of deze sheet nog niet bestaat.
Zo niet, dan kan de code gewoon doorlopen. Bestaat de sheet al wel dan moet het script terug gaan naar "invoer1" en "Invoer2" (waar opnieuw wordt gevraagd naar weeknr en naam)

3. Een laatste vraag is het volgende: bij het verwijderen van een sheet geeft Excel een melding dat er mogelijk gegevens verloren kunnen gaan. Is het mogelijk om deze melding automatisch te accepteren zelfs helemaal niet voor te laten komen?

Als iemand me zou kunnen helpen, graag.
 
Code:
Sub TLijst()
  on error resume next
  Sheets("Tlijst").activate
  if err.number>0 then 
    with sheets.add
      .name="Tlijst
    end with
    err.clear
  end if
  Sheets("Lijst").cells.Copy Sheets("Tlijst").Range("A1")
End Sub

Kijk ook eens in de hulpfunktie van de VBEditor.
 
Code:
Sub TLijst()
  on error resume next
  Sheets("Tlijst").activate
  if err.number>0 then 
    with sheets.add
      .name="Tlijst
    end with
    err.clear
  end if
  Sheets("Lijst").cells.Copy Sheets("Tlijst").Range("A1")
End Sub

Kijk ook eens in de hulpfunktie van de VBEditor.


Bedankt. Deze heb ik toe kunnen passen op vraag 1 en met wat goochelen ook op vraag 2.
Ik heb overigens hier wel 2 boeken liggen, maar kon het er niet uithalen.

Heeft u toevallig ook een oplossing voor mijn 3e vraag?

Alvast bedankt,
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan