Forums Neueste Beiträge
 

problem mit kopfzeile und vba (textfelder) - word

29/04/2008 - 19:19 von jensspeedy | Report spam
problem: *.dot vorhanden - doppelklick - neues *.doc wird
erstellt...nun lade ich per vba grafiken in eine kopfzeile wo aber
schon textfelder drin sind - alle heissen anders und und und - sind
etwa 400 vorlagen die ich umbasteln will *schnief* - wenn ich
allerdings die grafiken lade verschwinden die vorhanden textfelder
nach hinten - aber wie bekomme ich se per vba wieder nach vorn? EGAL
wie viele es sind und wie se alle heissen?

ich hab mal was zum basteln ins netz gestellt - ist auch nen
erlàrungsversuch in der zip-datei mit drin - weil nur code schauen iss
nicht so gut wie selber spielen - eventuell hat ja dann jemand ne
idee
http://www.disic.de/test/z_vorlagen_bastel.zip

ansonsten làuft die *.dot unter 2003 und 2007 ohne das textfeldproblem
supi

ick hànge einfach am problem, dass. wenn ich die dot explizit mit
rechtsklick-öffnen öffne und ich den vba-editor starte der code in
"this document" im vba-editor durchlàuft und wenn ich die dot
doppelklicke der debugger gerannt kommt

'Zum Dokumentanfang springen
ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument --> kommt
dann in gelb

ausserdem müßten die textfelder in der kopfzeile eben ALLE
angesprochen werden, da die ja in jeder der etwa 400 vorlagen nen
anderen namen haben

liegt wahrscheinlich irgendwie an ActiveWindow - aber da ick kein
vba spezi bin bin ich froh schon mal bis hierher gekommen zu sein ;-)

das andere problem ist - dass im code explizit die textfelder

Array("Text Box 67", "Text Box 68")

angesprochen werden - da aber in den ganzen vorlagen (etwa 400) die
textfelder anders heißen muss es doch die möglichkeit geben so etwas
wie


"
schau nach ob es textfelder gibt..

if nein

if ja - Array("ALLE TEXTFELDER"). _
Select
Selection.ShapeRange.ZOrder msoBringToFront

end if

"

oder so - auf jeden fall kann ich hier basteln und googlen was ich
will - entweder ist es was ganz simples und ick seh es nicht oder es
iss was doll kompliziertes - aber da ich ja nun schon bis hierher
gekommen bin ..

wàre toll wenn mir da einer helfen würde

entweder als antwort im jeweiligen forum oder direkt an die im
erlàrungstext angegebene mailaddi ;-)

einfach diesen ordner hier (z_vorlagen_bastel) auf laufwerk c legen -
dann stimmen alle links und man kann rumbasteln ;-)

danke

warum überhaupt das ganze? - soll sowas wie ne dokumentenverwaltung
der spartanischen art werden *lach* - mehr im erklàrungstext im zip

bis hierher bin ick gekommen in den letzten nàchten aber nun klemmts

eventuell hat ja beim spielen mit der datei einer ne idee

der jens
++++ in der *.dot in "ThisDocument"

Private Sub Document_New()
Dim oShape As Shape, oRange As Range
Dim Pfad As String

Pfad = "C:\z_vorlagen_bastel\logo_sw.jpg"

Set oRange ActiveDocument.Sections(1).Headers(wdHeaderFooterPrimary).Range
Set oShape = ActiveDocument.Shapes.AddPicture(FileName:=Pfad, _
LinkToFile:=False, SaveWithDocument:=True,
Anchor:=oRange)

'optionale Formatierungen
oShape.Height = 102
oShape.Width = 592.45
oShape.Left = CentimetersToPoints(-2.01)
oShape.Top = CentimetersToPoints(0.1)

Call Sektion2
End Sub

Private Sub Sektion2()
Dim oShape As Shape, oRange As Range
Dim weg As String

weg = "C:\z_vorlagen_bastel\temp_sw_mlogo.jpg"

Set oRange ActiveDocument.Sections(1).Headers(wdHeaderFooterFirstPage).Range
Set oShape = ActiveDocument.Shapes.AddPicture(FileName:=weg, _
LinkToFile:=False, SaveWithDocument:=True,
Anchor:=oRange)

'optionale Formatierungen
oShape.Height = 838.5
oShape.Width = 592.45
oShape.Left = CentimetersToPoints(-2.01)
oShape.Top = CentimetersToPoints(0.1)

' ohne call textfeld_vor làuft es bis hier unter office 2003 und 2007
supi aus einer *.dot heraus

Call textfeld_vor
End Sub
Sub textfeld_vor()

Dim shp As Word.Shape
Dim shpTB As Word.Shape

'Zum Dokumentanfang springen
ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument
Selection.HomeKey Unit:=wdStory

'In die Kopfzeilen-Ansicht wechslen

If ActiveWindow.View.SplitSpecial <> wdPaneNone Then
ActiveWindow.Panes(2).Close
End If
If ActiveWindow.ActivePane.View.Type = wdNormalView Or
ActiveWindow. _
ActivePane.View.Type = wdOutlineView Then
ActiveWindow.ActivePane.View.Type = wdPrintView
End If
ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
Selection.HeaderFooter.Shapes("Text Box 67").Select
Selection.HeaderFooter.Shapes.Range(Array("Text Box 67", "Text Box
68")). _
Select
Selection.ShapeRange.ZOrder msoBringToFront
ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument

End Sub
 

Lesen sie die antworten

#1 Thomas Gahler
30/04/2008 - 07:47 | Warnen spam
Hallo jensspeedy

Schön dass du hier auftauchst, doch wir lieben hier richtige Namen und kurze
Texte, die auf den Punkt kommen.

So habe ich mal versucht deine Fragen zu deinem Problem zu finden...

wenn ich
allerdings die grafiken lade verschwinden die vorhanden textfelder
nach hinten - aber wie bekomme ich se per vba wieder nach vorn? EGAL
wie viele es sind und wie se alle heissen?


Du kannst deine Prozedur so anpassen, dann kommen alle wieder nach vorne

Sub textfeld_vor()
Dim rng As Word.Range
Dim shp As Word.Shape

Set rng =
ActiveDocument.Sections(1).Headers(wdHeaderFooterFirstPage).Range

For Each shp In rng.ShapeRange
If shp.Type = msoTextBox Then
shp.ZOrder msoBringToFront
End If
Next shp
End Sub


Aber wieso alle so umstàndlich nach vorne holen, du kannst ja gleich die
Grafik von Anfang an nach hintenstellen und vielleicht gelich einen Namen
verpassen.


'optionale Formatierungen
with oShape
.Height = 838.5
.Width = 592.45
.Left = CentimetersToPoints(-2.01)
.Top = CentimetersToPoints(0.1)
.Zorder msoSendBehindText
.Name = "Logo_" & cstr(rnd())
end with



'Zum Dokumentanfang springen
ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument


hat sich mit der Anpassung erledigt









Sub textfeld_vor()
Dim rng As Word.Range
Dim shp As Word.Shape

Set rng =
ActiveDocument.Sections(1).Headers(wdHeaderFooterFirstPage).Range

For Each shp In rng.ShapeRange
If shp.Type = msoTextBox Then
shp.ZOrder msoBringToFront
End If
Next shp
End Sub


Thomas Gahler
MVP für WordVBA
Co-Autor von »Microsoft Word-Programmierung.
Das Handbuch« (MS Press)


- Windows XP (SP2), Office XP (SP3)

Ähnliche fragen