creëren van nieuwe sheet + nummeren

Status
Niet open voor verdere reacties.

DXELECTRO

Gebruiker
Lid geworden
27 feb 2015
Berichten
54
Goedenavond,
Eerste stappen gezet in de VBA-world en macro runt perfect.
Nu wil ik na eerste run het resultaat opslaan als nieuw werkblad "VOORSTEL 1"
Ik heb dit nu opgelost met een inputbox maar ja......als men "VOORSTEL 1" niet wijzigt naar "VOORSTEL 2"
wordt een nieuwe sheet aangemaakt met naam "CALCULATIE (2) want ja...VOORSTEL x is steeds het resultaat van filteren van het origineel "CALCULATIE" dat op de achtergrond(verborgen) draait.

Natuurlijk streef ik ernaar dat de voorstellen automatisch zouden genummerd worden beginnende bij VOORSTE 1 als de macro de eerste keer gerund wordt.
Bij openen workbook zie je slechts 1 blad.
Na runnen macro komt 2e(voorstel 1) enz enz
Hieronder hoe ik het nu deed :)
Veeeel dank voor de vele tips :)

Xavier

'INPUTBOX "Voorstel-nr ingeven" en voorstelnummer plakken op cel AI11

Range("AI11").Value = InputBox("Geef uw voorstel een nummer en wel degelijk NIET identiek als voorgaande !!!!", "VOORSTEL-nr wijzigen", "VOORSTEL 1")
On Error Resume Next
ActiveSheet.Select
ActiveSheet.Name = Range("AI11").Value
 
Hoe start je je macro?
En in je voorbeeld maak je geen nieuw blad aan maar geef je het bestaande blad een andere naam.
Wat is nu precies de bedoeling? Een nieuw blad maken met een op te geven naam of het bestaande blad hernoemen?
 
Dank voor de snelle reactie :)
Ja inderdaad......ik kopiëerde alle vereiste data afkomstig van CALCULATIE (verborgen) als nieuw werkblad en dit krijgt initiëel dus de naam "CALCULATIE (2) waarna ik dan de nieuwe naam vraag via die inputbox.
De ingeputte naam komt dan ook in cel AI11 te staan maar zover was je zeker mee :)
Ik laat dus altijd "VOORSTEL 1" als default verschijnen in de inputbox en ik verwacht dat men die zelf incrementeert......maar daar zal het zeker foutlopen .
waarschijnlijk "beginnelingsmanier" maar als ik die nummering nu automatisch zou kunnen doen dan zou ik voldaan zijn van mijn eerste VBA-projectje .
Hier al heel veel opgestoken en ongetwijfeld is dit vraagje peanuts voor al deze creatieve specialisten . hartelijk dank alvast aan allen and specialy to ED :)
hopelijk info genoeg ?
 
Dus je maakt eerst zelf een nieuw blad en vervolgens wil je deze middels een macro van een juiste naam voorzien. En m'n eerste vraag? Hoe start je die macro?
 
Sorry ...vraag idd vergeten beantwoorden
Men vult de checklist in waarna men via een KNOP de macro "calculatie" start die dan het complete voorstel met alle details visualiseert in een nieuw werkblad.
In deze macro zitten dus de hierboven beschreven handelingen.
De macro toont dus de nieuwe sheet en vraagt dan (via die infobox) de gewenste naam.
Logischerwijze moet dat voorstel 1..2..3 worden.
men kan immers eindeloos calculaties maken en hiervoor start men dus telkens de macrobutton na wijziging van zijn checklist.....

Het doc bestaat dus uit 1 zichtbaar werkblad (checklist) en 6 verborgen werkbladen.(prijslijsten en interne tussenberekeningen)
Eén van die verborgen werkbladen is dus ook de complete CALCULATIE waarvan ik het het gefilterde resultaat gewoon overplaats naar nieuw werkbld dus.

Sorry voor het late (...op dit vroege uur haha) antwoord maar was gisteravond even in de zetel gedoken :)
Bedankt alvast Ed
 
Je wilt dat de naam altijd met "Voorstel #" begint? Dan kun je dat wel automatiseren. Simpel de naam van alle sheets uitlezen en het getal verhogen. Een voorbeeldje:
Code:
Dim sht As Worksheet, nsht As Worksheet
Dim nm As String, num1 As Integer, num2 As Integer
Dim tmp As Variant

    For Each sht In ActiveWorkbook.Sheets
        If Left(sht.Name, 8) = "Voorstel" Then
            tmp = Split(sht.Name)
            num1 = tmp(UBound(tmp))
            If num1 > num2 Then num2 = num1
        End If
    Next sht
    nm = "Voorstel " & (num2 + 1)
    Sheets("Calculatie").Copy After:=Sheets(Sheets.Count)
    ActiveSheet.Name = nm
 
Laatst bewerkt:
Dit werkt gewoon SUPER !!!
1000 keer bedankt.
ik was diverse voorbeelden aan het uitpluizen maar hiertoe was ik zeker niet zo gauw gekomen als leek VBA.
Het zet er mij weer toe aan om verder te gaan hierin :)

Nog een heel klein detail...
De ingave die ik deed via de "inbox" kwam (voor uw aanpassing) ook terecht op een bepaalde cel.
Nu zou ik graag het voorstelnr dat via uw code wordt aangemaakt terug in deze cel krijgen .

nog een tipje ??
Ik laat je alvast even de link van onze website waarop u het doc kan nemen.
http://www.domoticsystems.be/userfiles/files/CALCULATIE Y-O-U-R home 20150313.xlsm
http://www.domoticsystems.be/

mocht je even de calculatie runnen dan zal je wel zien dat voorstelnr in cel AI11 zou moeten komen .

Nog een ander vraagje :
ja idd.......ik ontgrendel/vergrendel de verborgen sheets diverse malen in de macro maar zoals je zal zien in de module (niet lachen met de complexiteit...ben al heel blij dat het werkt :) ) dat die code zichtbaar staat.
Hoe kan ik dit eventueel verbergen ??? (of anders doen?)

Nog eens heel veel dank Octafish en vele groeten
Xavier
 
Laatst bewerkt:
De ingave die ik deed via de "inbox" kwam (voor uw aanpassing) ook terecht op een bepaalde cel.
Nu zou ik graag het voorstelnr dat via uw code wordt aangemaakt terug in deze cel krijgen .
Daar kun je gewoon je eigen code voor gebruiken. Béétje opgeknapt ziet die er dan zo uit:
Code:
    With ActiveSheet
        .Name = nm
        .Range("AI11").Value = nm
    End With
 
Graag gedaan :). Mag je de vraag nog op <Opgelost> zetten. Tenzij je natuurlijk nog meer hebt :).
 
een kleintje nog :)
hoe kan ik mijn code verbergen ?
Ik heb vorige week met die beveiligingsopties in VBA zitten spelen maar code bleef steeds zichtbaar .
Als ik dat kan beveiligen dan is mijn eerste project meer dan geslaagd....wat mij betreft :)
veel geleerd laatste week en dan vooral via dit forum
Dit had ik veeeeeeeeeeeeeeeeeeel eerder moeten doen en niet na 26j zelfstandig zijn , zeg ik nu :)...maar ja....time and age :)
mooi initiatief en verbazend snelle feedback steeds weer hier
chapeau
 
ach ja .....
nog een leekvraagje :)
als je iets wil laten uitvoeren LOS van de macro's in een werkblad dan moet je die code allicht als privatesub plaatsen.
Plaats je dat dan in het workbook ?
Ik wil rijen verbergen afhankelijk van een celwaarde.
Via demootje dat ik vond lukt dat maar in mijn werkblad niet.
Voorbeeld:
Op werkblad "checklist" mag rij 16tem18 verborgen worden als celG15="neen"
enz enz
 
Als je in je VBA module een wachtwoord instelt, zie je echt de code niet, tenzij je 'm natuurlijk weer met het wachtwoord ontveiligt. Daarnaast heb je natuurlijk je werkblad en werkboek beveiliging. Haal je die wellicht door elkaar?
Als een werkblad is beveiligd, dan kun je geen rijen verbergen, tenzij je eerst de beveiliging (tijdelijk) uitzet, dan de rijen beveiligt en daarna de beveiliging weer aan. Dan moet het wachtwoord dus wel in de procedure staan als variabele. Maar als de VBA module is beveiligd, zie je dat dan toch weer niet.
 
Ok, is een standaard dinges voor, hoe noemen moderati het ook al weer????
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan