=Tabelle
#11
eine Frage hätte ich noch zum Thema VBA:

wie müsste das aussehen wenn ich eine Formel in VBA definieren will.
=Set1.Sheets("Set").Range("A4:E6").Copy
=Set2.Sheets("Set").Range("A12:E14").Copy usw. ?

Vorab schon vielen Dank für eure Hinweise.

EDIT:

der Anfangsbereich für die Sets (A4 und A12) passen. Jedoch wäre es super wenn das Makro den letzten Eintrag (dieser kann also variabel sein), als Endpunkt nimmt.

Wenn das geht.... Puh, dann wäre das ein Traum :05:
Top
#12
Glaube das war nicht wirklich klar in der Formulierung gestern..

ich würde gerne mittels VBA eine eigene Formel definieren: 

Set1 = Set1.Sheets("Set").Range("A4:E6").Copy
Set2 = Set2.Sheets("Set").Range("A12:E14").Copy

Ziel ist es also das wenn ich =Set1 in meiner Arbeitsmappe eingebe, mir der im Makro definierte Bereich wieder gegeben wird.
Da sich dieser Bereich teilweise um ein bis zwei Zeilen erweitern kann (sprich im Set1 eben von A4:E7 oder E8 gehen könnte) wäre es super wenn man das auch i wie berücksichtigen könnte.

Mich würde erstmal interessieren, ob das denn überhaupt möglich ist :17:


Beste Grüße
Leo
Top
#13
Hallo Leo,

folgender Code kommt in das schon vorhandene VBA-Modul des entsprechenden Tabellenblattes, in welchem diese Eingaben getätigt werden sollen:

Private Sub Worksheet_Change(ByVal Target As Range)
 Select Case Target.Cells(1).Formula
   Case "=Test1"
     On Error Resume Next
     Application.EnableEvents = False
     With Sheets("Set").Range("A4:E6")
       Target.Resize(.Rows.Count, .Columns.Count).Value = .Value
     End With
     Application.EnableEvents = True
     On Error GoTo 0
   Case "=Test2"
     On Error Resume Next
     Application.EnableEvents = False
     With Sheets("Set").Range("A12:E14")
       Target.Resize(.Rows.Count, .Columns.Count).Value = .Value
     End With
     Application.EnableEvents = True
     On Error GoTo 0
 End Select
End Sub


VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 14 - mit VBAHTML 12.6.0


Da Set1 und Set2 Zelladressen sind, würdest Du nur den jeweiligen Wert der entsprechenden Zelle erhalten. Deshalb hab ich mal Test1 und Test2 genommen.

Gruß Uwe
[-] Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:
  • Leonhard
Top
#14
Herzlichen Dank für den Code.
Ich schäme mich.. aber egal wo ich den Code einfüge, ich kann nirgends =Test1 eingeben und bekomme den gewollten Output
Top
#15
Hallo,

in Deiner Beispieldatei käme es in das VBA-Modul Tabelle1. Die Datei muss dann aber als Makrodatei (.xlsm) gespeichert werden.

Gruß Uwe
Top
#16
Hallo Uwe,

es liegt bestimmt an mir, aber anbei mein Versuch wie von dir beschrieben.

Beste Grüße
Leo


Angehängte Dateien
.xlsm   Set.xlsm (Größe: 17,09 KB / Downloads: 2)
Top
#17
Hallo Leo,

Du hattest es richtig gemacht.
Auf meinem jetzigen Rechner funktioniert es auch nicht.  Huh
Dann denke Dir andere Kürzel ohne Gleichheitszeichen aus.
Im Code sind es jetzt #set1 und #set2:

Private Sub Worksheet_Change(ByVal Target As Range)
 Select Case LCase(Target.Cells(1).Value)
   Case "#set1"
     On Error Resume Next
     Application.EnableEvents = False
     With Sheets("Set").Range("A4:E6")
       Target.Resize(.Rows.Count, .Columns.Count).Value = .Value
     End With
     Application.EnableEvents = True
     On Error GoTo 0
   Case "#set2"
     On Error Resume Next
     Application.EnableEvents = False
     With Sheets("Set").Range("A12:E14")
       Target.Resize(.Rows.Count, .Columns.Count).Value = .Value
     End With
     Application.EnableEvents = True
     On Error GoTo 0
 End Select
End Sub

Code eingefügt mit: Excel Code JeanieGruß Uwe
[-] Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:
  • Leonhard
Top
#18
Hallo Uwe,

jetzt funktioniert es super :18:  Vielen lieben Dank.
Meine Anfrage zwischendurch, ob man die Range auch variabel programmieren kann (also z.B. nicht fest auf E6, sondern bis zum letzten Eintrag in Spalte E), kann man wohl ehr nicht umsetzen nehme ich an?

Falls nicht möglich auch kein Beinbruch. Nochmal vielen Dank für deine Hilfe

Beste Grüße
leo
Top
#19
Hallo Leo,

(11.04.2019, 09:17)Leonhard schrieb: Meine Anfrage zwischendurch, ob man die Range auch variabel programmieren kann (also z.B. nicht fest auf E6, sondern bis zum letzten Eintrag in Spalte E), kann man wohl ehr nicht umsetzen nehme ich an?

das geht schon. Ich habe im Blatt Set die Sets so angeordnet, dass sie komplett von leeren Zellen umgeben sind.
Schau es Dir mal an.


.xlsm   Set_Kuwer.xlsm (Größe: 18,34 KB / Downloads: 1)

Gruß Uwe
[-] Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:
  • Leonhard
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste