Office: (Office 2010) Zahlen im Rich-Text Inhaltssteuerelement

Helfe beim Thema Zahlen im Rich-Text Inhaltssteuerelement in Microsoft Word Hilfe um das Problem gemeinsam zu lösen; Hallo, ich möchte, dass im Rich-Text Inhaltssteuerelement nur ganze Zahlen mit 1.000er Trennpunkt eingegeben werden können. Gibt es dafür eine... Dieses Thema im Forum "Microsoft Word Hilfe" wurde erstellt von nana1984, 29. Mai 2018.

  1. Zahlen im Rich-Text Inhaltssteuerelement


    Hallo,

    ich möchte, dass im Rich-Text Inhaltssteuerelement nur ganze Zahlen mit 1.000er Trennpunkt eingegeben werden können. Gibt es dafür eine Einstellung?Zahlen im Rich-Text Inhaltssteuerelement :confused:

    Sonnige Grüße
    nana
     
    nana1984, 29. Mai 2018
    #1
  2. Gerhard H Erfahrener User
    Hallo nana ,

    Inhaltssteuerelemente sind für sowas standardmäßig nicht vorgesehen. Du hast zwei Möglichkeiten:

    Entweder auf die alten Formular-Textfelder (Formulare aus Vorversionen) ausweichen. Dort kannst du ein Zahlenformat einstellen. Aber das Dokument muss geschützt werden, damit das funktioniert.

    Oder ins Modul Thisdocument deines Dokuments oder deiner Dokumentvorlage folgendes Makro einbringen:
    Code:
    Private Sub Document_ContentControlOnExit(ByVal CC As ContentControl, Cancel As Boolean)
    Dim eintrag As String
    
    'nur loslegen in Steuerelementen, die den Tag "NurZahlen" haben
    If CC.Tag <> "NurZahlen" Then Exit Sub
    
    'Eintrag im Control auslesen
    eintrag = CC.Range.Text
    
    'zur Fehlerbehandlung springen, wenn der Eintrag nicht als Zahl interpretiert werden kann
    On Error GoTo fehler
    
    'Andernfalls formatierten Text ausgeben.
    'Kommastellen werden dabei automatisch "weggegerundet"
    CC.Range.Text = Format(CLng(eintrag), "#,##0")
    Exit Sub
    
    'Fehlerbehandlung
    fehler:
    If Err.Number = 13 Then
        MsgBox "Bitte nur ganze Zahlen eingeben!"
    End If
    End Sub
    Es funktioniert für alle Inhaltssteuerelemente, die den Tag NurZahlen haben. Dabei ist Groß/Kleinschreibung zu beachten.

    Wermutstropfen: Das Makro kann nicht mitprotokollieren, sondern arbeitet erst nach Verlassen der Inhaltssteuerelemente.
     
    Gerhard H, 30. Mai 2018
    #2
  3. Hallo Gerhard,

    vielen Dank. Da ich Makro-Anfängerin bin, stellt es mich vor weitere Probleme:

    Ich habe ein Dokument, dass ein Serienbrief werden soll.
    Per Makro werden daraus einzelne, schreibgeschützte Dateien:

    Code:
    Sub Ausgabe_einzelne_Dateien()
    '
    ' Druckt Serienbrief in einzelne Dokumente aus
    '
    Dim Dateiname As String
    Dim LetzterRec As Long
       
    Application.ScreenUpdating = False
    Application.Visible = False
    
    Const path As String = "C:\Pfad\Zielordner"
    ActiveDocument.MailMerge.DataSource.ActiveRecord = wdLastRecord
    LetzterRec = Word.ActiveDocument.MailMerge.DataSource.ActiveRecord
    ActiveDocument.MailMerge.DataSource.ActiveRecord = wdFirstRecord
    
    
        With ActiveDocument.MailMerge
            .DataSource.ActiveRecord = wdFirstRecord
            Do
                If .DataSource.ActiveRecord > 0 Then
                    .Destination = wdSendToNewDocument
                    .SuppressBlankLines = True
    
                    With .DataSource
                        .FirstRecord = .ActiveRecord
                        .LastRecord = .ActiveRecord
                       
                    Dateiname = path & .DataFields("Ãœberschrift A1").Value & "_" & .DataFields("Ãœberschrift B1").Value & .DataFields("Ãœberschrift C1").Value & ".docx"
                    End With
                    .Execute Pause:=False
                   
                    ActiveDocument.Protect Type:=wdAllowOnlyFormFields, Password:=""             ' Dokumentschutz
                    ActiveDocument.SaveAs FileName:=Dateiname
                    ActiveDocument.Close False
                   
                End If
               
                If .DataSource.ActiveRecord < LetzterRec Then
                    .DataSource.ActiveRecord = wdNextRecord
               Else
                   Exit Do
               End If
           Loop
       End With
                
       
        Application.Visible = True
        Application.ScreenUpdating = True
     
    End Sub
    Müssen die Zieldateien Makro-Dateien sein? Oder wo soll das hin?

    Vielen Dank schon mal...

    nana
     
    Zuletzt von einem Moderator bearbeitet: 30. November 2020
    nana1984, 31. Mai 2018
    #3
  4. Gerhard H Erfahrener User

    Zahlen im Rich-Text Inhaltssteuerelement

    Hallo nana,

    Aha, Serienbrief, also nochmal von vorne:

    Die Variante mit den alten Formularfeldern scheidet damit aus, denn Serienbrief und Dokumentschutz gehen nicht zusammen.

    Dein erster Beitrag klang mir so, als würde das Inhaltssteuerelement von einem Anwender händisch ausgefüllt. Das würde dann ja nur im Seriendruckhauptdokument Sinn haben, und es würde sich um eine konstante Zahl in allen ausgeführten Serienbriefen handeln.

    Sollte ich damit richtig liegen, gehört das Makro in das Seriendruckhauptdokument, und zwar, egal wo das andere Makro liegt, in das Modul ThisDocument. Und zwar als eigenes Makro, nicht in deines eingebaut. Und das Seriendruckhauptdokument muss damit zwangsläufig ein Dokument oder eine Dokumentorlage mit Makros sein (.docm oder .dotm)

    Sollte ich damit falsch liegen, müsste die Zahl ja als Seriendruckfeld übertragen werden, denn niemand würde ja so gern jeden ausgeführten Serienbrief nochmal anfassen, um eine Zahl einzutippen. In dem Fall könntest du aber das Seriendruckfeld direkt per Formatschalter in Word formatieren, z.B. so: {mergefield zahl \# "#.##0"}.
    Es in ein Inhaltssteuerelement zu packen wäre dann aber überflüssig, und das Makro auch.

    Ich weiß also nicht so recht, wann und auf welche Weise die Zahl ins Dokument gelangen soll. Wenn beide Ideen nicht das treffen, was du vorhast, erklär das doch bitte nochmal.
     
    Gerhard H, 31. Mai 2018
    #4
  5. Hallo Gerhard,

    vielen Dank für Deine Unterstützung.


    Ich benötige folgendes:
    ein einheitliches Formular, dass Teilweise mit unterschiedlichen Daten vor ausgefüllt ist und mit weiteren Zahlen und Texten ergänzt werden soll (insg. ca. 300 Varianten).

    Bisher bin ich wie folgt vorgegangen:
    - Datenquelle für die unterschiedlichen Daten in Excel erstellt (hauptsächlich Zahlen, aber auch Texte)
    - Formular in Word erstellt, als docm gespeichert, mit Inhaltssteuerelementen, da nur diese im Serienbrief übernommen werden
    - mit dem o.g. makro die ca. 300 geschützten einzelnen docx-Dateien generiert.

    Mein Problem ist nun, dass in den einzelnen docx-Dateien in den Inhaltssteuerelementen, in denen nur Zahlen eingegeben werden sollen, die entsprechenden Formatierungen für ganze Zahlen mit tausender Punkt Trennzeichen fehlen....


    Ich hoffe, dass meine Erläuterung nicht allzu kompliziert ist...

    Sonnige Grüße
    nana
     
    nana1984, 1. Juni 2018
    #5
  6. Gerhard H Erfahrener User
    Hallo nana,

    deine Antwort bringt mich nicht weiter. Ich formuliere mein (Un)-Verständnis nochmal neu:

    Ich versteh, dass du ein Seriendruck-Hauptdokument erstellt hast, das einerseits über Seriendruckfelder aus der Datenquelle befüllt wird, andererseits über Inhaltssteuerelemente, die extra befüllt werden. Die noch offene Frage lautet:

    In welchen Stadium des Prozesses werden die zu formatierenden Zahlen eingegeben (das hast du mir noch nicht beantwortet)?.

    a) In das Seriendruck-Hauptdokument, bevor der Seriendruck ausgelöst wird?
    Dann könntest du die Zahl ja genausogut als fixen Text ins Hauptdokument schreiben, denn sie wäre ja für alle Empfänger die selbe.
    Oder du brauchst aus irgendeinem Grund ein Inhaltssteuerelement, dann müsste
    mein Vorschlag mit dem Makro ContentControlOnEnter funktionieren. Hast du das mal ausprobiert? Wenn ja: mit welchem Ergebnis?
    Wenn nein: warum passt dieser Vorschlag nicht in dein Konzept?

    b) In die einzelnen ausgeführten Briefe nach Fertigstellung des Seriendrucks, weil die zu formatierende Zahl für jeden Empfänger verschieden sein soll?
    Dann könntest du doch diese Zahl direkt in die Datenquelle einbringen und im Word-Dokument als Seriendruckfeld erscheinen lassen.
    Alternativ und ziemlich umständlich wäre es möglich, in das Seriendruck-Hauptdokument ein ASK-Feld mit dem Schalter \o einzubringen, das bei jedem zu erstellendem Einzeldokument nach der Zahl fragt. Dazu hab ich mir aber noch nichts überlegt (speziell nicht), wie das zu deinem bisherigen Makro passt, weil ich eben den Sinn der Aktion noch nicht verstehe. Jedes einzelne der 300 geschützten Dokumente noch mal aufmachen und eine Zahl eingeben, willst du ja vermutlich nicht.

    Vielleicht wäre es von Nutzen, wenn du zusätzlich zur Beantwortung meiner Fragen ein Muster der Datenquelle hochlädst (die relevanten Spalten mit ein, zwei fingierten Datensätzen)
    und ein Muster deines Seriendruck-Hauptdokuments, aus dem hervorgeht, was per Seriendruck gefüllt wird und was wann noch extra ergänzt werden soll.
     
    Gerhard H, 1. Juni 2018
    #6
  7. Hallo Gerhard,

    danke für Deine Geduld!

    Die Zahlen werden erst in den 300 Enddokumenten eingegeben.

    Es ist Antwort b) In die einzelnen ausgeführten Briefe nach Fertigstellung des Seriendrucks, weil die zu formatierende Zahl für jeden Empfänger verschieden sein soll.

    Ich kann diese Zahlen nicht in die Datenquelle einbringen, weil ich sie nicht kenne - das sind die Zahlen, die ich erfragen muss und dafür will ich diese Dateien nutzen.

    - doch, genau das will ich - bzw. nicht ich - das sollen andere machen. Ich stelle Ihnen die Dateien mit meinen Daten und leeren Inhaltssteuerelementen zentral auf einem Laufwerk zur Verfügung, mit der Bitte diese auszufüllen. Es sollen mal Zahlen, mal Texte eingetragen werden.

    Den Anhang Bsp.zip betrachten

    Ich habe eine abgespeckte Variante als Beispiel genommen. In dem Beispiel wird nach Teilnehmerzahlen gefragt. In meinem echten Fall wird hauptsächlich nach Kosten gefragt.

    Beste Grüße
    nana
     
    Zuletzt bearbeitet: 1. Juni 2018
    nana1984, 1. Juni 2018
    #7
  8. Gerhard H Erfahrener User

    Zahlen im Rich-Text Inhaltssteuerelement

    Hallo nena,

    jetzt hab ich es endlich kapiert.

    Eine Makrolösung scheidet für mich jetzt endgültig aus, weil du das Makro zum Formatieren der Zahlen inberhalb deines Einzeldokumenten-Makro automatisiert erstellen lassen müsstest (was ich noch nie gemacht habe, nicht wüsste, wie das geht und wenn ich es wüsste, wäre es mir zu heiß).

    Ich setze noch eine gewisse Hoffnung auf die Lösung mit ASK-Feldern. Allerdings bin ich mir noch nicht sicher, ob man alle Bedingungen dafür herstellen kann. Das will ich aber selber erst einmal ausprobieren. Eine Vorlage hab ich jetzt ja.

    Ich melde mich spätestens Anfang nächster Woche wieder.
     
    Gerhard H, 1. Juni 2018
    #8
  9. puuuh.. ich bin mittelmäßig im Erklären.... Ich wünsche Dir ein schönes Wochenende und bin gespannt, was rauskommt... :)
     
    nana1984, 2. Juni 2018
    #9
  10. Gerhard H Erfahrener User
    Hallo nana,

    nachdem ich beim Versuch, eine makrofreie Lösung mittels Fill-In-Felder von Stolperstein zu Stolperstein gefallen bin und mir nur eine anwenderverwirrende Variante gelungen ist, hab ich mich entschlossen, doch eine Lösung mit Makro in den Einzeldokumenten zu finden.

    Wichtig:
    • Diese Lösung funktioniert nur, wenn auf dem Computer, auf dem sie laufen soll (also vermutlich auf deinem), die Option Zugriff auf das VBA-Projektobjektmodell vertrauen angehakt ist. Du findest die in den Word-Optionen > Sicherheitscenter > Einstellungen für Makros. Auf den Computern der Anwender muss dies nicht sein. Da diese Einstellung sicherheitstechnisch vermutlich nicht so optimal ist, solltest auch du sie nach getaner Arbeit wieder deaktivieren.
    • Der Ordner, in dem die Einzeldokumente gespeichert werden, sollte in die Liste der vertrauenswürdigen Ordner aufgenommen werden, ansonsten gibt es bei jedem Öffnen eine Sicherheitsnachfrage.

    Das hab ich gemacht:

    Im Seriendruck-Hauptdokument selber:
    • Den beiden Inhaltssteuerelementen für die Aufnahme der Zahlen einen Tag verpasst: "NurZahlen", und zwar beiden den gleichen (wichtig beim Nachbasteln: bei den Tags kommt es auf Groß- und Kleinschreibung an)

    Im Makro des Hauptdokuments:
    Das ist im Wesentlichen dein bisheriges mit folgenden Änderungen / Ergänzungen:
    • Ich hab den Speicherpfad für die Einzeldokumente an meine Testumgebung angepasst. Das musst du wieder an deine Bedürfnisse rückstellen, bevor du das Makro testest.
    • Die Einzeldokumente werden als Dokumente mit Makros gespeichert
    • Es gibt einen ausgegliederten Code, der in jedes Einzeldokument das Makro aus Beitrag Nr. 2 einträgt.
    • Application.ScreenUpdating = False und Application.Visible = False hab ich auskommentiert. Beim Testen will man ja sehen, was passiert.

    Wenn der Anwender in einem der beiden Steuerelemente was einträgt, wird das nach Verlassen des Elements so behandelt, wie im Beitrag 2 beschrieben.

    Du kannst das Hauptdokument um beliebig viele solcher Elemente erweitern. Du musst nur dafür sorgen, dass sie jeweils denselben Tag bekommen. Alle übrigen Inhaltssteuerelemente ohne diesen Tag werden vom Makro ignoriert.

    Teste das mal. Wenn es läuft ist es vielleicht trotzdem ratsam, nicht alle 300 Datensätze auf einmal zu behandeln, nicht dass dein Computer in die Knie geht.
     

    Anhänge:

    Gerhard H, 3. Juni 2018
    #10
  11. Sabine L Neuer User
    Hallo Gerhard,

    ich bin auf diesen Post gestoßen, da ich hier ein ähnliches Problem habe, mich aber mit VBA/Makro so gut wie nicht auskenne. :-(

    Ich habe ein Formular, wo ich die Formularfelder bereits durchnummerierte TAG's(IDX1, IDX2, IDX3, ... IDX35, IDX36, ...) haben, da wir diese für was anderes benötigen. Hier müssten einige Formularfelder nur mit Zahlen gefüllt werden.
    Kann ich das o.g. Makro auch ausweiten, dass es 10 meiner Formularfelder beinhaltet?

    Vielen Dank schon mal für deine Hilfe.
    Auch wenn der Eintrag schon etwas älter ist.

    Grüße
    Sabine
     
    Sabine L, 15. Juni 2022
    #11
  12. Gerhard H Erfahrener User
    Fragen:
    • Es geht um das Makro aus Beitrag 2?
    • Es geht nicht um einen Serienbrief?
    • Deine Formularfelder sind auch Text-Inhaltssteuerelemente?
    • Die Zahlen sollen händisch eingegeben werden?
    • Es sind offenbar mehr als 10 solcher Steuerelemente vorhanden. Woran erkennt man diejenigen 10, die nur Zahlen enthalten dürfen? An den Tags IDX1 bis IDX10?
    • Soll nur geprüft werden, ob die Eingaben als Zahlen interpretierbar sind, oder soll auch ein bestimmtes Format vorgegeben werden (wie hier: Nur ganze Zahlen)?
     
    Gerhard H, 15. Juni 2022
    #12
  13. Sabine L Neuer User

    Zahlen im Rich-Text Inhaltssteuerelement

    Danke für die schnelle Antwort

    Ja Makro aus Beitrag 2 und kein Serienbrief und die Formularfelder sind Text-Inhaltssteuerelemente, welche per Hand befüllt werden.
    Es sind ca 50 Steuerelemente und welche nur Zahlen enthalten sollen sind mit den Tags IDX35 - IDX45 gekennzeichnet.
    Im besten Fall sollten nur Zahlen mit 2 Dezimalstellen eingegeben werden. Und das non-plus Ultra wäre, wenn der Inhalt gelöscht wird wenn Buchstaben oder Sonderzeichen eingegeben werden.

    Grüße Sabine
     
    Sabine L, 15. Juni 2022
    #13
  14. Gerhard H Erfahrener User
    Hallo Sabine,

    probier mal das:
    Code:
    Private Sub Document_ContentControlOnExit(ByVal CC As ContentControl, Cancel As Boolean)
    
    'nur loslegen in Steuerelementen...
    
    '- deren Tag mit IDX beginnt...
    If Left(CC.Tag, 3) <> "IDX" Then Exit Sub
    
    '- deren letzte zwei Zeichen Ziffern sind:
    If Not IsNumeric(Right(CC.Tag, 2)) Then Exit Sub
     
    'und deren letzte beide  Ziffern zwischen 35 und 45 liegen
    If (CLng(Right(CC.Tag, 2)) >= 35) * (CLng(Right(CC.Tag, 2) <= 45)) <> 0 Then
         
            'dann endlich den Inhalt prüfen:
            If IsNumeric(CC.Range.Text) Then
                CC.Range.Text = Format(CC.Range.Text, "#,##0.00")
           
            Else
                MsgBox "Hier bitte nur Zahlen eingeben!"
                CC.Range.Text = ""
            End If
        End If
    
    End Sub
    Geprüft wird immer direkt nach Verlassen eines Steuerelements mit dem richtigen Tag. Prüfkriterien für den richtigen Tag sind: Beginnt mit "IDX", gefolgt von zwei Ziffern im angegebenen Bereich.
    Prüfkriterium für die Eingabe ins Steuerelement ist: Nur Ziffern, inclusive Tausenderpunkt und Dezimaltrennzeichen.
    Testdokument im Anhang (gezippt, da Dokumente mit Makros nicht erlaubt sind).
     
    Gerhard H, 16. Juni 2022
    #14
    1 Person gefällt das.
  15. Sabine L Neuer User
    Hallo Gerhard,

    gerade getestet. Funktioniert einwandfrei.
    Vielen Dank für die schnelle Hilfe und Unterstützung!

    Grüße Sabine
     
    Sabine L, 20. Juni 2022
    #15
Thema:

Zahlen im Rich-Text Inhaltssteuerelement

Die Seite wird geladen...
  1. Zahlen im Rich-Text Inhaltssteuerelement - Similar Threads - Zahlen Rich Text

  2. Excel 2010 wandelt jede eingegeben zahl x in 0,x um

    in Microsoft Excel Hilfe
    Excel 2010 wandelt jede eingegeben zahl x in 0,x um: Hallo zusammen, befürchte nicht ganz neu das Thema, aber von mir nicht in den Griff zu kriegen...... Nutze 2010 prof. ==> wenn ich ein Zahl eingebe, dann wandelt Excel diese in eine Dezimalzahl...
  3. Feiertage ohne Wochenende zählen

    in Microsoft Excel Hilfe
    Feiertage ohne Wochenende zählen: Hallo Zusammen Während ich das Thema geschrieben habe, konnte ich eine Lösung finden. *:D* Habe das Thema aber trotzdem gepostet, falls jemand auf dasselbe Problem stossen sollte bzw. jemand die...
  4. Zahlenformat: Tausender Trennzeichen auch vor Zahlen unter tausend!?

    in Microsoft Excel Hilfe
    Zahlenformat: Tausender Trennzeichen auch vor Zahlen unter tausend!?: Hallo zusammen. Ich habe folgendes Problem: ich weiss, wie man Zellen formatiert und bei zahlen das Tausender-Trennzeichen einfügt. hat bisher immer gut geklappt: z.b. 16'768.00 (in der CH...
  5. Dienstplan - Guttage zählen

    in Microsoft Excel Hilfe
    Dienstplan - Guttage zählen: Hallo Zusammen, ich komme leider nicht weiter und benötige daher Eure Hilfe. Mein Wunschgedanke wäre es, das der Dienstplan automatisch die Urlaubs- bzw. Guttage zählt. Bei den Urlaubstagen bin...
  6. Jahreszahlen bzw. Zeitspannen römischen Zahlen zuordnen

    in Microsoft Excel Hilfe
    Jahreszahlen bzw. Zeitspannen römischen Zahlen zuordnen: Hi, ich habe folgendes Excel-Problem: Ich möchte gerne in V2 eine Jahreszahl eingeben, die dann in X2 automatisch eine vorgegebene römische Zahl auswirft. Also nach folgenden Angaben <=1918...
  7. Abstände zwischen Zahlen entfernen - Zu lange Zahlen werden falsch angezeigt

    in Microsoft Excel Hilfe
    Abstände zwischen Zahlen entfernen - Zu lange Zahlen werden falsch angezeigt: Ich habe eine Liste von Zahlen, die nicht korrekt übernommen wurden, sodass immer ein Abstand dazwischen ist. Diese habe ich entfernt, indem ich STRG + H, Abstände entfernen ausgeführt habe. Das...
  8. Kommentare zählen

    in Microsoft Excel Hilfe
    Kommentare zählen: Hallo zusammen, gibt es die Möglichkeit, Kommentare zu zählen und in einer neuen Zelle auszugeben - wie oft hat der jeweilige Teilnehmer die gleiche Begründung verwendet. Danke vorab Gruß TOM
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden