Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1816to1820
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
Inhaltsverzeichnis

VBA Copy/Paste/Delete Shapes

VBA Copy/Paste/Delete Shapes
02.03.2021 15:40:40
Dome
Hi,
Siehe Beispieldatei: (Spielkarten, welche auf dem Spieltisch platziert werden sollen)
Wie kann man mit Klick auf ein Shape eine Kopie davon an einem anderen Ort platzieren (und wieder entfernen)?
Herzlichen Dank für Eure Ideen.
https://www.herber.de/bbs/user/144382.xlsx
Beste Grüsse
Dome

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Copy/Paste/Delete Shapes
02.03.2021 15:58:36
Daniel
Hi
wann soll den eine Karte vom Spieltisch entfernt werden?
wenn du auf die Karte auf dem Spieltisch klickst oder wenn du auf die gleiche Karte im Stock klickst?
Gruß Daniel

AW: VBA Copy/Paste/Delete Shapes
02.03.2021 16:02:38
Dome
Hi Daniel,
Das spielt eigentlich keine Rolle.
Vermutlich ist es Code-technisch allerdings einfacher wenn der Click_Event auf der Stock-Karte wieder rückgängig gemacht wird.
Damit man die Karte nicht im Stock suchen muss, wäre aber ein Klick auf die Tisch-Karte sexier.
Beste Grüsse
Dome

AW: VBA Copy/Paste/Delete Shapes
02.03.2021 16:42:07
Daniel
nö, ist anders rum.
angeklickte Karte löschen ist einfacher.
ich brauche ja nur prüfen, ob sich die angelickte Karte links oder rechts der Spalte L befindet.
ist sie links davon, kopiere ich sie auf den Tisch, ist sie rechts davon, wird sie gelöscht.
im Prinzip reicht dieses Makro, dass du allen karten auf dem Stock über das Kontextmenü zuweist:
Public Zähler As Long
Sub Klicken()
Dim K As Shape
Set K = ActiveSheet.Shapes(Application.Caller)
Debug.Print K.Name
If K.TopLeftCell.Column > 13 Then
K.Delete
Else
K.Copy
ActiveSheet.Paste
With Selection
.Top = 190
.Left = 1059 + Zähler * 60
Zähler = Zähler + 1
End With
End If
End Sub
das funktioniert hervorragend bei EinzelShapes (also wenn du als Karten eine einfaches Textfeld mit Symbol und Wert als Zeichen des gleichen Textes verwendest) bei deinen aus mehren Shapes zusammengesetzten Karten wird bei Klick nur das einzelne Shape angezogen und nicht die ganze Gruppe.
Wie man jetzt vom Einzelshape auf die gesamte Gruppe schließt, weiß ich grad nicht.
Gruß Daniel

Anzeige
AW: VBA Copy/Paste/Delete Shapes
02.03.2021 17:00:59
Dome
Hi Daniel,
Das sieht ja schon mal nicht schlecht aus. Coole Sache!
Lassen wir das Thema gruppierte Shapes mal beiseite..
Jetzt wäre es natürlich toll wenn die Karten bei der korrekten Position eingefügt würden. Ist es nicht möglich, dass man die kopierten Stock-Karten auf die Tisch-Shapes "drüberkopiert"? (in der Art copy/select/paste)
LG
Dome

AW: VBA Copy/Paste/Delete Shapes
02.03.2021 17:05:26
Daniel
du kannst statt der fixen Positionen auch die Positionen von bekannten Shapes auslesen, z.B. von deinen Stock-Rahmen:
Selection.Top = activeSheet.Shapes("wie immer das Shape heißt").Top
Selection.Left = activeSheet.Shapes("wie immer das Shape heißt").left
Gruß Daniel

Anzeige
AW: VBA Copy/Paste/Delete Shapes
02.03.2021 17:32:06
Dome
Hi,
Preisfrage: Sagen wir alle Positionen auf dem Tisch sind durch Karten besetzt, sowohl die Hand-, als auch die Boardkarten. Wenn ich nun die Hand-Karten anpassen möchte und z.B. die zweite Karte durch eine andere ersetzen möchte entsteht eine Lücke auf dem Tisch. Wie kann man nun immer die "erste freie Position" mit einer neuen Karte belegen?
Anders formuliert: Die Positionen sind durchnummeriert von 1-7 und ich möchte Position 2 ändern.
LG
Dome

AW: VBA Copy/Paste/Delete Shapes
02.03.2021 17:41:06
Daniel
wird mit Shapes schwierig.
da müsstest du dir in Variablen oder einem Array merken, welche AblageFelder frei sind und welche belegt sind.
also ziemlich aufwendig zu programmieren.
ich glaube, dass das mit Text in Zellen einfacher zu realisiern ist als mit Shapes.
wie man die Karten als Text darstellen kann, habe ich dir gezeigt.
Gruß Daniel

Anzeige
AW: VBA Copy/Paste/Delete Shapes
02.03.2021 16:58:02
Daniel
du kannst dir auch die Karten in einer Zelle oder Textfeld als normalen Text anzeigen lassen.
das geht über den entsprechenden unicode-Zeichensatz.
https://de.wikipedia.org/wiki/Unicodeblock_Spielkarten
in Excel über die Funktion:
=UNIZEICHEN(127136)

damit könntest du die Spielkarten als One-Piece-Shape erstellen, was das kopieren und einfügen leichter macht weil du keine Gruppen brauchst.
oder du könntest komplett auf Grafik verzichten und das ganze über Text in Zellen abbilden, was das ganze noch einfacher macht.
gruß Daniel

Anzeige
AW: VBA Copy/Paste/Delete Shapes
02.03.2021 17:02:04
Dome
Hi,
Das schaue ich mir heute Abend mal an, vielen Dank für die Tipps!
LG
Dome

AW: VBA Copy/Paste/Delete Shapes
02.03.2021 19:36:24
Daniel
Kleines Beispiel auf die Schnelle erstellt.
Doppelklick auf die Karten verschiebt diese aufs Spieldeck.
nochmaliger Doppelklick löscht die die Karte im Spieldeck, dabei kann man die Karte im Spieldeck oder im Stock anklicken.
um die Karten im Spiel anders anzuordnen, kann man mit gedrückter STRG-Taste 2 Karten anklicken, dann werden sie getauscht.
https://www.herber.de/bbs/user/144391.xlsm
Gruß Daniel

305 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige