none
String RRS feed

  • Frage

  • Hallo,

    ich habe eine TextBox (Multiline=true und AcceptsReturn=true) auf meinem Form. Ich möchte jetzt den Text den ich in der Textbox schreibe in eine Excel Zelle eintragen. Das klappt auch. Problem ist jetzt nur, dass dem Text noch ein paar zeichen hinzugefügt werden die ich nicht eingegeben habe. z.b. bei einem TAB kommt ein Kästchen

    Beispiel Text in der TextBox

    Viel Glück

    in VB.net

     

    Ende!

     

    Jetzt wird in jeder freien zeile wo ich Return gedrückt habe ein Zeichen eingefügt. Es kommt also kein "sauberer"  Texteintrag in der Excel Zelle an. 

    Weiß jemand eine Lösung? Mit cStr(...) gehen die Zeichen nicht weg.

    Gruß

     

    Sonntag, 7. November 2010 15:43

Antworten

Alle Antworten

  • Also im ersten Moment sieht es für mich so aus, als das der Text den du von einer auf die andere Anwendung kopierst in unterschiedlichen Zeichencodierungen vorliegen. Man müsste jetzt wissen wie du Daten von vb.net zu Excel kopierst, um Dir einen Tip zu geben wo du ansetzen musst.

    Gruß Thomas   

    Mittwoch, 10. November 2010 13:50
  • Excel verwendet einen anderen Zeilenumbruch: In VB.Net ist es CR LF in Excel ist es nur ein CR. Du musst also vor dem Schreiben in die Zelle eventuelle Zeilenumbrüche konvertieren.

    Benutze die Replace()-Funktion:

    myCell.Value = myString.Replace(vbCrLf, vbCr)

    Microsoft MVP Office Access
    https://mvp.support.microsoft.com/profile/Stefan.Hoffmann
    Mittwoch, 10. November 2010 14:00
  • @Stefan

    habe es ausprobiert, aber jetzt schreibt er mir die Einträge immer noch mit anstelle der Tabs Kästchen. Einziger Unterschied ist, in Excel schreibt er es jetzt in eine Zelle hintereinander und nicht mehr untereinander

    Bsp. hallo wie gehts <- schreibt er jetzt mit deinem Tipp in die Zelle

    hallo

    wie

    gehts <- hat er vorher in die Zelle geschrieben

    hier mal mein code:

    'Notiz in Excel eintragen
        Public Sub NotizUebernehmen(ByVal txt_Notiz As System.Windows.Forms.TextBox, _
                                    ByVal txt_Datum As System.Windows.Forms.TextBox)

            Try
                'Programmierung nach dem MVC-Modell
                'View = mein Startmenü mit 2 TextBoxen (Datum und Notiz)
                'Die Methode NotizUebernehmen wird vom Startmenü aus aufgerufen
                'durch Klicken eines Buttons "Notiz eintragen"
                'und beinhaltet die zwei Parameter(die Textboxen) für die
                'Notiz und das Datum. Die Methode NotizUebernehmen steht im Controller
                'setDatum und setNotiz füllen die Attribute in der Klasse Notiz

                Me.MyNotizen.setDatum(txt_Datum.Text)
                Me.MyNotizen.setNotiz(txt_Notiz.Text.Replace(vbCrLf, vbCr))


                'getDatum und getNotiz werden in der Methode NotizInDatenbankEintragen()
                'dann zum eintragen in Excel genutzt
                Me.NotizInDatenbankEintragen()


                'Leert die Textbox txt_Notiz im Startmeü
                Me.TextBoxNotizLeeren(txt_Notiz)


                'Aktualisiert die ListBox im Startmenü die
                'später dann alle Notizen immer auflistet
                'die man schon eingetragen hat und sich
                'später anschauen möchten
                Me.ListBoxNotizverwaltungAktualisieren()


            Catch ex As Exception

            End Try


        End Sub

    Programmiere nach MVC-Modell.

    Meine Aufgabe:

    Notizzettel in Excel verwalten. Eine Notiz soll aus dem aktuelle Datum und und der abgelegten Notiz(sprich dem Text) bestehen. Beim Übernehmen - Button(auf dem Startmenü Form) klicken soll die Notiz mit Inhalt und Datum in einer Excel Tabelle (Spalte A = Eintrag Datum, Spalt B = Eintrag Notiz) abgespeichert werden und das Datum soll in die Listbox im Startmenü übernommen werden. Später kann man sich ältere Notizen durch Doppelklick auf das Datum in der Listbox im Startmenü anzeigen lassen. Für die Notiz zu schreiben öffnet sich ein eigenständiges Form Notiz.

     

    Gruß

     

     

     

     

     

     

     

    Mittwoch, 10. November 2010 16:06
  • habe es ausprobiert, aber jetzt schreibt er mir die Einträge immer noch mit anstelle der Tabs Kästchen.

    Yupp. Statt CR LF brauchst du ein LF. Mein Fehler.

    Also statt

    Me.MyNotizen.setNotiz(txt_Notiz.Text.Replace(vbCrLf, vbCr))

    brauchst du:
       txt_Notiz.Text.Replace(vbCrLf, vbLf)

    und das ganz gehört in die setNotizen()-Methode.


    Microsoft MVP Office Access
    https://mvp.support.microsoft.com/profile/Stefan.Hoffmann
    Mittwoch, 10. November 2010 16:34