Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1608to1612
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
Button zum Füllen von Zellen
13.02.2018 11:09:16
Zellen
Hallo zusammen,
für eine Tabelle benötige ich einen Button, welcher die beiden Zellen NEBEN dem Button füllt (Button öffnet UserForm - Werte in UserForm eintragen - Werte werde in Zellen übertragen).
Wichtig dabei ist, dass der Bezug zwischen dem Button und den beiden Zellen realtiv zueinander sein muss. Hintergrund: es ist möglich, dass die Zeile innerhalb der Tabelle kopiert und irgendwo anders wieder eingefügt wird. Dann soll der relative Bezug natürlich ebenso funktionieren...
Hat jemand eine Idee wie ich den relativen Bezug hinbekomme?
Vielen Dank und viele Grüße
Martin

21
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Button zum Füllen von Zellen
13.02.2018 12:43:25
Zellen
Hallo Martin,
Der Button hat die Eigenschaft "Top". Da ich nicht weiß was für ein Button du benutzt kann ich es nicht genauer angeben.
Aber aus der Eigenschaft "Top" und den Zeilenhöhen kannst du die Zeile des Buttons berechnen.
Das Beispiel geht davon aus, dass dein Button ein Shape ist. Nach dem Kopieren ist es immer das letzte Shape im Blatt.
Oben = ActiveSheet.Shapes.Item(ActiveSheet.Shapes.Count).Top
Zeilensumme = 0
n = 1
While Zeilensumme 
Gruß,
Rainer
AW: Button zum Füllen von Zellen
13.02.2018 12:55:02
Zellen
Hallo Rainer,
so ganz verstehe ich das noch nicht, wenn alle Zeilen die gleich Höhe haben.
Ich hatte an eine einfache "Schaltfläche (Formularsteuerelement)" gedacht...
Viele Grüße
Martin
Anzeige
AW: Button zum Füllen von Zellen
13.02.2018 13:37:56
Zellen
Hallo Martin,
Woher soll ich denn wissen, was du für Zeilenhöhen hast?
Vielleicht ist es aus deinem Code ersichtlich, vielleicht hast du auch einen anderen Weg um schon beim Kopieren zu wissen welche Zeile es ist.
Ich bin kein "VBA-Profi" und ohne Beispieldatei kann ich sowas nicht wissen.
Mein Code-Beispiel funktioniert auch mit Formularsteuerelementen, habe es probiert.
Du musst dir nur noch ein Array anlegen, wo du vermerkst welche Schaltfläche in welcher Zeile ist.
Ich habe jetzt mal ein wenig probiert. Es geht aber nur mit "Shapes", nicht mit Formularelementen.
Der Button zum Kopieren bekommt ein Makro. Diese Zuweisung nimmt er mit beim Kopieren.
Sub Schaltfläche_Klicken()
ButtonText = Application.Caller
End Sub
Aus diesem Text kannst du über die letzten Zeichen (je nach dem wie oft du kopierst sind es 1,2,3 oder mehr) die Button-Nummer ermitteln. Über das zuvor erwähnte Array weißt du dann die Zeilennummer.
Gruß,
Rainer
Anzeige
AW: Button zum Füllen von Zellen
13.02.2018 15:21:57
Zellen
Hallo Martin,
hier nun ein Lösungsvorschlag. Die Buttons müssen Shapes sein. Der Standardname ist "Rechteck 1", beim kopieren zählt Excel das dann hoch.
https://www.herber.de/bbs/user/119770.xlsm
Gruß, Rainer
AW: Button zum Füllen von Zellen
13.02.2018 14:50:23
Zellen
Hallo Werner,
im Prinzip ist das genau was ich suche, aber der relative Bezug ist noch nicht gegeben.
Ich habe in der Datei die Zeile 3 und 4 mal nach unten kopiert. Klickt man dann auf die untere Schaltfläche, werden die Zellen neben der oberen Schaltfläche überschrieben (also ein absoluter Bezug in die Zellen H3 und I3).
https://www.herber.de/bbs/user/119768.xlsm
Viele Grüße
Martin
Anzeige
bei mir nicht. o.w.T.
13.02.2018 15:06:56
Werner
AW: bei mir nicht. o.w.T.
13.02.2018 15:26:17
Rainer
Hallo Werner,
ich habe es auch getestet (Office 2016) und auch bei mir füllt er immer die Zeile neben dem ersten Button.
Wenn ich Zeilen kopiere, dann haben alle neuen Buttons wieder den Namen "Schaltfläche 10".
Gruß,
Rainer
AW: bei mir nicht. o.w.T.
13.02.2018 15:41:09
Werner
Hallo Rainer,
kann dir auch nichts anderes sagen, bei mir, Office 365, geht es.
Zeile 3 auswählen, rechte Maustaste, kopieren, Zeile 25 auswählen, rechte Maustaste, einfügen alles. Beschriftung des Buttons bleibt gleich, wenn ich ihn mit Recht anklicke sehe ich im Auswahlfenster, dass die Button Nummer hochgezählt wurde.
Gruß Werner
AW: bei mir nicht. o.w.T.
13.02.2018 15:58:34
Rainer
Hallo Werner,
ich nehme alles zurück...
Die Mappe von Martin hat das "merkwürdige Benehmen":
https://www.herber.de/bbs/user/119768.xlsm
Deine Mappe funktioniert:
https://www.herber.de/bbs/user/119764.xlsm
Ich habe aber die Änderung nicht finden können. Das kann nur Martin aufklären denke ich.
Gruß,
Rainer
Anzeige
AW: bei mir nicht. o.w.T.
13.02.2018 16:14:57
Werner
Hallo Rainer,
vielleicht liegt es ja an der Excel Version?
Ich habe die Datei von Martin eben ausprobiert. Bei mir das gleiche Verhalten, Zellbezug bleibt bestehen, es wird kein neuer Button angelegt.
Ich habe dann mit Martins Version folgendes gemacht. Button gelöscht und neu angelegt, Makro aaa dem Button zugewiesen. Datei gespeichert und geschlossen. Neu geöffnet - es funktioniert.
Gruß Werner
AW: bei mir nicht. o.w.T.
13.02.2018 16:44:41
Rainer
Hallo Werner,
gute Frage, nächste Frage...
Aber ich habe es auch schon erlebt, dass unter 2010 (Haben wir auf Arbeit noch zum Teil, weil es da noch vereinzelt Windows XP gibt) Excelmappen mit ActiveX-Elementen komplett amok laufen und abstürzen. Mit Shape-Buttons geht es wunderbar. Ansonsten habe ich nichts geändert. Seitdem bevorzuge ich die Shape-Variante für meine Projekte.
Gruß,
Rainer
Anzeige
AW: bei mir nicht. o.w.T.
14.02.2018 09:36:39
Martin
Kurioser Weise funktioniert bei mit auch die Mappe 119764.xlsm nicht, obwohl die Schaltfläche nach dem Kopieren hochgezählt wird.
Auch bei mir funktioniert es nur, wenn ich die Schaltfläche neu anlegen...vielleicht muss ich das Kopieren der Zeile einfach verbieten und stattdessen eine neue Zeile per Makro einfügen. Es scheint ja irgendwie mit Excel zusammen zu hängen :-(
Vielen Dank und viele Grüße
Martin
Grundsätzlich...
14.02.2018 10:42:19
Werner
Hallo Martin,
....würde ich das sowieso nicht über Button erledigen. Wenn die dauernd kopiert werden dann ist dein Blatt irgendwann mit Buttons zugekleistert und du wirst nicht mehr viel Freude beim Arbeiten mit dem Blatt haben.
Warum nutzt du nicht das Doppelklick-Ereignis zum Starten der UserForm?
Gruß Werner
Anzeige
AW: Grundsätzlich...
14.02.2018 11:15:19
Martin
Hallo Werner,
die Button-Lösung ist in der Tat ein Behelfslösung. Ursprünglich wollte ich ein UserForm öffnen nachdem ich eine Zelle geändert habe. Das habe ich mit "Worksheet_SelectionChange" probiert. Dabei gab es aber zwei Probleme:
1) Das UserForm wurde geöffnet sobald ich die Zelle angeklickt habe. Ich möchte aber erst den Inhalt der Zelle ändern und dann auf Basis des Inhaltes ein bestimmtes UserForm (1 bis 8) öffnen.
2) Das Rechenblatt kann mit Hilfe eines anderen Makros individuell aufgebaut werden, d.h. die veränderbar Zelle kann an einer beliebigen Stelle/Zeile in dem Rechenblatt vorkommen. Mittels "Worksheet_SelectionChange" kann ich nur einen absolute Bezug herstellen...daher die ganze Sache mit dem relativen Bezug.
Falls Ihr dazu eine bessere Lösung habt wäre das top...andernfalls ist die aktuelle Behelfslösung dann erstmal ok.
Euch vielen Dank und viele Grüße
Martin
Anzeige
AW: Grundsätzlich...
14.02.2018 11:20:18
Werner
Hallo Karin,
wenn du willst, dass sich die UserForm bei Zelländerung öffnet, dann ist das Selection Change auch das falsche Ereignis, dafür gibt es doch das Change Event des Blattes.
Ansonsten bitte mal eine Beispielmappe mit Beschreibung was du willst.
Gruß Werner
AW: Grundsätzlich...
14.02.2018 11:46:59
Martin
Ja, bei dem "Change Event" müsste ich aber vorab wissen in welchen Zellen die "veränderbare Zelle" ist (absoluter Bezug). Das weis ich aber erst nachdem das Rechenblatt durch das andere Makro aufgebaut wurde.
Die Originaldatei kann ich schlecht schicken...muss gucken, wann ich eine Beispieldatei erstellen kann.
Danke!
Anzeige
AW: Grundsätzlich...
14.02.2018 12:03:07
Martin
Eine weitere kleine Fragen:
Wisst Ihr wie ich nach diesem Befehl zum Übertragen in die Zelle ein .NumberFormat hinzugefügt bekomme?
Range(rngButtonZelle).Offset(0, 1) = Me.TextBox1
Das hier hat leider nicht funktioniert:
    Range(rngButtonZelle).Offset(0, 1).Select
ActiveCell.Value = Me.TextBox1
ActiveCell.HorizontalAlignment = xlCenter
ActiveCell.NumberFormat = "0.000 ""kN"""
Vielen Dank und viele Grüße
Martin
AW: Grundsätzlich...
14.02.2018 12:26:10
Werner
Hallo Martin,
VBA-Profi und dann Select?
so:
rngButtonZelle.Offset(0, 1) = Me.TextBox1
rngButtonZelle.Offset(0, 1).HorizontalAlignment = xlCenter
rngButtonZelle.Offset(0, 1).NumberFormat = "0.000 ""kN"""
oder so:
With rngButtonZelle.Offset(0, 1)
.Value = Me.TextBox1
.HorizontalAlignment = xlCenter
.NumberFormat = "0.000 ""kN"""
End With
Gruß Werner
Anzeige
AW: Grundsätzlich...
14.02.2018 12:54:10
Martin
Pure Verzweifelung :-) Aber das "Profi" ist auch versehentlich reingerutscht (eher "gut").
Leider bekomme ich mit "rngButtonZelle.Offset..." ein Fehler beim Kompilieren.
Mit "Range(rngButtonZelle).Offset..." ist der weg, aber das NumberFormat wird nicht ausgeführt.
AW: Grundsätzlich...
14.02.2018 13:14:55
Martin
Es lag an der Formatierung. So funktioniert es:
    With Range(rngButtonZelle).Offset(0, 1)
.Value = CDbl(Me.TextBox1)
.HorizontalAlignment = xlCenter
.NumberFormat = "0.000 ""kN"""
End With

118 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige