Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
Makro "Aktuelle Uhzeit einfügen" als Schleife?
zurück: Probleme mit Modulen/FSO weiter: Fehler beim kompilieren objekt erforderlich Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Feedback Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
Mäx_chen
Gast


Verfasst am:
05. Feb 2010, 12:53
Rufname:

Makro "Aktuelle Uhzeit einfügen" als Schleife? - Makro "Aktuelle Uhzeit einfügen" als Schleife?

Nach oben
       Version: Office 2003

Hallo zusammen!

Ich wende mich mit folgendem Problem an euch weil ich einfach mit meinem Latein am Ende bin Sad

Ich habe ein Formular in Word mit einigen Formualrfeldern erstellt. Darunter sind auch Datumsfelder als Uhrzeit ([hh:mm]) formatiert.

Um mir das Leben einfacher zu machen habe ich eine Button mit einem Makro neben jedes dieser Felder eingefügt um mir bei einem Klick (auf den Button) die aktuelle Uhrzeit in das betreffende Feld schreiben zu lassen.

Das funtkioniert auch gut. Leider ist durch die Vielzahl der Prozeduren (hinter jedem Buuton liegt eine Prozedur) das Formular beim Öffnen sehr langsam.

Gibt es eine Möglichkeit das folgende Makro auh als Schleife zu schreiben, sodass ich nicht für jeden Button eine eigenständige Prozedur habe?

Private Sub CommandButton_1_Click()
Dim Eingabe As FormField
Set Eingabe = ActiveDocument.FormFields("Text1")
Eingabe.Result = Left(Str(Time), 5)
End Sub

Private Sub CommandButton_2_Click()
Dim Eingabe As FormField
Set Eingabe = ActiveDocument.FormFields("Text2")
Eingabe.Result = Left(Str(Time), 5)
End Sub...




Gruß, Max
Hubert_R
Gast


Verfasst am:
05. Feb 2010, 14:25
Rufname:


AW: Makro "Aktuelle Uhzeit einfügen" als Schleife? - AW: Makro "Aktuelle Uhzeit einfügen" als Schleife?

Nach oben
       Version: Office 2003

Hallo Max,

so gehts.
Code:
Private Sub CommandButton_1_Click()
  ActiveDocument.FormFields("Text1") _
    .Result = Left(Str(Time), 5)
  ActiveDocument.FormFields("Text2") _
    .Result = Format(Time, "hh:MM")
End Sub
Grüsse Hubert
Mäx_chen
Gast


Verfasst am:
05. Feb 2010, 14:57
Rufname:

AW: Makro "Aktuelle Uhzeit einfügen" als Schleife? - AW: Makro "Aktuelle Uhzeit einfügen" als Schleife?

Nach oben
       Version: Office 2003

Hallo!

Danke für die schnelle Antwort! Wenn ich das allerdings so einfüge füllt der Button 1 mir jede meiner Felder mit der aktuellen Uhrzeit aus.

Die Buttons sollen aber die Felder einzeln ansprechen, sprich ich klicke auf Button 1 und Feld1 erhält die aktuelle Uhrzeit, ich klicke später auf Button 2 und Feld2 erhält ebenfalls die aktuelle Uhrzeit....

Ich dachte mit einer Schleife und einer Abfrage welcher Button gedrückt wurde könnte man das richtige Feld füllen. Leider bin ich über das Versuchsstatium nicht herausgekommen Sad

Dazu muss man sagen, das Button und Textfeld die gleiche Nummerierung haben.

Beispiel: Button1 und Texfeld1 etc.

Gruß, Max
Hubert_R
Gast


Verfasst am:
06. Feb 2010, 15:08
Rufname:

AW: Makro "Aktuelle Uhzeit einfügen" als Schleife? - AW: Makro "Aktuelle Uhzeit einfügen" als Schleife?

Nach oben
       Version: Office 2003

Hallo Max,

eine Schleife ist nicht möglich, weil es im aktiven Dokument
keine Möglichkeit gibt festzustellen, welcher Button den
Fokus hat, Irrtum vorbehalten.
Code:
'Object.Value = False: Button nicht gedrückt
Sub a()
   Dim oShape As InlineShape
   '
   For Each oShape In ActiveDocument.InlineShapes
      If oShape.OLEFormat.ProgID = "Forms.CommandButton.1" Then
         MsgBox oShape.OLEFormat.Object.Name _
         & " => " & oShape.OLEFormat.Object.Value
      End If
   Next
End Sub
Also muss man den Code für jeden Button schreiben.
Mit einer entsprechenden Funktion spart man nur ein
paar Zeilen Code.

Grüsse Hubert
Code:
Dim fField As String
'
Private Sub CommandButton1_Click()
  fField = "Text1"
  Call fillFField(fField)
End Sub
'
Private Sub CommandButton2_Click()
  fField = "Text2"
  Call fillFField(fField)
End Sub
'
Private Sub CommandButton3_Click()
  fField = "Text3"
  Call fillFField(fField)
End Sub
'
Private Function fillFField(fField)
  ActiveDocument.FormFields(fField) _
    .Result = Format(Time, "Short Time")
End Function
Lisa
Moderator; Word seit Word 5.0 (für DOS)


Verfasst am:
06. Feb 2010, 19:46
Rufname:
Wohnort: Leipzig


AW: Makro "Aktuelle Uhzeit einfügen" als Schleife? - AW: Makro "Aktuelle Uhzeit einfügen" als Schleife?

Nach oben
       Version: Office 2003

Hallo zusammen,

wie wär es denn, nur EINEN CommandButton (oder auch bloß ein Knöpfchen auf einer Symbolleiste) zu haben. Wenn man den klickt, kann man die Nummer des Textfeldes eingeben, also etwa so:
Code:
Private Sub CommandButton1_Click()

    Dim strAntwort As String
   
    strAntwort = InputBox(Prompt:="Bitte die Nummer des Textfeldes eingeben!")
    If strAntwort = "" Then Exit Sub
    If Not IsNumeric(strAntwort) Then Exit Sub
    strAntwort = "Text" & Trim(strAntwort)
    If ActiveDocument.Bookmarks.Exists(strAntwort) Then
        ActiveDocument.FormFields(strAntwort).Result = Format(Time, "hh:MM")
    End If

End Sub

Nur müsste man die Nummer des Textfeldes kennen. Wenn man keinen CommandButton verwendet, sondern lieber einen Button auf einer Symbolleiste, kann man sogar noch prüfen, ob ein Formularfeld ausgewählt ist, und dessen Nummer vorgeben:
Code:
Sub UhrzeitEingeben()

    Dim strAntwort As String
    Dim strTemp As String
    Dim intTF As Integer
   
    On Error Resume Next
    strTemp = Selection.Paragraphs(1).Range.FormFields(1).Name
    On Error GoTo 0
    If strTemp <> "" Then
        intTF = CInt(Mid(strTemp, 5, Len(strTemp) - 4))
    End If
   
    If intTF <> 0 Then
        strAntwort = InputBox(Prompt:="Bitte die Nummer des Textfeldes eingeben!", _
                     Default:=intTF)
    Else
        strAntwort = InputBox(Prompt:="Bitte die Nummer des Textfeldes eingeben!")
    End If
    If strAntwort = "" Then Exit Sub
    If Not IsNumeric(strAntwort) Then Exit Sub
    strAntwort = "Text" & Trim(strAntwort)
    If ActiveDocument.Bookmarks.Exists(strAntwort) Then
        ActiveDocument.FormFields(strAntwort).Result = Format(Time, "hh:MM")
    End If

End Sub

Das geht beim CommandButton naturgemäß nicht, weil in dem Augenblick, in dem man auf den CommandButton klickt, kein anderes Formularfeld ausgewählt ist, logisch.

Die Symbolleiste hat den weiteren Vorteil, dass im Dokument kein störender CommandButton ist, den man zum Druck erst ausblenden müsste.

Gruß
Lisa
Mäx_chen
Gast


Verfasst am:
08. Feb 2010, 15:30
Rufname:

AW: Makro "Aktuelle Uhzeit einfügen" als Schleife? - AW: Makro "Aktuelle Uhzeit einfügen" als Schleife?

Nach oben
       Version: Office 2003

Hallo zusammen!

Vielen Dank für eure Antworten!

Ich glaube die Idee mit dem Button in der Symbolleiste werde ich weiter verfolgen... auf die wäre ich nie gekommen.

Ein Frage habe ich jedoch dazu:

Wie müsste der Code aussehen, wenn ich keine Abfragebox haben möchte?

Stattdessen soll er mir einfach in das aktuell ausgewählte Formulartextfeld die Uhrzeit reinschreiben. Ist das möglich?

Gruß, Max
Lisa
Moderator; Word seit Word 5.0 (für DOS)


Verfasst am:
08. Feb 2010, 17:06
Rufname:
Wohnort: Leipzig

AW: Makro "Aktuelle Uhzeit einfügen" als Schleife? - AW: Makro "Aktuelle Uhzeit einfügen" als Schleife?

Nach oben
       Version: Office 2003

Hallo Max,

kleine Umstellung, jetzt wird das Feld, in dem die Selection steht, befüllt. Wenn (aus welchen Gründen auch immer) kein Formularfeld ausgewählt ist, passiert gar nichts:
Code:
Sub UhrzeitEingebenVar2()

    Dim strAntwort As String
    Dim strTemp As String
    Dim intTF As Integer
   
    On Error Resume Next
    strTemp = Selection.Paragraphs(1).Range.FormFields(1).Name
    On Error GoTo 0
    If strTemp <> "" Then
        intTF = CInt(Mid(strTemp, 5, Len(strTemp) - 4))
    End If
   
    If intTF <> 0 Then
        strAntwort = CStr(intTF)
'    Else
'        strAntwort = InputBox(Prompt:="Bitte die Nummer des Textfeldes eingeben!")
    End If
    If strAntwort = "" Then Exit Sub
    If Not IsNumeric(strAntwort) Then Exit Sub
    strAntwort = "Text" & Trim(strAntwort)
    If ActiveDocument.Bookmarks.Exists(strAntwort) Then
        ActiveDocument.FormFields(strAntwort).Result = Format(Time, "hh:MM")
    End If

End Sub

Ich habe den Else-Fall mit der InputBox jetzt mal auskommentiert. Wenn Du in dem Fall, dass kein Feld ausgewählt ist, die Abfrage haben willst, nimm die beiden Hochkommas heraus.

Gruß
Lisa
Mäx_chen
Gast


Verfasst am:
09. Feb 2010, 08:40
Rufname:

AW: Makro "Aktuelle Uhzeit einfügen" als Schleife? - AW: Makro "Aktuelle Uhzeit einfügen" als Schleife?

Nach oben
       Version: Office 2003

Schönen Guten Morgen!


Vielen Dank für Deine Hilfe Lisa- Du hast mir sehr geholfen!

ciao,

Max
Gast



Verfasst am:
09. Feb 2010, 09:30
Rufname:

AW: Makro "Aktuelle Uhzeit einfügen" als Schleife? - AW: Makro "Aktuelle Uhzeit einfügen" als Schleife?

Nach oben
       Version: Office 2003

Hallo!

Ich bin es nochmal Wink

Dein Code funktioniert einwandfrei... solange nicht mehrere Formularfelder auf dem Dokument in einer Zeile angeordnet sind.

Sobald zwei Textformularfelder nebeneinander sind, wird immer nur das 1. (ganz links) in der Zeile ausgefüllt (obwohl die 2. selektiert ist).

Wenn an erster Stelle z.B. eine Checkbox o. ä. ist passiert mit dem Textformularfeld an 2. Stelle garnix wenn ich die aktuelle Uhrzeit per Klick eingeben möchte.

Leider kann ich in einer Zeile nicht nur ein Textformularfeld einfügen, da ich 4 Stück benötige um den Status einer Einheit zu dokumentieren:


Einheit Status 1 Status 2 Status 3 Status 4

A (Zeit 1) (Zeit 2) ...

B ...

Ich möchte dokumentieren wann eine Einheit einen bestimmten Status erreicht.


Gibt es eine Möglichkeit das oben genannte Problem zu lösen?


Gruß, Christian
Hubert_R
Gast


Verfasst am:
09. Feb 2010, 14:06
Rufname:

AW: Makro "Aktuelle Uhzeit einfügen" als Schleife? - AW: Makro "Aktuelle Uhzeit einfügen" als Schleife?

Nach oben
       Version: Office 2003

Hallo,

teste das folgende Makro.
Es wird das Textformularfeld ausgefüllt, in dem
der Cursor steht.

Grüsse Hubert
Code:
Sub FfFüllen()
  'On Error Resume Next
  Dim b As Bookmark, bn As String
  '
  If Selection.BookmarkID Then
    For Each b In Selection.Bookmarks
      bn = bn & b.Name
    Next b
    '
    ActiveDocument.FormFields(bn).Result _
      = Format(Time, "Short Time")
   End If
End Sub
Mäx_chen
Gast


Verfasst am:
09. Feb 2010, 15:58
Rufname:


AW: Makro "Aktuelle Uhzeit einfügen" als Schleife? - AW: Makro "Aktuelle Uhzeit einfügen" als Schleife?

Nach oben
       Version: Office 2003

Danke! Jetzt klappt es so wie ich es mir vorgestellt habe.

Gruß, Max
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Diese Seite Freunden empfehlen

Seite 1 von 1
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Word Serienbriefe: Word Serienbrief über Bedingungsfeld Tabellenzeile einfügen 6 Scheff 4493 08. Nov 2010, 13:33
Scheff Word Serienbrief über Bedingungsfeld Tabellenzeile einfügen
Keine neuen Beiträge Word Serienbriefe: Namensfelder einfügen 7 Rusdyn 1727 15. Jul 2010, 14:28
charlybrown Namensfelder einfügen
Keine neuen Beiträge Word Serienbriefe: Serienbrief mit Datenquelle in Word Spalte einfügen 1 GastB 2212 15. Mai 2010, 14:10
charlybrown Serienbrief mit Datenquelle in Word Spalte einfügen
Keine neuen Beiträge Word Serienbriefe: Problem Makro ->Serienbrief -> gesperrte Felder gefund 1 rkstone1 4178 19. Jan 2010, 10:39
fabu Problem Makro ->Serienbrief -> gesperrte Felder gefund
Keine neuen Beiträge Word Serienbriefe: Adressen aus Office tabellen dokument in dokument einfügen 1 Anna-L. 1217 15. Nov 2009, 21:42
charlybrown Adressen aus Office tabellen dokument in dokument einfügen
Keine neuen Beiträge Word Serienbriefe: In Word fertige Textbausteine von extern einfügen 8 Windmechaniker 4262 01. Nov 2009, 01:33
charlybrown In Word fertige Textbausteine von extern einfügen
Keine neuen Beiträge Word Serienbriefe: Textmarken per Includetext einfügen in Abhängigkeit von ASK 0 Robotixx 1804 13. Jul 2009, 19:45
Robotixx Textmarken per Includetext einfügen in Abhängigkeit von ASK
Keine neuen Beiträge Word Serienbriefe: Bilder in Worddokumente automatisch einfügen 0 iam_RaGe 2850 24. März 2009, 14:07
iam_RaGe Bilder in Worddokumente automatisch einfügen
Keine neuen Beiträge Word Serienbriefe: Einfügen von Texten mit Feldfunktionen in einem Formular 14 azse 1524 26. Feb 2009, 11:54
azse Einfügen von Texten mit Feldfunktionen in einem Formular
Keine neuen Beiträge Word Serienbriefe: Anrede einfügen 0 ArianeH 910 27. Aug 2008, 11:47
ArianeH Anrede einfügen
Keine neuen Beiträge Word Serienbriefe: Manuellen Seitenumbruch einfügen 1 BWolf 1400 16. Mai 2007, 21:05
Hübi Manuellen Seitenumbruch einfügen
Keine neuen Beiträge Word Serienbriefe: Datenbank einfügen klappt nicht mehr! 2 Schwertfeger 1321 24. März 2007, 21:32
Schwertfeger Datenbank einfügen klappt nicht mehr!
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: Microsoft-Excel Diagramme