PNG32 PNG32 PNG32 PNG32
PNG32
Forum Excel, VBA, VSTO, Exceltips, Excelhj�lp PNG32 drivs av Excelspecialisten    Logga in     English
PNG32
PNG32 PNG32
PNG32

Logga in

PNG32

Du är inte inloggad. Logga in eller registrera dig för att skriva inlägg eller svara på inlägg.

För frågor om forumet, kontakta oss på webmaster@excelforum.se

PNG32 PNG32
PNG32 PNG32
PNG32

Excelforum

PNG32

 
ForumForumDiskussionerDiskussionerVBAVBASkapa nytt blad om det inte finnsSkapa nytt blad om det inte finns
Föregående Föregående
 
Nästa Nästa
Nytt inlägg
 2010-08-09 14:44
 

Hej

Någon som kan hjälpa mej med detta.

Jag har en ganska omfattande VBA-script där det bland annat skall skapas nytt blad om det inte redan är skapat. Jag vill efterfråga om bladet med ett namn (en variabel) finns. Om det inte finns vill jag köra koden för att skapa och döpa bladet. Om bladet redan tidigare är skapat skall If-satsen avslutas och makrot skall fortsätta.

Jag har letat men inte funnit hur man skall skriva för att instruera VBA att leta efter blad med specifikt namn. Någon som vet.

mvh

Svenne

Nytt inlägg
 2010-08-16 10:01
 

Ett enkelt exempel på makro kan vara. Du måste rimligtvis byta ut delar så att det passar ditt behov.

Lycka till!
Henrik

Public Sub SheetWillExist()
   
    Dim wsActive As Worksheet, ws As Worksheet, wsInput As Worksheet
    Dim strSheetName As String
    Dim blnSheetExist
   
    'få in bladnamn - ersätter du med variabel på annat sätt
    strSheetName = InputBox("Sök bladnamn")
   
    If strSheetName = "" Then
        Exit Sub
    End If

    Set wsActive = ActiveSheet
   
    'kolla om blad finns
    For Each ws In ThisWorkbook.Worksheets
        If ws.Name = strSheetName Then
            Set wsInput = ws
            blnSheetExist = True
        End If
    Next ws
   
    'skapa blad
    If Not blnSheetExist Then
        Set wsInput = Worksheets.Add(After:=Worksheets(Worksheets.Count))
        wsInput.Name = strSheetName
    End If
   
    wsActive.Activate
   
End Sub

Nytt inlägg
 2010-09-03 16:10
 

 

Hej Henrik

Tack för hjälpen. Jag har kommit en bit på vägen.

Det jag håller på med är en ganska lång kod med flera loopar. Tanken är att när en viss avdelning skapas i koden så skall också ett blad skapas för denna avdelning. När jag sedan loopar vidare skapas poster som tillhör samma avdelning men en annan enhet. Dessa enheter skall samlas på samma avdelningsblad.

När koden kör vidare så skapas en ny avdelning(och loopar därefter denna avdelning:s enheter). Då skall ett nytt blad skapas och alla uppgifter samlas i detta blad. OSV i upp till 9 nya blad.

Att jag behöver veta om bladet redan är skapat beror på att koden kör samma loop vare sig det är en avdelning eller en enhet. Bladet skall skapas när avdelningen skapas.

Nu till problemet. Din kod fungerar bra när första avdelning en skapas och även dess enheter. Men sedan, när en ny avdelning skapas så missar koden att det är nytt och bladet skapas inte. Jag har kört koden för hand och kollat variabeln strSheetName och den byter verkligen och är rätt. Ändå missas att ett nytt blad skall skapas.

Jag klistar in min redigering av din kod nedan. Något mer tips hur jag får detta stabilt.

 Dim wsActive As Worksheet, ws As Worksheet, wsInput As Worksheet
    Dim strSheetName As String
    Dim blnSheetExist
   
    'få in bladnamn - ersätter du med variabel på annat sätt
    strSheetName = "TG-mall " & Nivå3b
   
    'Set wsActive = ActiveSheet
   
    'kolla om blad finns
    For Each ws In ThisWorkbook.Worksheets
        If ws.Name = strSheetName Then
            Set wsInput = ws
            blnSheetExist = True
        End If
    Next ws
   
    'skapa blad
    If Not blnSheetExist Then

'Här följer min kod som kopierar en befintlig mall och klistrar in som nytt blad på bestämd plats.

 

mvh

Svenne

Nytt inlägg
 2010-09-06 12:45
 

Hej igen

 

Jag löste problemet själv. Variabeln blnSheetExist = True måste ställas om till blnSheetExist = False före nästa loop.

Mvh

Svenne

Föregående Föregående
 
Nästa Nästa
ForumForumDiskussionerDiskussionerVBAVBASkapa nytt blad om det inte finnsSkapa nytt blad om det inte finns

PNG32 PNG32
Excelforum drivs av Excelspecialisten som bedriver utbildning i Excel och VBA, tillhandahåller support och hjälp med Excel, utvecklar program i Excel. Är ni i behov av en konsult inom Excel, VBA eller VSTO, eller söker en excelkurs, kontakta oss.
Copyright 2013 ExcelSpecialisten XLS AB   Användarvillkor  Personliga uppgifter