Forums Neueste Beiträge
 

textfeld erzeugen - per createdate datum einfügen - geistiger hänger

01/05/2008 - 14:41 von jensspeedy | Report spam
iss nur nen kleines ding aber ick klemme geistig mal wieder

Sub Makro2()

Dim x As Single
Dim y As Single
Dim oShp As Shape
x = Selection.Information(5)
y = Selection.Information(6)
Set oShp = ActiveDocument.Shapes.AddTextbox( _
1, x + 100, y, 100, 100)
oShp.Line.Visible = msoTrue
oShp.Select
With oShp
.Left = CentimetersToPoints(-2.01)
.Top = CentimetersToPoints(0.1)
.Name = "datumsbox_" & CStr(Rnd())

End With

Call datumseintrag
End Sub

Sub datumseintrag()

ActiveDocument.Shapes("datumsbox_").Select
Selection.Fields.Add Range:=Selection.Range,
Type:=wdFieldEmpty, Text:= _
"CREATEDATE \@ ""dd. MMMM yyyy"" ", PreserveFormatting:=True
End Sub

wenn ich das ruchtig sehe erzeuge ich doch mit dem ersten sub ein
textfeld was dann den namen "datumsbox_" erhàlt - sub làuft durch und
es erscheint ein datumsfeld - soweit so gut

wenn ich jetzt allerdings mit dem zweiten sub das datum einfügen will
dass sagt er mir das dieses objekt nicht gefunden werden konnte?

bin wohl mal wieder zu blond ;-)

das wichtigste fehlt allerdings noch

wenn dieses feld erzeugt wird dann darf der user zwar das datum
hàndisch àndern können aber die textbox um keinen millimeter
verschieben dürfen!!

irgendeiner oder gar thomas hat bestimmt ne idee was ich nun schon
wieder falsch mache ;-)
 

Lesen sie die antworten

#1 jensspeedy
01/05/2008 - 18:42 | Warnen spam
hab es jetzt so gelöst - alles etwas umstàndlich ich weiss aber
wenigstens funktioniert es - hab es sogar hinbekommen das datum in der
zelle in text zu wandeln ;-)

wenn ich jetzt allerdings aus der dot heraus ein doc erzeuge ist immer
das datumsfeld wie angeklickt (also markiert) und der datumstext
markiert

nen "deselect" befehl oder so scheint es aber nicht zu geben *schnief*

einer ne idee?

der jens - geht einfach nur um das millimetergenaue positionieren
des datums ;-)

Sub datumsfeld()


Dim x As Single
Dim y As Single
Dim oShp As Shape
x = Selection.Information(5)
y = Selection.Information(6)
Set oShp = ActiveDocument.Shapes.AddTextbox( _
1, x + 100, y, 140, 40)
oShp.Line.Visible = msoFalse
oShp.Select
With oShp
.Left = CentimetersToPoints(14.08)
.Top = CentimetersToPoints(0.88)
.Name = "datumsbox_"
End With

Call datumseintrag
End Sub


Sub datumseintrag()

ActiveDocument.Shapes("datumsbox_").Select
Selection.ShapeRange.TextFrame.TextRange.Select
Selection.Font.Name = "Helvetica Neue"
Selection.Font.Size = 12
Selection.TypeText Text:="Berlin, den"
Selection.TypeParagraph
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty,
Text:= _
"CREATEDATE \@ ""dd. MMMM yyyy"" ", PreserveFormatting:=True

Call datumwandeln
End Sub

Sub datumwandeln()

ActiveDocument.Shapes("datumsbox_").Select
Selection.ShapeRange.TextFrame.TextRange.Select
Dim myField As Word.Field

If Selection.Fields.Count > 0 Then
For Each myField In Selection.Fields
If myField.Type = wdFieldCreateDate Then
myField.Unlink
End If
Next myField
End If

ActiveDocument.AttachedTemplate = "C:\z_vorlagen\standard.dot"

End Sub

Ähnliche fragen