Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Frage Microsoft Microsoft Office

Zeile per VBA Makro in Word an aktueller Position hinzufügen

Mitglied: cookie

cookie (Level 1) - Jetzt verbinden

02.05.2011 um 10:31 Uhr, 11723 Aufrufe, 3 Kommentare

Hallo zusammen.

Ich habe ein Problem mit einem VBA Makro in Word 2007.

Ich habe eine Tabelle mit div. Inhalten.

An verschiedenen Positionen müssen Massnahmen oder Aufgaben hinzugefügt werden. Das Makro wird über einen Button gestartet. Nun fügt es mir die Zeile jeweils nicht an der aktuellen Position sondern unterhalb des Buttons ein.
Wie kann ich nun unterhalb meiner aktuellen Position eine neue Zeile einfügen?

Vielen Dank.

Gruss Cookie
Mitglied: 83928
02.05.2011 um 16:30 Uhr
Schade, dass Du kein Code gepostet hast.
Das Selection-Objekt hat eine Methode, mit der Du die Zeilenummer (der aktuellen Seite) in der sich der Cursor befindet bestimmen kannst.

01.
Selection.Information(wdFirstCharacterLineNumber)
Bitte warten ..
Mitglied: cookie
09.05.2011 um 08:36 Uhr
Hallo abaaba.

Vielen Dank für den Hinweis.
Mein Problem ist einfach, dass ich die Position beim Drücken auf den Button verliere oder?

Ich führe beim Drücken folgender Befehl aus:
Private Sub NeueMassnahme_Click()
Call ADD_NeueMassnahme
End Sub

Danach wird ADD_NeueMassnahme aufgerufen und dies sieht wie folgt aus:
Sub ADD_NeueMassnahme()
' Dokumentschutz entfernen
ActiveDocument.Unprotect Password:="xxx"
' Position springen
Selection.MoveDown Unit:=wdLine, Count:=1
' Zeile einfuegen
Selection.InsertRowsBelow 1
' Einfuegen NR-Feld
Selection.MoveLeft Unit:=wdCharacter, Count:=1
Selection.Editors.Add wdEditorEveryone
Selection.FormFields.Add Range:=Selection.Range, Type:= _
wdFieldFormTextInput
Selection.PreviousField.Select
With Selection.FormFields(1)
.Name = "Nummer1"
.EntryMacro = ""
.ExitMacro = ""
.Enabled = True
.OwnHelp = False
.HelpText = ""
.OwnStatus = False
.StatusText = ""
With .TextInput
.EditType Type:=wdRegularText, Default:="", Format:=""
.Width = 2
End With
End With
Selection.MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdExtend
Selection.Editors.Add wdEditorEveryone
Selection.MoveRight Unit:=wdCell
' Einfuegen Massnahmen Feld
Selection.FormFields.Add Range:=Selection.Range, Type:= _
wdFieldFormTextInput
Selection.Editors.Add wdEditorEveryone
Selection.MoveRight Unit:=wdCell
' Einfuegen wer
Selection.FormFields.Add Range:=Selection.Range, Type:= _
wdFieldFormTextInput
Selection.MoveRight Unit:=wdCell
' Einfuegen Datum
Selection.Range.ContentControls.Add (wdContentControlDate)
Selection.TypeText Text:=" "
Selection.MoveRight Unit:=wdCharacter, Count:=2
' Einfuegen Status
Selection.Range.ContentControls.Add (wdContentControlComboBox)
Selection.TypeText Text:=" "
Selection.ParentContentControl.Title = "Status"
Selection.ParentContentControl.Tag = "Status"
Selection.ParentContentControl.DropdownListEntries.Clear
Selection.ParentContentControl.DropdownListEntries.Add Text:=" ", _
Value:=""
Selection.ParentContentControl.DropdownListEntries.Add Text:="offen", _
Value:="offen"
Selection.ParentContentControl.DropdownListEntries.Add Text:="in Arbeit", _
Value:="in Arbeit"
Selection.ParentContentControl.DropdownListEntries.Add Text:="erledigt", _
Value:="erledigt"
Selection.MoveRight Unit:=wdCharacter, Count:=2
' Einfuegen Kosten
Selection.FormFields.Add Range:=Selection.Range, Type:= _
wdFieldFormTextInput
' Dokumentschutz einfuegen
ActiveDocument.Protect Password:="xxx", NoReset:=False, Type:= _
wdAllowOnlyReading, UseIRM:=False, EnforceStyleLock:=False
End Sub

Nur wird mir so die Zeile direkt unterhalb dem Button eingefügt und nicht an der aktuellen Position.
Gibt es hier eine Möglichkeit?

Vielen Dank.

Gruss
Bitte warten ..
Mitglied: 83928
09.05.2011 um 13:44 Uhr
Mein Problem ist einfach, dass ich die Position beim Drücken auf den Button verliere oder?

Ja, stimmt. Beim Klick sitzt der Focus (und damit die Selection) wieder auf dem Button.
Du kannst Dir hier aber mit einem kleinen, schmutzigen Trick behelfen. Speichere die Zeilennummer zwischen, bevor das Steuerelement den Focus bekommt - hier bietet sich das MouseOver-Ereignis an:

01.
Dim varZeile 'as ??? 
02.
 
03.
Private Sub CommandButton1_Click() 
04.
    MsgBox "Aktuelle Zeile ist: " & varZeile 
05.
End Sub 
06.
 
07.
Private Sub CommandButton1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single) 
08.
    If Button = 0 Then 'Nur 0 wenn keine Maustaste gedrückt. 
09.
        varZeile = Selection.Information(wdFirstCharacterLineNumber) 'Zeilennummer der Variable zuweisen 
10.
    End If 
11.
End Sub
Bitte warten ..
Ähnliche Inhalte
Microsoft Office
Excel VBA - Jede Zeile ohne aktuelles Datum entfernen
gelöst Frage von abuelitoMicrosoft Office4 Kommentare

Hallo an Alle, ich habe folgendes Problem und hoffe, dass ihr mir wieder helfen könnt :-) Ich habe eine ...

VB for Applications
VBA-Makro verschwindet nach Speichern
gelöst Frage von lupi1989VB for Applications5 Kommentare

Liebe Leute, bei mir verschwindet der Makro für den Scrollbereich in Excel(abgespeichert in xlsm) immer wieder nach dem Speichern. ...

Microsoft Office
VBA - aktuelle Kalenderwoche ermitteln
gelöst Frage von Ghost108Microsoft Office3 Kommentare

Hallo zusammen, wie kann ich mit Hilfe von VBA die Kalenderwoche des aktuellen Datums ermitteln?

Microsoft Office
VBA Excel Makro - Serienbrief in Word aus Excel starten und anschließen einzeln speichern
gelöst Frage von abuelitoMicrosoft Office5 Kommentare

Hallo an Alle, ich möchte gerne aus Excel heraus mein Serienbrief starten und die Briefe einzeln speichern. Das bedeutet, ...

Neue Wissensbeiträge
Linux

Meltdown und Spectre: Linux Update

Information von Frank vor 2 TagenLinux

Meltdown (Variante 3 des Prozessorfehlers) Der Kernel 4.14.13 mit den Page-Table-Isolation-Code (PTI) ist nun für Fedora freigegeben worden. Er ...

Tipps & Tricks

Solutio Charly Updater Fehlermeldung: Das Abgleichen der Dateien in -Pfad- mit dem Datenobject ist fehlgeschlagen

Tipp von StefanKittel vor 3 TagenTipps & Tricks

Hallo, hier einmal als Tipp für alle unter Euch die mit der Zahnarztabrechnungssoftware Charly von Solutio zu tun haben. ...

Sicherheit

Meltdown und Spectre: Wir brauchen eine "Abwrackprämie", die die CPU-Hersteller bezahlen

Information von Frank vor 3 TagenSicherheit12 Kommentare

Zum aktuellen Thema Meltdown und Spectre: Ich wünsche mir von den CPU-Herstellern wie Intel, AMD oder ARM eine Art ...

Sicherheit

Meltdown und Spectre: Realitätscheck

Information von Frank vor 3 TagenSicherheit12 Kommentare

Die unangenehme Realität Der Prozessorfehler mit seinen Varianten Meltdown und Spectre ist seit Juni 2017 bekannt. Trotzdem sind immer ...

Heiß diskutierte Inhalte
Firewall
Penetrationstester-Labor - Firewalls
Frage von Oli-nuxFirewall10 Kommentare

Mich würde interessieren warum man beim Einrichten eines Penetrationstester-Labor (VMs) die Firewall der Systeme deaktivieren soll? Hat das nur ...

SAN, NAS, DAS
Wer kennt sich mit QNAP und CISCO aus ?
gelöst Frage von MachelloSAN, NAS, DAS9 Kommentare

Hallo Zusammen hier im Forum, Ich habe ein QNas 451+ und dieses NAS hat zwei GBit Lan Adapter die ...

Netzwerkgrundlagen
IPv6 Inter-VLAN Routing
gelöst Frage von clSchakNetzwerkgrundlagen9 Kommentare

Hi ich befasse mich gerade mit der Implementierung von IPv6 was bisher (in einem VLAN) korrekt funktioniert inkl. DNS ...

Windows Netzwerk
Zugriff auf den Desktop Ordner eines anderen Rechners in der gleichen Domäne
gelöst Frage von JensNomaWindows Netzwerk6 Kommentare

Guten Abend, ich war neulich mit unserem Admin am Tisch gesessen. Er an seinem Notebook angemeldet mit dem Domänen-Admin, ...