Luc <not...@pandora.be> schreef in berichtnieuws
eg3DurFC...@TK2MSFTNGP10.phx.gbl...
Lastig als de bestandsnaam verandert.
Is het niet mogelijk om dat in een formuleveld te doen en dan de
laatste 4 tekens weglaten?
--
Vriendelijke groeten,
]-[oRus
Wat meer uitleg is op zijn plaats:
De bestandsnaam waaronder het document wordt bewaard is samengesteld uit
enkele vaste (deel van een disk/pad) en variabele gegevens (vanuit een
Userfom, enkele textboxen en een datum).
De naam wordt in het document genoemd als referentie en wordt ook afgedrukt
in de voetteksten, daarin vind ik het mooier als de toevoeging .doc weg is.
Ik had gehoopt op een (weggestopte of nieuwe) weergave- of afdrukoptie om
dat te doen.
Toch maar naar VBA dan , een stukje code:
Dim naam As Variant
naam = "i:\" & UserForm1.TextBox23 _
& "-" & Format(Date, "yyMMdd") & ".1" & UserForm1.TextBox24
With Dialogs(wdDialogFileSaveAs)
.Name = Replace(naam, ".doc", " ")
.Show
End With
Replace doet niets, wel logisch want Word slaat natuurlijk geen naam zonder
extensie op.
VBA is weliswaar werk, maar ik ben verre van specialist (in mijn luiheid
maak ik ruim gebruik van de vele voorbeelden die iedereen gul deelt) en nu
heb ik toch code nodig die de (gestripte) string naar het document stuurt,
niet de bestandsnaam dus. De betreffende locaties in het document(sjabloon)
zijn nu velden voor de filename, dat moeten dus bladwijzers cq ref velden
worden.
Misschien in de code van het Userform een extra textbox en een variable:
...
naam = "i:\" & UserForm1.TextBox23 _
& "-" & Format(Date, "yyMMdd") & ".1" & UserForm1.TextBox24
Textbox25.Text = Replace(naam, ".doc", " ")
Dan nog textbox25 aan een bladwijzer plakken en klaar?
Nou ja klaar, er zijn heel wat sjablonen met dit spul in gebruik. Een hele
klus voor een
cosmetische ..... extensie
Er is echt geen verborgen of juist nieuwe instelling bij Weergave of
Afdrukken?
Flip
Flip <FlipatKonitechPuntnl> schreef in berichtnieuws
etamhMEC...@TK2MSFTNGP11.phx.gbl...
Veel reguliere programma's voegen automatisch hun extensie toe, ook
als je zelf een afwijkende geeft (bv. xyz.bestand.doc)
Standaard zijn alle extensies drie tekens.
Zijn het er vier, dan blijft alleen de punt staan.
Inderdaad Flip,
volgende code doet wat jij wil, en dus terug iets erbij voor je archief ;-)
Let wel op dat je de textcompare optie meegeeft, daar een binaire wel
het onderscheid maakt tussen .Doc, .DOC, .doc enz.
Als je geen compare optie meegeeft wordt een binaire uitgevoerd en
zal je niet altijd vinden waar je naar zoekt.
Binair is wel handig natuurlijk als je een exacte match wil.
Het 'probleem' voor jou zal denkelijk zijn dat je het (nieuw?) document eerst zal moeten
opslaan en een naam geven, om daarna dan deze code uit te voeren en terug te saven.
Dat 2de x saven kun je dus best op het einde van deze code toevoegen.
Waar je de naam invoegt in het doc laat ik aan jou over.
Hier wordt die ingevoegd op de plaats van de cursor.
Sub GeenExtensie()
Dim AdN$, P%
P = InStrRev(ActiveDocument.Name, ".DOC", , vbTextCompare)
If P > 0 Then AdN = Left(ActiveDocument.Name, P - 1)
With Selection
.InsertAfter AdN
.Collapse wdCollapseEnd
End With
End Sub
DeeJee <Dee...@skynet.be> schreef in berichtnieuws
0tj2015d071gbmgk9...@4ax.com...
Hierbij toch opmerken dat FSO niet altijd de stabielste code levert,
en dat in heel wat netwerken, uit veiligheidsoverwegingen,
de scripting runtime disabled wordt door de netwerk administrator
zodat FSO dan zelfs helemaal niet te gebruiken is.
Tis maar dat je dit weet als FSO in een netwerk niet 'werkt'.