• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Werkblad aanmaken d.m.v. knop

Status
Niet open voor verdere reacties.

hoogteijling

Terugkerende gebruiker
Lid geworden
12 aug 2005
Berichten
4.261
Hallo,

Kan iemand mij helpen met het volgende:
Ik wil graag in Excel (2007) een knop, wanneer ik daar op druk moet er een dialoogvenstertje komen waarin een projectnummer gevraagd wordt.
Vervolgens moet er aan de hand van dat projectnummer een werkblad gemaakt worden.
Dit werkblad moet een kopie zijn van een "Template-blad" welke zich ook in dat Excel bestand bevindt (Template genaamd).
In het aangemaakt werkblad moet in cel G1 hetzelfde projectnummer ingevuld worden.

Eigenlijk moet ie dus gewoon het werkblad "Template" kopieeren en vervolgens hernoemen naar het ingevoerde projectnummer.

Ik heb zelf DIT nog gevonden maar ik weet niet hoe en waar ik wat precies aan moet passen.

Groeten Marcel
 
Laatst bewerkt:
Misschien te simpel gedacht?

Code:
Sub test()
smap = "c:\test\"
            With Workbooks.Open("c:\template.xlsm")
                .SaveAs smap & "projectnummer " & InputBox("wat is het projectnummer?") & ".xlsm"
            End With
End Sub


Na iets beter lezen denk ik dat het dit is?

Code:
Sub NWproject()
 Dim sh As Object
    snaam = InputBox("Wat is het projetnummer?")
    For x = 1 To Sheets.Count
    If Sheets(x).Name = snaam Then
    MsgBox "blad bestaat al"
    Exit Sub
    End If
    Next
    Sheets("Template").Copy After:=Sheets(2)
    Sheets("Template (2)").Select
    Sheets("Template (2)").Name = snaam
End Sub


Niels
 
Laatst bewerkt:
Halo Niels,

Het komt in de buurt.
Hij moet echter een werkblad/tabblad toevoegen aan het huidige Excel bestand.
Ik vind het wel goed dat hij de template ophaald elders vanaf de computer.

Groeten Marcel
 
In hetzelfde bestand is makkelijker.
Zie aanpassing eerdere bericht.
Had je vraag nogmaals gelezen en nu anders ;)

Niels
 
Hallo Niels

Dit werkt idd.
Kan ik nu een knop maken die op alle werkbladen te zien is ?
En waar behoor ik deze code te plaatsen, in ThisWorkbook ?

Groeten Marcel
 
Laatst bewerkt:
Ik weet niet precies wat je wilt.
Als je de knop op de template zet dan kopieer je deze steeds mee.
zet de macro in een module en kies een knop uit de fornulierbesturings elementen en kies de maro die je eraan wilt hangen.

Niels
 
OK Niels,
het werkt nu. :)
Ik dacht dat ik een knop moest gebruiken uit de ActiveX besturingselementen

Wat ik nu nog graag zou willen is dat het projectnummer in het nieuw aangemaakte werkblad automatisch in cel G1 wordt geplaatst.

Groeten Marcel
 
Code:
Sub NWproject()
 Dim sh As Object
    snaam = InputBox("Wat is het projetnummer?")
    For x = 1 To Sheets.Count
    If Sheets(x).Name = snaam Then
    MsgBox "blad bestaat al"
    Exit Sub
    End If
    Next
    Sheets("Template").Copy After:=Sheets(2)
    Sheets("Template (2)").Select
    Sheets("Template (2)").Name = snaam
    Sheets(snaam).Range("g1").value = snaam
End Sub


Niels
 
Fantastisch Niels, :)

Nu is onze getalnotatie van de projectnummers als volgt:
Een 4-cijferig projectnummer wordt: #.###
Een 5-cijferig projectnummer wordt: #.#.###
In cel G1 heb ik als aangepaste celeigenschap [<=9999]0"."000;0"."0"."000 staan.
Is het nu ook mogelijk wanneer iemand een nieuw werkblad maakt en de puntjes vergeet in te vullen deze automatisch worden ingevuld (In het tabje).

Groeten Marcel
 
Als je het projectnummer met puntjes invoert gaan de celeigenschappen in de fout,
je moet ze altijd zonder punten invoeren.

Code:
Sub NWproject()
 Dim sh As Object
    snaam = InputBox("Wat is het projetnummer?")
    If Not snaam Like "####" Then
   If Not snaam Like "#####" Then
    MsgBox "projectnummer is niet juist ingevoerd," & vbCrLf & "nummer zonder punten invoeren"
    Exit Sub
    End If
    End If
    If snaam Like "####" Then snaam1 = Left(snaam, 1) & "." & Right(snaam, 3)
    If snaam Like "#####" Then snaam1 = Left(snaam, 1) & "." & Mid(snaam, 2, 1) & "." & Right(snaam, 3)

    For x = 1 To Sheets.Count
    If Sheets(x).Name = snaam1 Then
    MsgBox "blad bestaat al"
    Exit Sub
    End If
    Next
    Sheets("Template").Copy After:=Sheets(2)
    Sheets("Template (2)").Select
    Sheets("Template (2)").Name = snaam1
    Sheets(snaam1).Range("g1").Value = snaam
    
End Sub

Als je nu iets anders dan 4 of 5 cijfers invoerd krijg je een melding.

Niels
 
Laatst bewerkt:
Hallo Niels,

Projectnummer wordt nog steeds zonder puntjes ingevuld in het werkbladtabje en cel G1.

Groeten Marcel
 
hoogteijling,

Pas deze regel even aan.
Code:
Sheets(snaam1).Range("g1").Value = snaam[COLOR="red"]1[/COLOR]
Ik heb het zonder puntjes ingevuld en in de Tab van het Blad kwam het met puntjes.
Nadat ik de regel had aangepast kwam het ook met puntjes in G1.
 
Laatst bewerkt:
Als ik bij mij de celeigenschappen op [<=9999]0"."000;0"."0"."000 zet dan worden de puntjes gewoon gezet.

Heb het nog geprobeerd met format in de macro maar dat is gaat iets te ver voor mijn kennis



Niels
 
@excelamateur

Dit werkt bij 5 cijfers , bij 4 cijfer komt er bv 3,03 in de cel te staan.

Niels
 
Laatst bewerkt:
zet volgende regel onder je macro.

Code:
  Sheets(snaam1).Range("g1").NumberFormat = "[<=9999]0"".""000;0"".""0"".""000 "

lang leve de opneemfunctie

Niels
 
Niels28,

Bij mij werkte het niet zoals je voorstelde. (de regel)

Met onderstaande wijziging deed hij het wel,
zowel met 5 cijfers als 4 cijfers plaatsen met punten.
Code:
Sheets(snaam1).Range("g1").NumberFormat = "@"
Sheets(snaam1).Range("g1").Value = snaam1
 
Bedankt Niels en ExcelAmateur,

Het werkt nu erg goed.

groeten Marcel
 
Zo lijnt hij het bij mij in de cel aan de rechter kant uit.
Code:
Sheets(snaam1).Range("g1").NumberFormat = "@"
With Range("G1")
   .HorizontalAlignment = xlRight
End With
Sheets(snaam1).Range("g1").Value = snaam1
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan