| |
 | Online-Kurs: Grundlagen des 3D-Druck-Designs für Industrieingenieure , ein Kurs
|
Autor
|
Thema: Textfelder (651 mal gelesen)
|
sometime Mitglied
 Beiträge: 3 Registriert: 20.11.2007
|
erstellt am: 20. Nov. 2007 11:27 <-- editieren / zitieren --> Unities abgeben:         
Hallo, ich habe eine ganz kurze simple - ich muss zugeben dumme Frage. Ich habe in Excel ein Textfeld erstellt und möchte den eingegebenen Wert automatisch in mein Makro übernehmen, wie mach ich das? Sub Kundennummer() Application.WindowState = xlMinimized With ActiveSheet.QueryTables.Add(Connection:= _ "ODBC;DRIVER={Microsoft ODBC for Oracle};UID=activecell=" & TextBox7_Change() & ";PWD= pw;SERVER=;" ich habe es zwar so versucht (mit TextBox7_Change()) aber funktioniert nicht und ich weiß nicht wie ich da sinnvoll rangehen kann. Danke für eure Hilfe im voraus. Grüße Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
runkelruebe Moderator Straßen- / Tiefbau
       

 Beiträge: 8086 Registriert: 09.03.2006 MS-Office 365 ProPlus x86 WIN7(x64)
|
erstellt am: 20. Nov. 2007 13:04 <-- editieren / zitieren --> Unities abgeben:          Nur für sometime
Wenn ich ehrlich bin, habe ich keine Ahnung, was Du da tust bzw. vorhast. Aber "Ich habe in Excel ein Textfeld erstellt und möchte den eingegebenen Wert automatisch in mein Makro übernehmen" und dann ein " & TextBox7_Change() &" ?? Ich weiß nicht so recht... Das ist das change-Ereignis, nicht der Wert des Textfeldes. Das change-Ereignis dient normal als Bedingung, die den darin festgelegten Code zum Laufen bringt. Bsp: Code: Sub TextBox7_change() MsgBox "Textfeld 7 wurde geändert" End Sub
Würde ich aber nicht empfehlen, da die bei jedem getippten Buchstaben anspringt.Den Wert (Inhalt) des Textfeldes fragst Du mit TextBox7.Value ab. ------------------ Gruß, runkelruebe Herr Kann-ich-nich wohnt in der Will-ich-nich-Straße... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Hajo_Zi Mitglied Projektant
  
 Beiträge: 528 Registriert: 26.03.2003
|
erstellt am: 20. Nov. 2007 13:09 <-- editieren / zitieren --> Unities abgeben:          Nur für sometime
|
sometime Mitglied
 Beiträge: 3 Registriert: 20.11.2007
|
erstellt am: 20. Nov. 2007 13:49 <-- editieren / zitieren --> Unities abgeben:         
Hallo Hajo, er gibt mir leider so nicht den Inhalt der Textbox wieder sondern als Benutzernamen 'TextBox7' aus. Daher war ich auf den Methode change ausgewichen (obwohl die wirklich unsinnig ist, stimmt Nick) es muss eine Möglichkeit geben mit der ich den Inhalt ausgebe und nicht den Begriff Textbox7 bzw. TextBox7.Value erkennt er auch nur als normalen Text an. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Hajo_Zi Mitglied Projektant
  
 Beiträge: 528 Registriert: 26.03.2003 AutoCad 2023 Standard ich arbeite nicht Mechanical Betriebssystem Windows 11
|
erstellt am: 20. Nov. 2007 14:04 <-- editieren / zitieren --> Unities abgeben:          Nur für sometime
Hallo Nick, was bedeutet "TextBox7.Value erkennt er auch nur als normalen Text an" wird der Inhalt schon übergeben? Muss vielleicht nur eine Umwandlungsfunktion eingesetzt werden? (Cdbl) Gruß Hajo [Diese Nachricht wurde von Hajo_Zi am 20. Nov. 2007 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
sometime Mitglied
 Beiträge: 3 Registriert: 20.11.2007
|
erstellt am: 20. Nov. 2007 14:39 <-- editieren / zitieren --> Unities abgeben:         
er gibt mit als Benutzernamen simpel nur 'textbox.value' zurück und es wird trotzdem/auch kein Wert übergeben, leider ein Umwandlungsfunktion? kann sein, aber keine ahnung wie ich sie aufstell - bis jetzt habe leider noch nicht wirklich viel mit vba zutun gehabt gruß Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
runkelruebe Moderator Straßen- / Tiefbau
       

 Beiträge: 8086 Registriert: 09.03.2006 MS-Office 365 ProPlus x86 WIN7(x64)
|
erstellt am: 20. Nov. 2007 15:44 <-- editieren / zitieren --> Unities abgeben:          Nur für sometime
Vorab: mit QueryTables auch noch nix gemacht, aber beim ersten Lesen kommt mir bißchen was ungewöhnlich vor: Code: With ActiveSheet.QueryTables.Add(Connection:= _ "ODBC;DRIVER={Microsoft ODBC for Oracle};UID=activecell=" & TextBox7_Change() & ";PWD= pw;SERVER=;"
ist das denn so die Syntax, wie sie sein sollte? Die Teile: Destination:= und Sql:= sowie das end with fehlen. Vielleicht postest Du mal die ganze Sub? Mal den Versuch gemacht, diesen Teil "ODBC;DRIVER={Microsoft ODBC for Oracle};UID=activecell=" & TextBox7_Change() & ";PWD= pw;SERVER=;" vorab als string zusammenzubasteln und dann diesen string zu übergeben? In meiner F1 wird das übrigens auch vorher gemacht: Code: Dim qt As QueryTable sqlstring = "select 96Sales.totals from 96Sales where profit < 5" connstring = _ "ODBC;DSN=96SalesData;UID=Rep21;PWD=NUyHwYQI;Database=96Sales" With ActiveSheet.QueryTables.Add(Connection:=connstring, _ Destination:=Range("B1"), Sql:=sqlstring) .Refresh End With
------------------ Gruß, runkelruebe Herr Kann-ich-nich wohnt in der Will-ich-nich-Straße... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |