When you say it doesn't fulfill your requirement, can you explain what it wasn't doing?
I can see you only touch the primary footer without seeing if the other two footers are turned on. Nor are you looking at link to previous settings. positionfrombottom is created as a variable but not used. The actual location of the text in the footer will depend on the setting for footer distance + paragraph space after + a bit of the line spacing mixed with the typeface and font size.
I normally do this sort of thing by first storing my preferred footer as a building block and then using a macro to insert that building block wherever I want it.
So assuming you have created a footer exactly how you want it, and then saved that as a building block in your Normal template with the name myFoot, you could then use this code
Code:
Sub AddFooterWithPageNumber()
Dim aSect As section, aFoot As HeaderFooter
For Each aSect In ActiveDocument.Sections ' Loop through each section in the document
aSect.PageSetup.FooterDistance = CentimetersToPoints(1)
Set aFoot = aSect.Footers(wdHeaderFooterPrimary)
If Not aFoot.LinkToPrevious Then
NormalTemplate.BuildingBlockEntries("myFoot").Insert Where:=aFoot.Range, RichText:=True
aFoot.Range.Paragraphs.Last.Range.Delete
End If
Next aSect
End Sub