Tabblad invoegen en hernoemen via Userform

Status
Niet open voor verdere reacties.

Tuupke

Gebruiker
Lid geworden
30 okt 2008
Berichten
6
Om in excel wat taken te automatiseren ben ik wat gaan stoeien met VBA.
Maar omdat ik niet snel tevreden ben neemt het echter steeds grotere vormen aan, en loop ik nu vast. Nu kan ik vrij goed overweg met Excel,maar heb me nooit bezig gehouden met VBA en begrijp dus niet alle code's.

Naar aanleiding van een hele hoop voorbeelden van diverse site's heb ik een bestandje gemaakt (en bijgevoegd.)
Ik zou graag een sheet(tablad) willen toevoegen zodra ik via een userform een nieuw project ingeef. Het tabblad moet dan dezelfde naam krijgen.
Hiervoor gebruik ik onderstaande code:

Code:
Private Sub Ok_button_Click()
    If Len(Txt_wa) > 7 Then
        MsgBox "Gelieve niet meer dan 7 cijfers in te geven bij ProjectNr. ", vbExclamation, "Wa. Nr."
        Txt_wa.SetFocus
    Exit Sub
    ElseIf Txt_omschrijving = "" Then
        MsgBox "Gelieve een omschrijving in te vullen", vbExclamation, "Omschrijving"
        Txt_omschrijving.SetFocus
    Exit Sub
    ElseIf Cbo_Cap_Gr = "" Then
        MsgBox "Gelieve een planner in te vullen", vbExclamation, "Capaciteitsgroep"
        Cbo_Cap_Gr.SetFocus
    Exit Sub
    Else
        Dim lrij As Long
        lrij = ActiveSheet.Range("C65536").End(xlUp).Row
        Cells(lrij + 1, "C").Value = Ingeven_van_werkaanvragen.Txt_wa.Text
        Cells(lrij + 1, "D").Value = Ingeven_van_werkaanvragen.Txt_omschrijving
        Cells(lrij + 1, "E").Value = Ingeven_van_werkaanvragen.Cbo_Cap_Gr.Value
        Cells(lrij + 1, "F").Value = Ingeven_van_werkaanvragen.Selecteer_start.Value
        Cells(lrij + 1, "G").Value = Ingeven_van_werkaanvragen.Selecteer_eind.Value
        
        'Nieuw werkblad aanmaken met dezelfde naam als het project.
        Worksheets.Add after:=Worksheets(Worksheets.Count)
        ActiveSheet.Name = Blad1.Cells(lrij + 1, "C").Value
        Leeg_button_Click
        Range("C9").Select
        
    End If
        Leeg_button_Click
End Sub

In excel 2007 werkt dit, in excel 2003 echter niet ??

Heeft iemand een oplossing wat er anders zou moeten voor excel 2003 ? of iets wat in beide versies moet werken ?

Ik heb het excel bestand iets compacter gemaakt vanwege de max. grootte voor de bijlage, dus hopelijk werkt alles verder nog.

Bvd.
Antoine
 

Bijlagen

Ik heb nog niet deftig gewerkt met 2007, maar betwijfel eerlijk sterk of het daar wel werkt.

Een Worksheet is niet hetzelfde als een Sheet, bijgevolg is Sheets.Count niet hetzelfde als Worksheets.Count.

Wigi

PS: herwerk best ook de code in Verwijderen_button_Click(), want dit doet bijna pijn aan de ogen om zulke codes te zien ;)
 
Hallo Wim,

Ik heb de code gemaakt in 2007, en zojuist nog even gecontroleerd.
Maar daar werkt hij hoor.
Op mijn werk gebruik ik de 2003 versie en daar werkt hij niet.
Ik ga thuis ook maar eens de 2003 versie terug installeren om een beter kloppend bestand te krijgen.

wat betreft je ogen.....
Ik neem aan dat je doelt op de format voor de data sheet bij het "verwijderen" proces ?
Zoals ik al aangaf ben ik niet zo thuis in VBA, de code die je ziet is dus een deel van een opgenomen macro om de formule's op de data sheet weer goed te zetten.

Zodra ik namelijk een project verwijder, delete hij de bijbehorende rij en daarmee is de data sheet ook zijn verwijzing kwijt.

Als je een suggestie hebt waar ik naar moet zoeken is dat natuurlijk van harte welkom. :thumb:

Gegroet,
Antoine
 
Ik heb de code iets aangepast, en deze werkt nu.
De rechtstreeks waarde ophalen ging niet, via een variabele wel.

Code:
Private Sub Ok_button_Click()
    If Len(Txt_wa) > 7 Then
        MsgBox "Gelieve niet meer dan 7 cijfers in te geven bij ProjectNr. ", vbExclamation, "Wa. Nr."
        Txt_wa.SetFocus
    Exit Sub
    ElseIf Txt_omschrijving = "" Then
        MsgBox "Gelieve een omschrijving in te vullen", vbExclamation, "Omschrijving"
        Txt_omschrijving.SetFocus
    Exit Sub
    ElseIf Cbo_Cap_Gr = "" Then
        MsgBox "Gelieve een planner in te vullen", vbExclamation, "Capaciteitsgroep"
        Cbo_Cap_Gr.SetFocus
    Exit Sub
    Else
        Dim lrij As Long
        lrij = ActiveSheet.Range("C65536").End(xlUp).Row
        Cells(lrij + 1, "C").Value = Ingeven_van_werkaanvragen.Txt_wa.Text
        Cells(lrij + 1, "D").Value = Ingeven_van_werkaanvragen.Txt_omschrijving
        Cells(lrij + 1, "E").Value = Ingeven_van_werkaanvragen.Cbo_Cap_Gr.Value
        Cells(lrij + 1, "F").Value = Ingeven_van_werkaanvragen.Selecteer_start.Value
        Cells(lrij + 1, "G").Value = Ingeven_van_werkaanvragen.Selecteer_eind.Value
        Dim shnm As String
        shnm = Cells(lrij + 1, "C").Value
        'Nieuw werkblad aanmaken met dezelfde naam als het project.
        Worksheets.Add after:=Worksheets(Worksheets.Count)
        ActiveSheet.Name = shnm
        Leeg_button_Click
        Blad1.Activate
        Range("C9").Select
        
    End If
        Leeg_button_Click
End Sub


Nu zou ik graag het nieuwe tabblad voorzien van een opmaak, of in plaats van een leeg blad toe te voegen dit doen op basis van een copy of template.

iemand een suggestie ?


P.s. een mooiere oplossing voor de data sheet format is ook er welkom.
 

Bijlagen

Laatst bewerkt:
Als je dit:

Code:
shnm = Cells(lrij + 1, "C").Value

zo gebruikt, gaat het om een cel in kolom C van het actieve blad. Verwijs ook naar een blad als je dat niet wil.

Wigi
 
ik heb je adviezen ter harte genomen en het e.e.a. gewijzigd. (bestandje weer toegevoegd)

Thnx.
 

Bijlagen

Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan