Thema Datum  Von Nutzer Rating
Antwort
24.04.2014 12:40:58 Corina
NotSolved
24.04.2014 17:08:01 Corina
NotSolved
24.04.2014 21:43:02 gabi
NotSolved
25.04.2014 10:21:14 Corina
NotSolved
25.04.2014 13:44:03 Gast25327
*****
Solved
25.04.2014 13:50:37 Gast63045
NotSolved
25.04.2014 16:07:24 Corina
NotSolved
25.04.2014 16:25:04 Corina
NotSolved
25.04.2014 23:00:38 gabi
NotSolved
Blau Aber jetzt .....
26.04.2014 09:50:55 gabi
*****
Solved
27.04.2014 13:20:34 Corina
NotSolved
27.04.2014 18:40:31 gabi
NotSolved
28.04.2014 08:46:31 Corina
NotSolved
Blau Wow
28.04.2014 09:24:53 gabi
NotSolved
Rot Wow
28.04.2014 12:51:17 Corina
NotSolved
Blau Wow
28.04.2014 15:29:14 gabi
NotSolved
Rot Wow
29.04.2014 09:55:11 Corina
NotSolved
29.04.2014 12:15:23 gabi
NotSolved
28.04.2014 13:46:57 Gast40414
NotSolved
28.04.2014 14:29:04 Corina
NotSolved
28.04.2014 15:02:35 Gast13316
NotSolved
28.04.2014 15:06:49 Gast54937
NotSolved
28.04.2014 15:31:48 Corina
NotSolved
28.04.2014 14:37:59 Corina
NotSolved
27.04.2014 12:50:26 Corina
NotSolved

Ansicht des Beitrags:
Von:
gabi
Datum:
26.04.2014 09:50:55
Views:
954
Rating: Antwort:
 Nein
Thema:
Aber jetzt .....

..... Butter an den Fisch ;-)

 

Shapes erzeugen nach Liste

Option Explicit
Rem zeichne fehlende nach Vorgabe in Liste
Rem Mindestanforderung 1 Objekt vom Typ
Sub ZeichneNachListe()
Dim shShapes As Worksheet, shLists As Worksheet
Dim rngList  As Range, rngCell  As Range
Dim objShpe As Shape  'Testobjekte sind vom Typ 5 (msoShapeRoundedRectangle) !!!
Dim sngSTop As Single, sngLeft As Single
   
  'die Tabellenobjekte
  Set shShapes = Sheets("Checklist Structure")
  Set shLists = Sheets("Lists")
  
  'der Listenbereich
  Set rngList = shLists.Cells(Rows.Count, "D").End(xlUp)
  Set rngList = shLists.Range("D3:G" & rngList.Row)
  rngList.Interior.ColorIndex = xlColorIndexNone  'rücksetzen
  
  'im Listenbereich durch die Zellen
  For Each rngCell In rngList
    'prüfe jedes Zeichnungsobjekt in der Tabelle wo
    For Each objShpe In shShapes.Shapes
      If objShpe.TextFrame2.TextRange.Text = rngCell.Value Then _
        rngCell.Interior.ColorIndex = 4 'Grün ist die Farbe der Hoffnung
    Next objShpe
  Next rngCell
  
  'Treffer vertauschen
  For Each rngCell In rngList
    If rngCell.Interior.ColorIndex = xlColorIndexNone And _
      rngCell.Value <> "" Then _
        rngCell.Interior.ColorIndex = 3
  Next rngCell
  
  'jetzt die fehlenden ergänzen
  'unter "richtigem" Einsatz von With.....End With
  With shShapes
    For Each rngCell In rngList
      If rngCell.Interior.ColorIndex = 3 Then 'A Vog'l singt im Gart'n
        sngSTop = .Shapes(.Shapes.Count).Top
        sngSTop = sngSTop + .Shapes(.Shapes.Count).Height + 10  'Annahme
        sngLeft = .Shapes(.Shapes.Count).Left 'schön untereinander
        Set objShpe = .Shapes(.Shapes.Count).Duplicate  'und de Blumen blüh'n.
        With objShpe
          .TextFrame2.TextRange.Characters.Text = rngCell.Value 'Text ändern
          'die Eigenschaften .Left und .Top usw. setzen
          .Top = sngSTop  'Und wanns'd ned boid zu mir kummst
          .Left = sngLeft 'is ollas aus fia mi.
        End With
      End If
    Next rngCell
  End With
End Sub

und aus den gleichen Bausteinen brät´s du dir eine Löschroutine

Option Explicit
Rem lösche fehlende nach Vorgabe in Liste
Rem Mindestanforderung Objekte vom Typ
Sub LöscheNachListe()
Dim shShapes As Worksheet, shLists As Worksheet
Dim rngList  As Range, rngCell  As Range
Dim objShpe As Shape  'Testobjekte sind vom Typ 5 (msoShapeRoundedRectangle) !!!
Dim sngy As Single, sngx As Single
Dim lngCnt As Long

  'die Tabellenobjekte
  Set shShapes = Sheets("Checklist Structure")
  Set shLists = Sheets("Lists")
  
  'der Listenbereich
  Set rngList = shLists.Cells(Rows.Count, "D").End(xlUp)
  Set rngList = shLists.Range("D3:G" & rngList.Row)
    
  'Position 1. Shape
  sngx = shShapes.Shapes(1).Left
  sngy = shShapes.Shapes(1).Top
    
  'in der Shapes Auflistung durch die Objekte
  For Each objShpe In shShapes.Shapes
    If rngList.Find( _
      What:=objShpe.TextFrame2.TextRange.Characters.Text, _
      LookAt:=xlWhole, _
      MatchCase:=True) Is Nothing Then
      objShpe.Delete
      ActiveWorkbook.Save
      Exit For
    End If
  Next objShpe

  'jetzt aufrücken durch zählen
  lngCnt = 1
  For Each objShpe In shShapes.Shapes
    If lngCnt = 1 Then
      shShapes.Shapes(lngCnt).Top = sngy
      shShapes.Shapes(lngCnt).Left = sngx
    Else
      shShapes.Shapes(lngCnt).Top = shShapes.Shapes(lngCnt - 1).Top + _
        shShapes.Shapes(lngCnt - 1).Height + 10                       'Annahme
      shShapes.Shapes(lngCnt).Left = shShapes.Shapes(lngCnt - 1).Left
    End If
    lngCnt = lngCnt + 1
  Next objShpe

End Sub


jetzt komponierst du dir noch eine feine Marinade,

 vom Geschmack "Private Sub Worksheet_Change(ByVal Target As Range)"

und fertig ist das  :O Fleischgericht :O


 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
24.04.2014 12:40:58 Corina
NotSolved
24.04.2014 17:08:01 Corina
NotSolved
24.04.2014 21:43:02 gabi
NotSolved
25.04.2014 10:21:14 Corina
NotSolved
25.04.2014 13:44:03 Gast25327
*****
Solved
25.04.2014 13:50:37 Gast63045
NotSolved
25.04.2014 16:07:24 Corina
NotSolved
25.04.2014 16:25:04 Corina
NotSolved
25.04.2014 23:00:38 gabi
NotSolved
Blau Aber jetzt .....
26.04.2014 09:50:55 gabi
*****
Solved
27.04.2014 13:20:34 Corina
NotSolved
27.04.2014 18:40:31 gabi
NotSolved
28.04.2014 08:46:31 Corina
NotSolved
Blau Wow
28.04.2014 09:24:53 gabi
NotSolved
Rot Wow
28.04.2014 12:51:17 Corina
NotSolved
Blau Wow
28.04.2014 15:29:14 gabi
NotSolved
Rot Wow
29.04.2014 09:55:11 Corina
NotSolved
29.04.2014 12:15:23 gabi
NotSolved
28.04.2014 13:46:57 Gast40414
NotSolved
28.04.2014 14:29:04 Corina
NotSolved
28.04.2014 15:02:35 Gast13316
NotSolved
28.04.2014 15:06:49 Gast54937
NotSolved
28.04.2014 15:31:48 Corina
NotSolved
28.04.2014 14:37:59 Corina
NotSolved
27.04.2014 12:50:26 Corina
NotSolved