tutorials.de Buch-Aktion 05/2012
Like Tree1Danke
  • 1 Beitrag von Yaslaw
ERLEDIGT
JA
ANTWORTEN
10
ZUGRIFFE
780
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    DrMueller DrMueller ist offline Mitglied Brokat
    Registriert seit
    Aug 2006
    Beiträge
    396
    Hallo Leute,
    wir befüllen 'Textmarken' in Excelvorlagen mit folgender Zeile:
    Code :
    1
    
    docProgram.ActiveWorkbook.names(MarkName).Value = MarkValue

    Klappt soweit entsprechend gut, nur gibt es Probleme, wenn z.B. eine internationale Telefonnummer befüllt wird, welche als erstes Zeichen ein '+' enthält.

    Excel interpetiert dies als Operation und gibt die entsprechende Fehlermeldung aus. Die Lösung, die Excel vorschlägt ist, dass man ein ein Hochkomma hinzufügt. Dies sieht jedoch entsprechend unschön aus, wenn in Listen teilweise Hochkommas erscheinen.

    Ich habe etwas gegoogelt, jedoch keine Lösung gefunden, wie man das Names-Objekt anders als mit 'Values' befüllen könnte. Gibt es hier eine Alternative resp. hat jemand so einen ähnlichen Fall bereits gelöst?


    Wie immer danke ich für jede Antwort.

    Müller Matthias
     

  2. #2
    Avatar von tombe
    tombe tombe ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Sep 2004
    Ort
    Möglingen (BaWü)
    Beiträge
    3.109
    Ist gar nicht so einfach da was passendes zu finden.

    Aber du könntest anstatt des Hochkommas vielleicht ein Leerzeichen davor setzen. Das sieht man nicht und wenn alle Werte damit beginnen, sieht es auch von der Ausrichtung ordentlich aus!?
     
    Sollte ein Tipp von mir geholfen haben, habe ich nichts gegen eine entsprechende Bewertung oder ein Danke und wenn ein Problem gelöst ist, dann den Beitrag bitte auch als erledigt markieren.

    Was ich gar nicht leiden kann sind User die es nicht für nötig halten auf Antworten zu reagieren, die Themen nicht als erledigt markieren und/oder die sich nicht für Hilfe bedanken.

  3. #3
    Avatar von Yaslaw
    Yaslaw Yaslaw ist offline n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    über die Zelle (Range) und das NumberFormat auf "@" setzen (=> String)
    Code vb:
    1
    2
    3
    4
    
        With ActiveWorkbook.Names(MarkName).RefersToRange
            .NumberFormat = "@"
            .Value = MarkValue
        End With
    tombe bedankt sich. 
    ---------------------------------------------------------------------------------------------------
    item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
    item: Tutorial: [PHP][MySQL] Debug Queries
    item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
    item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben

  4. #4
    DrMueller DrMueller ist offline Mitglied Brokat
    Registriert seit
    Aug 2006
    Beiträge
    396
    Vielen Dank für die schnellen Antworten. Das Numberformat scheint tatsächlich die Lösung zu sein.
    Da dieses jedoch nur für das NamedRange Objekt gilt und wir mit dem Names arbeiten, kann ich das nicht so einfach nehmen. das 'RefersToRange' verdoppelt und verschiebt alle Werte.
    Im Anhang ist ein Beispiel, wie es derzeit aussieht: Eigentlich sollte nur die Spalte C befüllt werden, denn da sind die Werte drin. Diese erscheinen eben nun auch korrekt mit dem '+', aber B wird auch befüllt.
    Miniaturansicht angehängter Grafiken Miniaturansicht angehängter Grafiken Excel-Name Value befüllen mit + als erstes Zeichen-dokument1.pdf  
     

  5. #5
    Avatar von DrSoong
    DrSoong DrSoong ist offline Iss was, Doc!
    tutorials.de Premium-User
    Registriert seit
    Jul 2003
    Ort
    Dem Zentrum meiner Welt
    Beiträge
    1.836
    Blog-Einträge
    85
    Wie wärs mit
    Code vb:
    1
    
    docProgram.ActiveWorkbook.names(MarkName).Value = "'" & MarkValue
    Das Apostroph ist für Excel das Zeichen, dass ein String folgt, egal welches Format die Zelle hat.


    Der Doc!
     
    A: Hilfe, ich hab zwei Dateien hinzugefügt und nun sind die anderen weg
    B: Die Scrollbar da rechts ist dir schon mal aufgefallen?

  6. #6
    Avatar von tombe
    tombe tombe ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Sep 2004
    Ort
    Möglingen (BaWü)
    Beiträge
    3.109
    @Doc: Matthias oben doch geschrieben das er das schon versucht hat und es ihm nicht gefällt!?


    Auf dieser Seite hier wird einiges dazu erklärt.

    Habe es mit dieser Beschreibung und yaslaws obigem Tipp mal so versucht und es scheint zu klappen:

    Code vb:
    1
    2
    
    Evaluate(ActiveWorkbook.Names("MarkName").Value).NumberFormat = "@"
    Evaluate(ActiveWorkbook.Names("MarkName").Value).Value = MarkValue
     
    Sollte ein Tipp von mir geholfen haben, habe ich nichts gegen eine entsprechende Bewertung oder ein Danke und wenn ein Problem gelöst ist, dann den Beitrag bitte auch als erledigt markieren.

    Was ich gar nicht leiden kann sind User die es nicht für nötig halten auf Antworten zu reagieren, die Themen nicht als erledigt markieren und/oder die sich nicht für Hilfe bedanken.

  7. #7
    Avatar von DrSoong
    DrSoong DrSoong ist offline Iss was, Doc!
    tutorials.de Premium-User
    Registriert seit
    Jul 2003
    Ort
    Dem Zentrum meiner Welt
    Beiträge
    1.836
    Blog-Einträge
    85
    OK, man sollte nicht 3 Sachen auf einmal tun (vor allem wenn Kaffee trinken eine davon ist), hab ich geflissentlich überlesen.


    Der Doc!
     
    A: Hilfe, ich hab zwei Dateien hinzugefügt und nun sind die anderen weg
    B: Die Scrollbar da rechts ist dir schon mal aufgefallen?

  8. #8
    Avatar von tombe
    tombe tombe ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Sep 2004
    Ort
    Möglingen (BaWü)
    Beiträge
    3.109
    Hi Doc,

    für dich war es besser du hast es überlesen als das du den Kaffee verschüttet hast!
     
    Sollte ein Tipp von mir geholfen haben, habe ich nichts gegen eine entsprechende Bewertung oder ein Danke und wenn ein Problem gelöst ist, dann den Beitrag bitte auch als erledigt markieren.

    Was ich gar nicht leiden kann sind User die es nicht für nötig halten auf Antworten zu reagieren, die Themen nicht als erledigt markieren und/oder die sich nicht für Hilfe bedanken.

  9. #9
    DrMueller DrMueller ist offline Mitglied Brokat
    Registriert seit
    Aug 2006
    Beiträge
    396
    Hallo Leute,
    mal wieder vielen vielen Dank für die Antworten.
    Ich muss leider mal wieder meine Unwissenheit, was VBA angeht unter Beweis stellen. Laut Google ist ja Evaluate ein VBA-Command. Wie bekomme ich denn diesen in's VB6?
     

  10. #10
    DrMueller DrMueller ist offline Mitglied Brokat
    Registriert seit
    Aug 2006
    Beiträge
    396
    So genau so reingebastelt, leider scheint die Range immer noch die zwei Felder zu umfassen. In der Excelvorlage ist die B-Spalte komplett leer, weswegen es mich schon etwas erwundert.
    Ich acker mal Tombes VBA-Link durch, vlt. gibt es noch eine andere Möglichkeit.
     

  11. #11
    DrMueller DrMueller ist offline Mitglied Brokat
    Registriert seit
    Aug 2006
    Beiträge
    396
    Ok doch noch geschafft.
    Noch einmal vielen Dank für die direkte Hilfe als auch für den Lerneffekk.
     

Ähnliche Themen

  1. Antworten: 1
    Letzter Beitrag: 14.12.10, 11:57
  2. erstes Zeichen ersetzen
    Von magic_halli im Forum Java
    Antworten: 1
    Letzter Beitrag: 20.09.06, 08:17
  3. nur erstes zeichen einer variablen :-/
    Von fireflyhope im Forum C/C++
    Antworten: 7
    Letzter Beitrag: 10.10.04, 15:11
  4. Erstes Zeichen von String erkennen
    Von Maddinel im Forum C/C++
    Antworten: 3
    Letzter Beitrag: 21.08.03, 10:14
  5. Antworten: 4
    Letzter Beitrag: 26.08.01, 12:14