Einblendung

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
UserForm Frame TextBox MsgBox
Bild

Betrifft: Einblendung
von: Hugo
Geschrieben am: 30.04.2015 08:25:53

Hallo liebe Excelgemeinde
Ich habe folgendes Problem: Ich möchte, dass wenn ich auf die Zelle A3 in Tabelle1 clicke, eine Einblendung der Zellen A1:A5 des Tabellenblattes Tabelle2 in Tabelle1 eingeblendet wird. Ebenso möchte ich, dass bei Doppelclick auf Zelle A3 in Tabelle1 die Einblendung wieder verschwindet.
Gibt es da eine Möglichkeit?
Beste Grüsse und vielen Dank bereits im Voraus.
Hugo

Bild

Betrifft: AW: Einblendung
von: Herbert Grom
Geschrieben am: 30.04.2015 08:43:35
Hallo Hugo,
Gibt es da eine Möglichkeit?
Klar gibt es die!
Servus

Bild

Betrifft: AW: Einblendung
von: Herbert Grom
Geschrieben am: 30.04.2015 08:47:18
Hallo Hugo,
bitte nicht böse sein, aber diesen Gag musste ich unbedingt machen. Ich bastle Dir eine Lösung. Bis gleich!
Servus

Bild

Betrifft: AW: Einblendung
von: Herbert Grom
Geschrieben am: 30.04.2015 08:51:43
Hallo Hugo,
Du schreibst, dass die Zellen A1:A5 aus Tab2 in Tab1 eingeblendet werden sollen. Wie soll das eingeblendet werden? In einer MsgBox? In einer UserForm? In bestimmten Zellen in Tab1?
Also, gib mir bitte kurz Bescheid.
Servus

Bild

Betrifft: AW: Einblendung
von: Hugo
Geschrieben am: 30.04.2015 08:57:12
Hallo Herbert
Ich mag das Spässchen gut vertragen, wenn Du mir eine Lösung bringen kannst. :-)
Die Daten sollten wie in einem Kommentar eingeblendet werden. Ich nehme an eine UserForm wär das Richtige.
Gruss Hugo

Bild

Betrifft: AW: Einblendung
von: Matthias L
Geschrieben am: 30.04.2015 10:17:46
Hallo
Code ins Tabellenblatt der Tabelle1

Option Explicit
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
 If Not Intersect(Target, Range("A3")) Is Nothing Then
  Cancel = True
  Range("A1:A5").ClearContents
 End If
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
 Dim X&
 If Not Intersect(Target, Range("A3")) Is Nothing Then
  For X = 1 To 5
   Range("A" & X) = Tabelle2.Range("A" & X)
  Next
 End If
End Sub
Hinweis
Hier wird aber nicht geprüft ob in den Zielzellen schon etwas steht!
Ich persönlich würde aber Beides mit Doppelklick realisieren, denn wenn Du per Doppelklick
die Inhalte wieder entfernst steht der Cursor vermutlich noch in A3.
So müsstest Du jetzt min. 2 Zellen(von A3 ausgehend) markieren, oder die Zelle verlassen und
wieder anklicken damit die Werte wiede erscheinen.
https://www.herber.de/bbs/user/97371.xlsm
Gruß Matthias

Bild

Betrifft: AW: Einblendung
von: Hugo
Geschrieben am: 30.04.2015 10:39:46
Hallo Matthias
Danke für den Ansatz. Leider ist es nicht das, was ich mir vorgestellt habe. Die Daten sollen nicht eingefügt, sondern nur angezeigt werden.
Gruss Hugo

Bild

Betrifft: Variante2
von: Matthias L
Geschrieben am: 30.04.2015 11:00:26
Hallo
neue Variante mit Userform
https://www.herber.de/bbs/user/97374.xlsm
Gruß Matthias

Bild

Betrifft: AW: Variante2
von: Herbert Grom
Geschrieben am: 30.04.2015 11:20:20
Hallo Matthias,
so wie ich Hugo verstanden habe, nützt ihm eine UF nix, da er dann nicht weitermachen kann, ohne die UF vorher wieder zu schließen. Mit meinem Lösungsansatz kann er das TF einblenden und sie irgendwann später oder auch gleich wieder ausblenden.
Servus

Bild

Betrifft: Variante3
von: Matthias L
Geschrieben am: 30.04.2015 11:35:59
Hallo Herbert
Sind ja alles nur Vorschläge
Aber auch wenn UserForm zu sehen ist kann er dennoch weiterarbeiten.
Sie ist doch ungebunden (Eigenschaft:ShowModal=False)
Hier noch meine letzte 3.Variante
https://www.herber.de/bbs/user/97378.xlsm
Hab natürlich auch Deinen Vorschlag getestet.
Fazit: Deine Variante ist besser als meine :-)
Gruß Matthias

Bild

Betrifft: und so mit Doppelklick ...
von: Matthias L
Geschrieben am: 30.04.2015 10:24:20
Hallo

Option Explicit
Public Bool As Boolean
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
 Dim X&
 If Bool Then
  If Not Intersect(Target, Range("A3")) Is Nothing Then
   Cancel = True
   Range("A1:A5").ClearContents
  End If
 Bool = Not Bool
 Else
  For X = 1 To 5
   Range("A" & X) = Tabelle2.Range("A" & X)
  Next
  Bool = Not Bool
End If
End Sub
Gruß Matthias

Bild

Betrifft: AW: Einblendung
von: Herbert Grom
Geschrieben am: 30.04.2015 10:28:52
Hallo Hugo,
so, damit klappt es, jedenfalls bei mir. Du musst den nachfolgenden Code in das ClassModul der Tab1 kopieren. Wenn Du dann auf A3 klickst, erscheint ein Textfeld mit dem Inhalt der Zellen A1-A5 aus Tab2.
Wenn Du dann noch einmal auf A3 klickst, verschwindet das Textfeld wieder.
Servus

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
   If Target.Address = "$A$3" Then
      On Error GoTo weiter
      ActiveSheet.Shapes.Range(Array("Textfeld01")).Delete
      Application.Goto Reference:="R4C1"
      Exit Sub
      
weiter:
      Application.EnableEvents = False
      
         With Worksheets("Tabelle2")
            ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, 360, 331.5, 78.75, 106. _
5).Select
            
            Selection.ShapeRange.Name = "Textfeld01"
            Selection.ShapeRange.IncrementLeft -500#
            Selection.ShapeRange.IncrementTop -500#
            Selection.ShapeRange.IncrementLeft 210#
            
            Selection.ShapeRange.TextFrame2.TextRange.Characters.Text = _
            .Range("A1") & "" & _
            .Range("A2") & "" & _
            .Range("A3") & "" & _
            .Range("A4") & "" & _
            .Range("A5") & ""
         End With
         Application.Goto Reference:="R4C1"
      
      Application.EnableEvents = True
   End If
    
End Sub


Bild

Betrifft: AW: Einblendung
von: Hugo
Geschrieben am: 30.04.2015 10:46:58
Hallo Herbert
Du darfst also weiter munter Deine Spässchen machen!
Der Code funktioniert bei mir ebenfalls! SUPER!!
Danke vielmals.
Beste Grüsse und einen schönen Tag wünsch ich Dir.
Hugo

Bild

Betrifft: AW: Einblendung
von: Herbert Grom
Geschrieben am: 30.04.2015 10:52:02
Hallo Hugo,
prima, dass es auch bei Dir klappt. Und prima, dass Du auch noch Spaß verstehst! ;o)=)
Servus

Bild

Betrifft: AW: Einblendung
von: Rudi Maintaire
Geschrieben am: 30.04.2015 11:57:28
Hallo,
alles viel zu kompliziert.
1. Tabelle2!A1:A5 kopieren und in Tabelle1 als verknüpftes Bild einfügen.
2. Code:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
  If Target.Address = "$A$3" Then
    With Shapes("Bild 1") 'Name anpassen
      .Visible = Not .Visible
    End With
    Cancel = True
  End If
End Sub

Gruß
Rudi

Bild

Betrifft: TOP :-) owT
von: Matthias L
Geschrieben am: 30.04.2015 12:02:38


Bild

Betrifft: AW: TOP :-) owT
von: Hugo
Geschrieben am: 30.04.2015 13:18:24
Hallo Rudi
Funktioniert tip top! Hab doch noch eine Frage: Was muss ich denn machen, wenn ich noch ein anders verknüpftes Bild auf die selbe Art und Weise auf Zelle B3 aufmachen und schliessen möchte?
Gruss Hugo

Bild

Betrifft: AW: TOP :-) owT
von: Rudi Maintaire
Geschrieben am: 30.04.2015 13:49:29
Hallo,
so:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
  Dim objSHP As Object
  Select Case Target.Address
    Case "$A$3": Set objSHP = ActiveSheet.Shapes("Bild 1")
    Case "$B$3": Set objSHP = ActiveSheet.Shapes("Bild 2")
  End Select
  If Not objSHP Is Nothing Then
    With objSHP
      .Visible = Not .Visible
      If .Visible Then  'positionieren
        .Top = Target.Top
        .Left = Target.Offset(, 1).Left
      End If
    End With
    Cancel = True
  End If
End Sub

Gruß
Rudi

Bild

Betrifft: AW: TOP :-) owT
von: Hugo
Geschrieben am: 30.04.2015 14:00:36
Hallo Rudi
Genau das, was ich brauche!! Vielen herzlichen Dank!
Gruss Hugo

Bild

Betrifft: dann doch geschlossen. owT
von: Rudi Maintaire
Geschrieben am: 30.04.2015 14:05:24


Bild

Betrifft: AW: TOP :-) owT
von: Werner
Geschrieben am: 30.04.2015 14:07:07
Hallo an alle,
bin Mitleser und wie immer begeistert. Eine Problemstellung diverse Lösungen. Da ist für jeden was dabei. Klasse
Werner

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Workbook auf Desktop ansprechen"