Hallo Experten.
Da ich noch neu bin hoffe ich im richtigen Forum zu Posten.
Ich muss ein Bild per Klick von 20% auf 100% vergrössern und mit dem nächsten klick wieder auf 20% verkleinern.
Ich habe bereits ein Makro das mir das Bild verkleinert und ein Makro das mir das Bild wieder vergrössert.
Nun weiss ich nicht wie ich das mit dem Klick hin bekomme kann?
Ich bin froh umm jeden input.
Besten Dank im voraus für Eure zahlreiche Hilfe.
Ich muss ein Bild per Klick von 20% auf 100% vergrössern und
mit dem nächsten klick wieder auf 20% verkleinern.
Ich habe bereits ein Makro das mir das Bild verkleinert und
ein Makro das mir das Bild wieder vergrössert.
Nun weiss ich nicht wie ich das mit dem Klick hin bekomme
kann?
Hi Christian,
k.A. warum
Selection.ShapeRange.Height = Selection.ShapeRange.Height * 0.2
Selection.ShapeRange.Width = Selection.ShapeRange.Width * 0.2
ein viel zu kleines Bild liefert. Deshalb musste ggfs. mit
Sub tt()
Dim Bild
For Each Bild In ActiveSheet.Shapes
MsgBox "Bild.Name: " & Bild.Name & " Height= " & Bild.Height & " Width= " & Bild.Width
Next Bild
End Sub
die Werte für 100 und 20 Prozent notieren und ins eigentliche Makro einsetzen. Wenn das makro angepasst ist, weist du es deM Bild zu (Rechtsklick aufs Bild, MakroZuweisen auswählen)
Option Explicit
Dim Klein As Boolean
Sub Makro1()
With Selection
If Klein = True Then
.ShapeRange.LockAspectRatio = msoTrue
.ShapeRange.Height = 143.25
.ShapeRange.Width = 191.25
Else
.ShapeRange.LockAspectRatio = msoTrue
.ShapeRange.Height = 29.25
.ShapeRange.Width = 38.25
End If
Klein = Not (Klein)
Range("A12").Select
End With
End Sub
Gruß
Reinhard
Hallo Christian.
Wenn du das Makro schon programmiert hast, musst du nur noch das Bild rechts anklicken und dann auf Makro zuweisen gehen. Dann kannst du dein Makro in diese Klick-Routine reinkopieren.
Gruß Alex
Codeänderung
Hi Christian,
nimm diesen Code:
Option Explicit
Dim Klein As Boolean
Sub Bild3()
Call Groesse("Picture 3")
End Sub
Sub Groesse(Bildname As String)
Application.ScreenUpdating = False
ActiveSheet.Shapes(Bildname).Select
With Selection
If Klein = True Then
.ShapeRange.LockAspectRatio = msoTrue
.ShapeRange.Height = 143.25
.ShapeRange.Width = 191.25
Else
.ShapeRange.LockAspectRatio = msoTrue
.ShapeRange.Height = 29.25
.ShapeRange.Width = 38.25
End If
Klein = Not (Klein)
ActiveCell.Select 'Range("A12").Select
End With
Application.ScreenUpdating = True
End Sub
Gruß
Reinhard
Hallo Reinhard
Besten Dank für die rasche Antwort.
Nun der Code funktioniert noch nicht 100%ig.
Wenn ich dem Bild nun das Makro zuweise und ausführe, wird das Bild kleiner. beim nächsten klick sollte es wieder gross werden. das get leider noch nicht.
Was mir nicht klar ist: wann wird Klein auf True oder False gesetzt?
und was bewirkt der Code: „Klein = Not (Klein)“?
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Hi Christian,
Nun der Code funktioniert noch nicht 100%ig.
Wenn ich dem Bild nun das Makro zuweise und ausführe, wird das
Bild kleiner. beim nächsten klick sollte es wieder gross
werden. das get leider noch nicht.
bei mit klappt er, lade doch mal ne kleine Beispieldatei hoch, z.B. hier:
http://rapidshare.de/
Was mir nicht klar ist: wann wird Klein auf True oder False
gesetzt?
durch „Klein = Not (Klein)“
und was bewirkt der Code: „Klein = Not (Klein)“?
probier das mal imCode:
msgbox Klein
Klein = Not (Klein)"
msgbox Klein
Gruß
Reinhard
Hallo Reinhard
Klein = Not (Klein) setzt Klein von „“ auf „-1“
Das würde heissen False wird zu True wenn ich nicht ganz im Dunkeln sitze. doch ich glaube hier ist irgend wo der Felher, nur wo?
Anbei der Link zur Testdatei mit dem verwendeten Code:
http://rapidshare.de/files/31569616/Bild_Test.xls
Besten Dank
Gruss
Christian
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Klein = Not (Klein) setzt Klein von „“ auf „-1“
Das würde heissen False wird zu True wenn ich nicht ganz im
Dunkeln sitze. doch ich glaube hier ist irgend wo der Felher,
nur wo?
Nein, der Fehler lag an dir, sorry 
Zuoberst im Modul muss stehen:
Option Explicit
Dim Klein As Boolean
Das haste vergessen einzugeben.
Wegen den Wahrheitswerten, probier mal in Excel:
=(5=2)*1
bzw
=(5=5)*1
und in VBa:
msgbox (5=2)*1
msgbox (5=5)*1
Gruß
Reinhard
Anbei der Link zur Testdatei mit dem verwendeten Code:
http://rapidshare.de/files/31569616/Bild_Test.xls
Besten Dank
Gruss
Christian
Hallo Reinhard
Oh man wie konnte ich das nur übersehen.
Besten Dank für die Hilfe, es klappt jetzt wunderbar.
Gruss
Christian