Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1036to1040
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Text in Textbox markieren
13.01.2009 07:04:00
Thomas
Hallo zusammen,
ich habe ein kleines Problem mit Textboxen.
Ich will eine Textbox erstellen in die ein Text eingetragen wird. Soweit hab ich das auch noch geschafft, allerdings will ich danach diesen Text gerne kopieren, in einem String speichern und im Firefox öffnen.
Probleme macht mir sowohl das kopieren des Texts in der Textbox und dann noch, dass es sich bei dem Text um einen Code handelt, so dass ich diesen irgendwie nicht in einem String speichern kann.
Mein Code sieht bisher wie folgt aus:
Dim tag, monat, jahr, startstunde, startminute, endestunde, endeminute, programm As String
Sheets("Tabelle1").Select
tag = Cells(2, 2).Value
monat = Cells(3, 2).Value
jahr = Cells(4, 2).Value
startstunde = Cells(7, 2).Value
startminute = Cells(8, 2).Value
endestunde = Cells(11, 2).Value
endeminute = Cells(12, 2).Value
endeminute = Cells(14, 2).Value
ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, 380.25, 135#, _
231.75, 167.25).Select
Selection.Characters.Text = _
"javascript: {sForm = document.formular.sStartdateDay;arrVals=arrStartdateDay;if(arrVals[sForm.value*1.0 +iStep]>=0){sForm.value = sForm.value*1.0 + iStep;};document.getElementById('sdivStartdateDay')."
Selection.Characters(201).Insert String:= _
"innerHTML = arrVals[sForm.value] ;aktiv=0;}function changeSelectionStartdateDay(iStep){if(!aktiv) aktiv = setTimeout(""changeSelectionStartdateDayS(""+iStep+"")"",1);}function changeSelectionStartdateM"
Selection.Characters(401).Insert String:= _
"onthS(iStep){sForm = document.formular.sStartdateMonth;arrVals=arrStartdateMonth;if(arrVals[sForm.value*1.0 +iStep]>=0){sForm.value = sForm.value*1.0 + iStep;};document.getElementById('sdivStartdateMo"
Selection.Characters(601).Insert String:= _
"nth').innerHTML = arrVals[sForm.value] ;aktiv=0;}function changeSelectionStartdateMonth(iStep){if(!aktiv) aktiv = setTimeout(""changeSelectionStartdateMonthS(""+iStep+"")"",1);}function changeSelection"
Selection.Characters(801).Insert String:= _
"StartdateYearS(iStep){sForm = document.formular.sStartdateYear;arrVals=arrStartdateYear;if(arrVals[sForm.value*1.0 +iStep]>=0){sForm.value = sForm.value*1.0 + iStep;};document.getElementById('sdivStar"
Selection.Characters(1001).Insert String:= _
"tdateYear').innerHTML = arrVals[sForm.value] ;aktiv=0;}function changeSelectionStartdateYear(iStep){if(!aktiv) aktiv = setTimeout(""changeSelectionStartdateYearS(""+iStep+"")"",1);}function changeSelec"
Selection.Characters(1201).Insert String:= _
"tionStartdateHourS(iStep){sForm = document.formular.sStartdateHour;arrVals=arrStartdateHour;if(arrVals[sForm.value*1.0 +iStep]>=0){sForm.value = sForm.value*1.0 + iStep;};document.getElementById('sdiv"
Selection.Characters(1401).Insert String:= _
"StartdateHour').innerHTML = arrVals[sForm.value] ;aktiv=0;}function changeSelectionStartdateHour(iStep){if(!aktiv) aktiv = setTimeout(""changeSelectionStartdateHourS(""+iStep+"")"",1);}function changeS"
Selection.Characters(1601).Insert String:= _
"electionStartdateMinuteS(iStep){sForm = document.formular.sStartdateMinute;arrVals=arrStartdateMinute;if(arrVals[sForm.value*1.0 +iStep]>=0){sForm.value = sForm.value*1.0 + iStep;};document.getElement"
Selection.Characters(1801).Insert String:= _
"ById('sdivStartdateMinute').innerHTML = arrVals[sForm.value] ;aktiv=0;}function changeSelectionEnddateMinute(iStep){if(!aktiv) aktiv = setTimeout(""changeSelectionEnddateMinuteS(""+iStep+"")"",1);}func"
Selection.Characters(2001).Insert String:= _
"tion changeSelectionEnddateHourS(iStep){sForm = document.formular.sEnddateHour;arrVals=arrEnddateHour;if(arrVals[sForm.value*1.0 +iStep]>=0){sForm.value = sForm.value*1.0 + iStep;};document.getElement"
Selection.Characters(2201).Insert String:= _
"ById('sdivEnddateHour').innerHTML = arrVals[sForm.value] ;aktiv=0;}function changeSelectionEnddateHour(iStep){if(!aktiv) aktiv = setTimeout(""changeSelectionEnddateHourS(""+iStep+"")"",1);}function cha"
Selection.Characters(2401).Insert String:= _
"ngeSelectionEnddateMinuteS(iStep){sForm = document.formular.sEnddateMinute;arrVals=arrEnddateMinute;if(arrVals[sForm.value*1.0 +iStep]>=0){sForm.value = sForm.value*1.0 + iStep;};document.getElementBy"
Selection.Characters(2601).Insert String:= _
"Id('sdivEnddateMinute').innerHTML = arrVals[sForm.value] ;aktiv=0;}function changeSelectionStartdateMinute(iStep){if(!aktiv) aktiv = setTimeout(""changeSelectionStartdateMinuteS(""+iStep+"")"",1);}func"
Selection.Characters(2801).Insert String:= _
"tion changeSelectionTVStationS(iStep){sForm = document.formular.sTVStationf1CC3633C579A90CFDD895E64021E2163;arrVals=arrTVStation;if(arrVals[sForm.value*1.0 +iStep]){sForm.value = sForm.value*1.0 + iSt"
Selection.Characters(3001).Insert String:= _
"ep;};document.getElementById('sdivTVStation').innerHTML = arrVals[sForm.value] ;aktiv=0;}function changeSelectionTVStation(iStep){if(!aktiv) aktiv = setTimeout(""changeSelectionTVStationS(""+iStep+"")"",1"
Selection.Characters(3201).Insert String:= _
"000);}function ResetVals(){document.formular.sStartdateDay.value=" & tag & " ;document.formular.sStartdateMonth.value=" & monat & ";document.formular.sStartdateYear.value=" & jahr & ";document.formular.sStartdateHour.value=" & startstunde & ";docu"
Selection.Characters(3401).Insert String:= _
"ment.formular.sStartdateMinute.value=" & startminute & ";document.formular.sEnddateHour.value=" & endestunde & ";document.formular.sEnddateMinute.value=" & endeminute & ";document.formular.sTVStationf1CC3633C579A90CFDD895E64021E2163.value=" & programm & ";changeSele"
Selection.Characters(3601).Insert String:= _
"ctionStartdateDayS(0);changeSelectionStartdateMonthS(0);changeSelectionStartdateHourS(0);changeSelectionStartdateMinuteS(0);changeSelectionStartdateYearS(0);changeSelectionEnddateHourS(0);changeSelect"
Selection.Characters(3801).Insert String:= _
"ionEnddateMinuteS(0);changeSelectionTVStationS(0);aktiv=0;}"
Dim name As String
name = TextBox.Value 'mir ist bewusst dass es so nicht geht
Shell "C:\Firefox.EXE " & name,
End sub

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Text in Textbox markieren
13.01.2009 09:23:00
Christoph
Hallo Thomas!
Ich hoffe,dir weiterhelfen zu können,so wie ich das sehe,müßte die Sache ganz leicht zu lösen sein...
Ich hab in meinem Programm auch eine Textbox:
Wenn du im Editor deine Userform doppelklickst und das Textfeld anklickst,erscheint unten links ein Fenster "Eigenschaften"
Also immer gerade die Eigenschaften von dem "Werkzeug" welches du auf deiner Userform gerade im Fokus hast.
In der ersten Spalte kannst du deinem Textfeld einen Namen geben: (Name)
Z.B "txtbox"
Wenn du nun mit der rechten Maustaste in der Auswahl links auf deine Userform klickst kommst du zu deinem Code.
Wichtig ist jetzt,daß du deinen Code hier rein schreibst,dann kannst du nämlich den Text in deiner Textbox ganz einfach über den Namen der Textbox abfragen.
Bsp.:
Eine Userform mit einem Textfeld, einem "Zurück" - Button und einem "Senden" - Button
Code:
Option Explicit

Private Sub UserForm_Initialize()
'Nachfolgendes kann man auch in den Eigenschaften der Steuerelemete setzen
cmdback.Default = True ' Auf Default setzen
cmdsend.Default = True ' Auf Default setzen
'cmdEscape.Cancel = True ' bei ESC auslösen
txtbox.TabIndex = 0 (Der Cursor blinkt beim Öffnen der UF im Textfeld)
txtbox = "" (Das Textfeld wird leer gemacht)
End Sub



Private Sub cmdback_Click() 'cmdback ist der Name des "Zurück" - Button
'Hier evt. Befehle eingeben
Me.Hide 'Ausblenden der Userform
End Sub



Private Sub cmdsend_Click() 'cmdsend ist der Name des "Senden" - Button
Dim Name
'Hier muss jetzt dein Code rein!
'Und zwar kannst du dann die Textbox ganz einfach abfragen über ihren Namen.
'Bsp.:
Name = txtbox
'Jetzt hast du den Inhalt der Textbox in der Variablen "Name" deklariert!
'Nun nur noch die Variable "Name" da in deinem Code verbauen,wo der Inhalt der textbox  _
gebraucht wird!
Me.Hide 'Ausblenden der Userform
End Sub


Weißt du wie du den Inhalt einer Variablen im Code als Text wieder ausgeben kannst?
Und ich hoffe,ich konnte dir helfen.
Gruß Christoph

Anzeige
AW: Text in Textbox markieren
13.01.2009 09:30:00
dirk
Hallo!
Damit Du den text in der texbox verwenden kannst musst du erst mal den focus auf die textbox setzen:
TextBox.SetFocus
dann alles markieren
With TextBox
.SelStart = 0
.SelLength = Len(TextBox)
End With
sollte nun mit name=selection.value gehen.
Dirk aus Dubai
AW: Text in Textbox markieren
13.01.2009 09:37:00
Thomas
TextBox.SetFocus klappt irgendwie nicht.
Muss ich Textbox vorher irgendwie definieren?
Weil mit ActiveSheet.Shapes("Text Box 1").SetFocus und mit Textbox(1).SetFocus geht es auch nicht.
AW: Text in Textbox markieren
13.01.2009 11:42:00
dirk
Hallo!
Wo befindet sich die Textbox? Hast Du diese in das Tabellenblatt eingefuegt oder hast Du diese in einer Userform?
Gruss
Dirk aus Dubai
Anzeige
AW: Text in Textbox markieren
13.01.2009 13:21:00
Thomas
Die Textbox ist in einem Tabellenblatt
AW: Text in Textbox markieren
13.01.2009 15:35:05
dirk
Hallo Thomas,
habe mir das nochmal 'reingezogen und hatte da was uebersehen. Du hasst einen String welcher laenger ist als 255 Zeichen. Da schneidet Excel einfach ab.
Um diesen String zu behandeln musst Du folgenden weg gehen:
Dim shtName As String
shtName = Selection.Name
Cells(1, 1).Value = GetTextboxString(Shapes(shtName))
Dieses Kommandos einfuegen um den Text aus der textbox auszulesen und in Zelle A1 zu schreiben
Folgende

Function einfuegen:


Function GetTextboxString(TB As Object) As String
Dim s As String
Dim RetStr As String, retstrNo As Long
Dim i As Integer
'MsgBox Len(TB.TextFrame.Characters.Text)
s = TB.TextFrame.Characters.Text
RetStr = s
i = 255
While Len(s) = 255
s = TB.TextFrame.Characters(i + 1).Text
RetStr = RetStr & s
If Len(s) >= 255 Then
i = i + 255
End If
Wend
retstrNo = Len(RetStr)
GetTextboxString = RetStr
MsgBox Len(GetTextboxString)
End Function


Ich habe das bei Microsoft gefunden und angepasst, da es nicht auf anhieb funktioniert hat (object war falsch referenziert).
http://support.microsoft.com/kb/505226/de
Ich hoffe das hilft Dir weiter.
Gruesse
Dirk aus Dubai

Anzeige
AW: Text in Textbox markieren
15.01.2009 07:45:00
Thomas
Super funktioniert. Vielen Dank.

308 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige