Textbox per VBA erstellen

  • Excel

Es gibt 14 Antworten in diesem Thema. Der letzte Beitrag () ist von fredhead.

    Textbox per VBA erstellen

    Hallo zusammen,

    ich möchte, dass in meiner Tabelle bei einem Klick auf "Neuer Eintrag" unter dem letzten Eintrag ein neuer erzeugt wird. Habe es selber probiert doch leider wird die Scrollbare Textbox nicht mitkopiert. Als Quelle habe ich den einzugügenden Bereich in "Tabelle 3" hinterlegt. Ich will also den Inhalt in "Tabelle 3" A13:F22 in den Reiter "Protokoll" kopieren und zwar unter den letzten Eintrag inklusive Textbox. Hat jemdan eine Idee?

    Hier die Tabelle:

    drive.google.com/open?id=0BylHiP33Rk41UFFEckZIMEEweEk

    Gruß Freddy
    Hey,

    hinter deiner bestehenden Textbox muss ja schon ein Code stehen. Könntest du diesen hier auch einstellen?
    Dann kann man dir bestimmt schonmal einen Schritt folgen, vielleicht hast du auch nur einen minimalen Fehler gemacht und dann muss hier keiner einen komplett neuen Code entwerfen.

    LG Kathleen
    "Der Visual Basic ist nur so schlau wie der, der davor sitzt" - Na schön! Dann steh ich eben auf!

    "Wenn du denkst es geht nicht mehr kommt irgendwo ein Lichtlein her"
    If Tunnel.Licht = JemandImTunnelDerVerzweifeltIst Then Licht.Aus = True

    fredhead schrieb:

    Ich will also den Inhalt in "Tabelle 3" A13:F22 in den Reiter "Protokoll" kopieren und zwar unter den letzten Eintrag inklusive Textbox.


    Visual Basic-Quellcode

    1. ​Sub InsertAtEnd()
    2. Dim r As Long
    3. r = Cells(Rows.Count, 1).End(xlUp).Row + 1
    4. Range(r & ":" & r + 9).Insert Shift:=xlDown
    5. Sheets("Tabelle3").Range("A13:F22").Copy Cells(r, 1)
    6. End Sub
    Der Code gehört dann in den Codebereich von Protokoll
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --
    Hi,

    danke für den Vorschlag aber das Ergebniss ist das gleiche wie von meinem Makro. Die Textbox wird leider nicht mit kopiert. Hier noch der Code von meinem Makro:

    Visual Basic-Quellcode

    1. Sub NeuerEintrag()
    2. Worksheets("Tabelle3").Range("A13:F22").Copy
    3. Worksheets("Protokoll").Cells(Worksheets("Protokoll").Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlAll
    4. Application.CutCopyMode = False
    5. End Sub

    Dann definiere die Text box doch über den Code und übergib über den Aufruf der Sub wo du sie haben möchtest und deren Bereich den sie aufnehmen soll.
    "Der Visual Basic ist nur so schlau wie der, der davor sitzt" - Na schön! Dann steh ich eben auf!

    "Wenn du denkst es geht nicht mehr kommt irgendwo ein Lichtlein her"
    If Tunnel.Licht = JemandImTunnelDerVerzweifeltIst Then Licht.Aus = True
    es gibt mehrere Möglichkeiten. Entweder du erzeugst sie von grund auf mit vba oder aber du definierst sie in dem inizializise ereignis so dass sie alle parameter beinhaltet, wie größe oder items. Ich habe das noch nicht anwenden müssen aber schau mal in der VBA Hilfe. Da kommst du wie folgt hin: Code öffnen > F1-Taste drücken und hoffentlich das Internet vorher nicht deinstalliert ;)
    "Der Visual Basic ist nur so schlau wie der, der davor sitzt" - Na schön! Dann steh ich eben auf!

    "Wenn du denkst es geht nicht mehr kommt irgendwo ein Lichtlein her"
    If Tunnel.Licht = JemandImTunnelDerVerzweifeltIst Then Licht.Aus = True
    Hallo,

    petaods Code um die Textbox erweitert.

    Du hast übrigens 2 Textboxe in Tabelle3...

    Visual Basic-Quellcode

    1. Sub InsertAtEnd()
    2. Dim r As Long
    3. r = Cells(Rows.Count, 1).End(xlUp).Row + 1
    4. Range(r & ":" & r + 9).Insert Shift:=xlDown
    5. Sheets("Tabelle3").Range("A13:F22").Copy Cells(r, 1)
    6. Sheets("Tabelle3").Shapes("TextBox1").Copy
    7. Paste Cells(r + 1, 4)
    8. End Sub
    Gruß
    Peterfido

    Keine Unterstützung per PN!
    @peterfido: ich habe grade mal mithilfe der VBA eigenen Hilfe versucht deine 3. und 4. Zeile zu verstehen, aber das ist mir leider nicht gelungen...
    .End.Row+1 und .insert Shift:=xlDown verstehe ich nicht ganz. Ich schätze mal, dass du damit die größe oder so veränderst, aber ich würde es gerne richtig verstehen :D
    "Der Visual Basic ist nur so schlau wie der, der davor sitzt" - Na schön! Dann steh ich eben auf!

    "Wenn du denkst es geht nicht mehr kommt irgendwo ein Lichtlein her"
    If Tunnel.Licht = JemandImTunnelDerVerzweifeltIst Then Licht.Aus = True
    Hallo,

    das ist der Teil von Petaod. Da werden Zellen eingefügt und die vorhandenen nach unten geschoben. .End.Row ist die letzt genutzte Zeile. die nächste freie Zeile ist dann +1
    Gruß
    Peterfido

    Keine Unterstützung per PN!
    ah, cool, wusste nicht dass das auch so kurz geht... aber wenn in der Liste zwischen drin Felder frei sind ignoriert er das oder?
    "Der Visual Basic ist nur so schlau wie der, der davor sitzt" - Na schön! Dann steh ich eben auf!

    "Wenn du denkst es geht nicht mehr kommt irgendwo ein Lichtlein her"
    If Tunnel.Licht = JemandImTunnelDerVerzweifeltIst Then Licht.Aus = True
    Hallo,

    petaod schrieb:

    Der Code gehört dann in den Codebereich von Protokoll


    dann das Makro vom Button aufrufen lassen. Funktioniert bei mir mit Excel 2016 ohne Fehler. Habe das Teil mal angehängt.
    Dateien
    Gruß
    Peterfido

    Keine Unterstützung per PN!