Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
908to912
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
908to912
908to912
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

code kopieren

code kopieren
18.09.2007 12:53:00
schnierle
hallo zusammen,
gibt es eine möglichkeit, ein kontrollkästchen mit einem code zu hinterlegen und dann dieses kästchen zu kopieren mit demselben code. also, ich habe ein kontrollkästchen bei dem ich die position des mauszeigers bestimmen lasse. nun würde ich gern dieses kästchen beliebig oft kopieren und alles sollen dasselbe tun wie das originalkästchen, geht so etwas?

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: code kopieren
18.09.2007 13:39:00
Renee
Hi Schnierle,
geht so etwas JA, aber bei VBA nur mit Recorder eher abzuraten.
Einen Ansatz hast du im letzten Thread mit meiner Beispieldatei bekommen. Da reagieren all Kontrollkästchen auf das gleiche Makro!
GreetZ Renee

AW: code kopieren
18.09.2007 14:14:00
schnierle
hallo renee,
danke für die schnelle antwort. stimmt, bei deinem beispiel funktioniert das mit allen kontrollkästchen.
könntest du mir erklären was du genau im unteren code machst damit ich meinen code anpassen kann? mit freundlichem gruß

Sub KlickediKlack()
Static dPosLeft1 As Double
If Not bAktiv Then Exit Sub
ActiveSheet.Shapes(Application.Caller).Select
If dPosTop1 = 0 Then
dPosTop1 = Selection.Top + Selection.Height / 2
dPosLeft1 = Selection.Left + Selection.Width / 2
Else
With ActiveSheet.Shapes.AddLine(dPosLeft1, dPosTop1, _
Selection.Left + Selection.Width / 2, _
Selection.Top + Selection.Height / 2).Line
.ForeColor.SchemeColor = 6
End With
dPosTop1 = 0
End If
If Selection.Value = xlOn Then
Selection.Value = xlOff
Else
Selection.Value = xlOn
End If
ActiveCell.Activate
End Sub


Anzeige
AW: code kopieren
18.09.2007 14:21:00
Renee
Hi Schnierle,
Im Code werden abwechslungsweise, die Mittelpunkte von 2 Kontrollkästchen bestimmt. Beim Klicken des 2ten wird ein Linie von dessen Mittelpunkt zum Mittelpunkt des ersten gezogen.
Der Name des Kontrollkästchen ist der Rückgabewert der Funktion Application.Caller.
GreetZ Renee

AW: code kopieren
18.09.2007 14:21:00
schnierle
hallo renee,
danke für die schnelle antwort. stimmt, bei deinem beispiel funktioniert das mit allen kontrollkästchen.
könntest du mir erklären was du genau im unteren code machst damit ich meinen code anpassen kann? mit freundlichem gruß

Sub KlickediKlack()
Static dPosLeft1 As Double
If Not bAktiv Then Exit Sub
ActiveSheet.Shapes(Application.Caller).Select
If dPosTop1 = 0 Then
dPosTop1 = Selection.Top + Selection.Height / 2
dPosLeft1 = Selection.Left + Selection.Width / 2
Else
With ActiveSheet.Shapes.AddLine(dPosLeft1, dPosTop1, _
Selection.Left + Selection.Width / 2, _
Selection.Top + Selection.Height / 2).Line
.ForeColor.SchemeColor = 6
End With
dPosTop1 = 0
End If
If Selection.Value = xlOn Then
Selection.Value = xlOff
Else
Selection.Value = xlOn
End If
ActiveCell.Activate
End Sub


Anzeige
AW: code kopieren
18.09.2007 14:55:27
Renee
Hoi Schnierle,
könntest du mir erklären was du genau im unteren code machst
Abwechslungsweise wird der Mittelpunkt von geklickten Kontrollkästchen berechnet. Wird das 2te Kontrollelemente gedrückt, zieht das Programm eine rote Linie von Mittelpunkt dieses Elements zum Mittelpunkt des ersten. Dann beginnt das Spiel von vorn.
Der untere Teil des Codes, wird nur dazu gebraucht, den Zustand des Kästchens gleich zu lassen wie vor dem Klicken.
Der Name des Kontrollkästchen ist durch die Funktion Application.Caller bestimmt!
GreetZ Renee

AW: code kopieren
18.09.2007 15:36:00
schnierle
kann es sein, dass der application.caller-befehl nicht für gruppierungen gilt? habe nämlich unterschiedlich viele kontrollkästchen mit textfeldern gruppiert und nun bekomme ich bei der zeile
activesheet.shapes(application.caller).select
die Fehlermeldung Laufzeitfehler 13, Typen unverträglich.
Wenn es wirklich nicht geht mit gruppierungen, wie kann ich die gruppierung kurzfristig aufheben, das kontrollkästchen anklicken und dann wieder gruppieren?
freundlichen gruß

Anzeige
AW: code kopieren
18.09.2007 15:46:00
Renee
Hi schnierle.
Ich hab Dir meine Meinung zu diesem Projekt schon klar mitgeteilt.
Du hast in Deiner Datei nicht die gleichen Typen von Kontrollelementen (Steuerelement aus der Toolbox nicht Kontrollkästchen aus dem Formular) wie ich im Beispiel. Mit diesen Elementen wird der Code aufwändiger und ich betrachte das vorgehen nach wie vor als nicht sinnvoll.
GreetZ Renee

AW: code kopieren
19.09.2007 08:40:00
schnierle
hallo renee,
obwohl ich weiss, wie du zu meinem projekt stehst, würde ich dich trotzdem gern nochmal "belästigen". Das mit den Steuerelementen aus der Toolbox klappt jetzt, also ich kann die Kästchen verbinden. Jetzt würde ich das gerne so erweitern, dass ich die Kästchen über connectoren verbinde. Hab dazu mal ein Makro aufgezeichnet mit und dann versucht in deinen code einzufügen.

Sub KlickediKlack()
Static dPosLeft1 As Double
If Not bAktiv Then Exit Sub
ActiveSheet.Shapes(Application.Caller).Select
If dPosTop1 = 0 Then
dPosTop1 = Selection.Top + Selection.Height / 2
dPosLeft1 = Selection.Left + Selection.Width / 2
checkbox1 = Selection.Caption
Else
With ActiveSheet.Shapes.AddConnector(msoConnectorElbow, dPosLeft1, dPosTop1, _
Selection.Left + Selection.Width / 2, _
Selection.Top + Selection.Height / 2).Select
Selection.ShapeRange.Flip msoFlipHorizontal
Selection.ShapeRange.Flip msoFlipVertical
.ForeColor.SchemeColor = 6
Selection.ShapeRange.ConnectorFormat.BeginConnect ActiveSheet.Shapes( _
checkbox1), 1
Selection.ShapeRange.ConnectorFormat.EndConnect ActiveSheet.Shapes( _
Selection.Caption), 2
End With
dPosTop1 = 0
End If
ActiveCell.Activate
End Sub


was mache ich hier falsch?

Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige