Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1368to1372
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

shapes eines Bereiches gruppieren

shapes eines Bereiches gruppieren
02.07.2014 21:05:19
stef26
Guten Abend,
ich bastle (kann leider kaum VBA)gerade an einen kleinen Tool für dies ich folgende
Funktion bräuchte:
Ich wähle mit der Maus einen Bereich aus.
Mit dem Macro sollen alle shapes (eingeblendete) gruppiert werden.
Habs so probiert, hat leider nicht funktioniert:
Sub GruppierungBereich()
Dim objShp As Shape
Dim rng As Range
On Error GoTo Infotext
Set rng = Selection
For Each objShp In ActiveSheet.Shapes
If objShp.Visible = False Then GoTo überspr
If Not Intersect(objShp.TopLeftCell, rng) Is Nothing Then objShp.Group
überspr:
Next
Set rng = Nothing
GoTo Ende
Infotext:
MsgBox ("Es wurde kein Bereich selektiert!")
Ende:
End Sub

Könnte mir jemand sagen wie ich den code ändern müsste, damit es funktioniert ?
:-)
Stefan

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: shapes eines Bereiches gruppieren
03.07.2014 00:43:15
Mullit
Hallo,
vielleicht könnte so etwas funktionieren;
Du müsstest hinterher ggF. die Shapes wieder ungruppieren
und es müssen mindestens 2 Shapes im Selektionsbereich liegen:
' **********************************************************************
' Modul: Tabelle1 Typ: Klassenmodul Tabellenblatt
' **********************************************************************

Option Explicit Private Sub Worksheet_SelectionChange(ByVal Target As Range) If IsArray(Target) Then Call prcGroupShapes End Sub


VBA/HTML - CodeConverter für Office-Foren
AddIn für Excel/Word 2000-2010 - komplett in VBA geschrieben von Lukas Mosimann
Projektbetreuung durch mumpel



Code erstellt und getestet in Office 12

' **********************************************************************
' Modul: Modul1 Typ: Standardmodul
' **********************************************************************

Option Explicit Private Declare Function SafeArrayGetDim Lib "oleaut32.dll" ( _ ByRef pArray() As Any) As Long Public Sub prcGroupShapes() Dim objShape As Shape Dim objCell As Range Dim avntShpNames() As Variant Dim ialngIndex As Long For Each objShape In ActiveSheet.Shapes With objShape If .Visible Then For Each objCell In Selection If Not Intersect(.TopLeftCell, objCell) Is Nothing Then ialngIndex = ialngIndex + 1 Redim Preserve avntShpNames(ialngIndex - 1) As Variant avntShpNames(ialngIndex - 1) = .Name Exit For End If Next End If End With Next If Not CBool(SafeArrayGetDim(avntShpNames)) Then MsgBox "Es wurden keine Shapes selektiert.", vbExclamation Exit Sub ElseIf Ubound(avntShpNames) < 1 Then MsgBox "Mindestens 2 Shapes müssen im Selektionsbereich liegen", vbExclamation Exit Sub End If ActiveSheet.Shapes.Range(avntShpNames).Group End Sub


VBA/HTML - CodeConverter für Office-Foren
AddIn für Excel/Word 2000-2010 - komplett in VBA geschrieben von Lukas Mosimann
Projektbetreuung durch mumpel



Code erstellt und getestet in Office 12

Gruß,

Anzeige
AW: shapes eines Bereiches gruppieren
03.07.2014 06:46:39
Beverly
Hi Stefan,
schreibe die Namen der Shapes zuerst in ein Array, sodass du dann alle zusammen gruppieren kannst
Sub ShapesGruppieren()
Dim shaShape As Shape
Dim lngShape As Long
ReDim arrShapes(0)
For Each shaShape In ActiveSheet.Shapes
If shaShape.Top > Selection.Top And shaShape.Left > Selection.Left And _
(shaShape.Top + shaShape.Height  0 Then ActiveSheet.Shapes.Range(arrShapes()).Group
End Sub


BESTEN DANK
03.07.2014 12:34:13
Stef26
Vielen Dank euch beiden.
Beide Funktionieren einwandfrei.
Vielen Dank für eure Unterstützung
Liebe Grüße
Stefan
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige