Office: (Office 2007) VBA Textbox und Namen definieren/ auf andere Mappe beziehen

Helfe beim Thema VBA Textbox und Namen definieren/ auf andere Mappe beziehen in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Guten Tag, ich spiele seit zwei Tagen zum ersten mal mit VBA rum. Ein bisschen Erfahrung habe ich damit aus Delphi(Pascal). Nun habe ich aber die... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von kabumdada, 26. März 2015.

  1. kabumdada Erfahrener User

    VBA Textbox und Namen definieren/ auf andere Mappe beziehen


    Guten Tag,
    ich spiele seit zwei Tagen zum ersten mal mit VBA rum. Ein bisschen Erfahrung habe ich damit aus Delphi(Pascal).
    Nun habe ich aber die folgenden Probleme:

    1. ist es möglich den Wert einer Textbox als Namen zu definieren und als Bereich den Inhalt von zwei weiteren Textboxen?
    Meine bisherige Programmierung sieht so aus:

    Range("P" & Cells(Rows.Count, "P").End(xlUp).Row + 1) = TextBox1.Text 'Werte eintragen in die Tabelle
    Range("P" & Cells(Rows.Count, "P").End(xlUp).Row + 1) = TextBox1.Text
    Range("G" & Cells(Rows.Count, "G").End(xlUp).Row + 1) = TextBox1.Text
    Range("S" & Cells(Rows.Count, "S").End(xlUp).Row + 1) = TextBox2.Text
    Range("S" & Cells(Rows.Count, "S").End(xlUp).Row + 1) = TextBox3.Text
    Range("U" & Cells(Rows.Count, "U").End(xlUp).Row + 1) = TextBox4.Text
    Range("U" & Cells(Rows.Count, "U").End(xlUp).Row + 1) = TextBox5.Text

    ActiveWorkbook.Names.Add Name:=TextBox1.Value, RefersToR1C1:=TextBox2.Value & ";" & TextBox3.Value 'Namen definieren

    Wäre es irgendwie möglich das sich das bezieht sich auf nicht die namen sind sondern die Bereiche wo die Textboxinhalte reingeschrieben wurden?


    2. Ich habe probiert mich mit folgender Programmierung auf eine andere Mappe zu beziehen.

    Range("P" & Cells(Rows.Count, "P").End(xlUp).Row + 1) = TextBox1.Text 'Werte eintragen in die Tabelle
    Range("P" & Cells(Rows.Count, "P").End(xlUp).Row + 1) = TextBox1.Text
    Range("G" & Cells(Rows.Count, "G").End(xlUp).Row + 1) = TextBox1.Text

    Dies habe ich durch folgende Veränderungen probiert :

    Sheets("Tabelle2").Range("P" & Cells(Rows.Count, "P").End(xlUp).Row + 1) = TextBox1.Text
    WorkSheets("Tabelle2"). Range("P" & Cells(Rows.Count, "P").End(xlUp).Row + 1) = TextBox1.Text

    Theoretisch hat es auch funktioniert, nur das es nicht an die nächste freie Stelle (die bei 20 liegen würde) sondern auf die Zelle P164 schreibt. Beim nächsten aufruf schreibt er dann auch nicht in P165 sondern überschreibt P164.

    Ich bin für jede Hilfe Dankbar und Bedank mich schonmal im Voraus :)
    (Tut mir leid das ich keine Datei anhänge aber diese ist leider viel zu groß)

    Grüße und schönen Morgen noch
     
    Zuletzt bearbeitet: 26. März 2015
    kabumdada, 26. März 2015
    #1
  2. kabumdada Erfahrener User
    Also 1. habe ich mitlerweile komplett gelöst.

    Nur 2. hab ich des Problem immernoch. Eigentlich funktioniert alles einwandfrei. Nur sobald ich einen Button in einer anderen Tabelle einfüge um die Oberfläche zu öffnen dann schreibts mir die Daten nicht da rein wo sie hin sollen. Kann mir jemand helfen? Bzw hat jemand den ansatz einer Idee wie ich es Lösen könnte?

    Vielen Dank

    Grüße
    Kabumdada
     
    kabumdada, 26. März 2015
    #2
  3. miriki Erfahrener User
    Moinsens!

    Hm, ok... Ich würd in dem Fall mal das Problem "von hinten" angehen. Grundsätzlich willst Du:
    Code:
    workbooks(b).[COLOR=#3E3E3E]worksheets(s).cells(y,x).value = t[/COLOR]

    (Du schriebst ja "andere Mappe"... Ansonsten entfällt der erste Teil mit dem "workbooks(wb).")

    Einige Sachen sind ja bereits klar:
    Code:
    b = "???" ' workbook.name
    s = "tabelle2"
    x = 16 ' spalte "p"
    t = textbox1.text
    Kennst Du den Namen des workbooks? Oder benutzt Du "ActiveWorkbook" bzw. "ThisWorkbook"?

    Wie auch immer, um die weitere Syntax etwas zu verschlanken und dadurch vor allem übersichtlicher zu machen, empfehle ich das Setzen von Objekt-Variablen, die WorkBook und WorkSheet aufnehmen:
    Code:
    set wb = thisworkbook ' oder workbooks(wb) oder activeworkbook oder was auch immer
    set ws = wb.worksheets(s)
    Jetzt geht es also "nur" noch um y, also die Zeile, in die der Wert rein soll.
    Code:
    y = ws.cells(ws.rows.count,x).end(xlup).row + 1
    Und auf dieser Zeile könntest Du jetzt prima einen Breakpoint setzen und Dir über die Watches den Wert von y anzeigen lassen. Wenn da immer 164 rauskommt, hilft vielleicht noch davor:
    Code:
    wb.activate
    ws.activate
    ws.cells(y,x).activate
    Dann siehst Du auch, wo der Cursor steht und wunderst Dich vielleicht, daß er auf einem ganz anderen Blatt als erwartet positioniert ist.

    Code:
    [COLOR=#3E3E3E]b = "[/COLOR][COLOR=#ff0000]???[/COLOR][COLOR=#3E3E3E]"[/COLOR]
    [COLOR=#3E3E3E]set wb = workbooks(b)[/COLOR]
    [COLOR=#3E3E3E]s = "tabelle2"[/COLOR]
    [COLOR=#3E3E3E]set ws = wb.worksheets(s)[/COLOR]
    [COLOR=#3E3E3E]
    t = textbox1.text[/COLOR]
    [COLOR=#3E3E3E]x = 16[/COLOR]
    [COLOR=#3E3E3E]y = ws.cells(ws.rows.count,x).end(xlup).row + 1
    [/COLOR][COLOR=#3E3E3E]
    [/COLOR][COLOR=#3E3E3E]wb.activate[/COLOR]
    [COLOR=#3E3E3E]ws.activate[/COLOR]
    [COLOR=#3E3E3E]ws.cells(y,x).activate
    [/COLOR][COLOR=#3E3E3E]
    [/COLOR]workbooks(b).[COLOR=#3E3E3E]worksheets(s).cells(y,x).value = t[/COLOR]

    Gruß, Michael

     
    miriki, 27. März 2015
    #3
Thema:

VBA Textbox und Namen definieren/ auf andere Mappe beziehen

Die Seite wird geladen...
  1. VBA Textbox und Namen definieren/ auf andere Mappe beziehen - Similar Threads - VBA Textbox Namen

  2. VBA Kopieren von Zelleninhalte in Textbox

    in Microsoft Excel Hilfe
    VBA Kopieren von Zelleninhalte in Textbox: Hallo zusammen, ich habe diesen VBA Code aus diesen Forum genommen und hätte ein paar Fragen dazu. Der Code wurde von Beverly zur verfügung gestellt. Private Sub...
  3. VBA Textbox macht was sie will

    in Microsoft Excel Hilfe
    VBA Textbox macht was sie will: Hallo, ich bin ein Neuling bei VBA auch Excel habe ich bisher nie so intensiv benutzt wie in den letzten Wochen. Ich sitze jetzt schon länger vor einem Problem, welches ich weder mit Hilfe des...
  4. Excel VBA - ListBox mit TextBox Filtern

    in Microsoft Excel Hilfe
    Excel VBA - ListBox mit TextBox Filtern: Grüße! Bin sonst stiller Mitleser und kann im Regelfall meine Probleme durch andere Forenbeiträge ableiten und passend abändern, aber hier bin ich an einem Punkt, wo meine VBA-Kenntnisse auf ihre...
  5. Excel VBA Userform Textbox Inhalt variabel

    in Microsoft Excel Hilfe
    Excel VBA Userform Textbox Inhalt variabel: Ich habe ein kleines Userform, dass mit mit folgendem Code in TextBox1 den Inhalt von Zelle D3, und in Textbox2 den Inhalt von Zelle E3 anzeigt. If [B3] = "X" Then UserForm1.CheckBox1.Value =...
  6. userform textbox mit vba belegen

    in Microsoft Excel Hilfe
    userform textbox mit vba belegen: Hallo Gemeinde. Ich habe eine Tabelle mit Verbrauchsmaterialien. In dieser habe ich eine Useroform mit zwei Eingabefeldern erstellt. Beim Klicken auf die Schaltfläche 7 erscheint die...
  7. Excel VBA :: Klassenmodul für Textboxen :: Teil 2 :: Selektion Text

    in Microsoft Excel Hilfe
    Excel VBA :: Klassenmodul für Textboxen :: Teil 2 :: Selektion Text: Bisher erfolgreich mit Hilfe von Beverly/Karin implementiert: Klassenmodul für Textboxen Eigene Routinen für unterschiedliche Textboxen im Formular Sperren von gewissen Zeichen in...
  8. Excel VBA :: Klassenmodul für Textboxen :: Unterschiedliche Operationen je Textbox

    in Microsoft Excel Hilfe
    Excel VBA :: Klassenmodul für Textboxen :: Unterschiedliche Operationen je Textbox: Ich habe ein Formular mit mehr als 20 Textboxen, in die abhängig von der Textbox unterschiedliche Daten eingegeben werden sollen. In einige sollen numerische Daten, in andere Buchstaben (d.h....
  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