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. 1050 Zahlen mit einem Wort wiedergeben

    in Microsoft Excel Hilfe
    1050 Zahlen mit einem Wort wiedergeben: Hallo zusammen, ich habe eine Liste, wo ich 1050 Artikelnummern mit der Endung -ENTWICKLUNG beschreiben muss in Excel. Nun möchte ich nicht alle 1050 einzeln mit Copy & paste füllen und hatte...
  3. Summieren farbiger Zahlen anhand des Farbcodes ohne VBA

    in Microsoft Excel Hilfe
    Summieren farbiger Zahlen anhand des Farbcodes ohne VBA: Hallo liebes Forum, welche Formel muss ich eingeben, wenn ich farbige Ziffern (z.B. rot = Farbcode 3; grün = 4) addieren möchte. Danke im voraus für die schnelle Antwort Gruß mfkathie
  4. DATEDIF Ergebnis

    in Microsoft Excel Hilfe
    DATEDIF Ergebnis: Hallo, ich bitte um Hilfe bei DATEDIF z. B. =DATEDIF(Anfangsdatum;Enddatum;"Y") ergibt zB. 8 in derZelle. Ich möchte aber, dass in einer Zelle 8 Jahre steht. Was muss hier hinter "Y" noch...
  5. Zählen von Zeichen in Zelle

    in Microsoft Excel Hilfe
    Zählen von Zeichen in Zelle: Hallo, vielleicht kann mir jemand behilflich sein. Ich möchte die Anzahl der Zahlen in Spalte A zählen und dann wie in Spalte B zu sehen, ausgeben. Danke
  6. Zufällige Zahl wiedergeben mit Schaltfläche/ Button

    in Microsoft Excel Hilfe
    Zufällige Zahl wiedergeben mit Schaltfläche/ Button: Hallo zusammen Ich habe in einer Tabelle in den Zellen A1 - A2000 unterschiedliche Zahlen stehen. Nun möchte ich in einem anderen Tabellenblatt einen Button generieren. Wenn man auf diesen...
  7. Zähle Einträge die in einen Uhrzeitbereich liegen

    in Microsoft Excel Hilfe
    Zähle Einträge die in einen Uhrzeitbereich liegen: Hallo zusammen, ich bin in excel absoluter beginner. ich habe mir für die steuerberechnung eine kleine tabelle angefertigt die diverse inhalte berechnet und ich diese zur abgabe an das finanzamt...
  8. Zählen wenn Wert eingelesen wird mit Datum

    in Microsoft Excel Hilfe
    Zählen wenn Wert eingelesen wird mit Datum: Hallo zusammen, ich habe eine Tabelle mit Namen in Spalte A, der zugehörige Code zum Namen steht beispielsweise in Spalte C. Ich habe ein Lesegerät, welches nur den Code ausspuckt und ein Makro,...
  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