• 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.

in een offertelijst nieuw nummer te generen

Status
Niet open voor verdere reacties.

Norman Scheuter

Gebruiker
Lid geworden
30 sep 2008
Berichten
124
Hallo,

We gebruiken de onderste code o.a. om in een offertelijst een nieuw nummer te generen en te plakken in het calculatie sheet.
Echter kunnen we tijdens het opnieuw openen van de calculatie er voor kiezen om het blad bij een herziene offerte een nieuw nummer te geven.
Maar omdat deze dan geen "Calc22.xlsm" meer heet, maar reeds een andere naam heeft gekregen, werkt de onderstaande code niet.

Is het mogelijk om deze code
Code:
Windows("Calc22.xlsm").Activate
te wijzigen en te verwijzen naar de betreffende cel "B6" in dit blad, door bijv. de cel een naam te geven?

Excuses dat ik er geen voorbeeld bij kan plaatsen....in deze bladen zitten al onze marges...
Ik hoop dat ik het duidelijk heb uitgelegd.

Code:
Sub OffNrAanmaken()
'
' OffNrAanmaken Macro
If [i4] = "" Then

    Dim pad As String
    Dim Bestandsnaam As String
    Dim Filename As String
    
    Application.ScreenUpdating = False
    pad = ThisWorkbook.Path
    Bestandsnaam = Range("h3").Value
    Filename = pad + Bestandsnaam

    datum
    
    Workbooks.Open Filename:=pad + "\Offertelijst20.xlsx"
    Rows("2:2").Select
    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    Range("A2").Select
    ActiveCell.FormulaR1C1 = "=R[1]C+1"
    Range("A2").Select
    Selection.Copy
    Windows("Calc22.xlsm").Activate
    Range("B6").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("Y1:AH1").Select
    Application.CutCopyMode = False
    Selection.Copy
    Windows("Offertelijst20.xlsx").Activate
    Range("A2").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("B2").Select
    Application.CutCopyMode = False
    Selection.NumberFormat = "m/d/yyyy"
    ActiveWorkbook.Save
    ActiveWindow.Close
    [i4] = 1
Application.ScreenUpdating = True
End If
End Sub


GR. Norman
 
Die Calc22.xlsm is geen blad maar een werkboek.
EN een voorneeld kan je altijd plaatsen.
 
Hallo Edmoor,

Ik ga morgen proberen alles eruit te slopen en dan de 2 werkboeken te sturen.

Gr. Norman
 
Hoi Edmoor,

Ik heb alle belangrijke info eruit gesloopt...
Ik heb ze in een mapje "Voorbeeld" gezet en gezipt.

Wat ik dus graag zou willen is het volgende...
Zodra ik de "Voorbeeld van Calc22.xlsm" open en opsla met de button "Berekening opslaan" of "Pdf maken" maakt hij een offertenummer en slaat hij hem netjes op.
Als de klant een herziene offerte wil, openen we het opgeslagen bestand en kiezen dan de 3e optie "gebruiken voor andere offerte.......offerte krijgt nieuw nummer"

Echter omdat het bestand niet meer "Voorbeeld van Calc22.xlsm" heet, werkt de vba in "module 3" niet meer.
Deze formuleregel zou anders moeten, maar ik kom er niet meer uit.
Code:
Windows("Voorbeeld van Calc22.xlsm").Activate
Zat al te denken om deze eruit te gooien en de volgende regel
Code:
Range("B6").Select
de cel "B6" een naam te geven en daar naar te verwijzen, echter is me dat ook niet gelukt.

Hoop dat je me hiermee verder kan helpen.

Gr. Norman
 

Bijlagen

Laatst bewerkt:
Ik zag zojuist dat door knippen, er in module 5 een fout is geslopen.

Deze er even inplakken.

Code:
Sub Offertelijst_nummeren()
'
' Offertelijst_nummeren Macro
'
Application.ScreenUpdating = False
    Range("i1:r1").Select
    Selection.Copy
    ChDir "C:\Voorbeeld\"
    Workbooks.Open Filename:=""
    ActiveWindow.WindowState = xlNormal
    Rows("2:2").Select
    Selection.Insert Shift:=xlDown
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Application.CutCopyMode = False
    ActiveWorkbook.Save
    ActiveWindow.Close
    Sheets("Offerteblad").Select
    Range("S3").Select
Application.ScreenUpdating = True
End Sub
 
Na, een tijd van alles geprobeerd te hebben. kwam ik vanavond op dit idee, niet verwacht dat het zou werken.

Heb het tabblad in " Calc22" een naamgegeven "Offerteblad"
Toen de code
Code:
Windows("Calc22.xlsm").Activate
Verandert in:
Code:
Offerteblad.activate

Nu werkt het, morgen op het werk proberen of het ook werkt als ik meerdere calculaties open heb staan, want deze hebben dan hetzelfde tabblad "Offerteblad"
Niet dat ie daar problemen mee heeft.

Gr. Norman
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan