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

Kommentar entsprechend Hintergrundgrafik skalieren

Kommentar entsprechend Hintergrundgrafik skalieren
Andreas
Hallo Zusammen,
um bei der Arbeit die ein oder andere Zeichnung als Vorschau in zu einer Liste Artikelnummern zu speichern bediene habe ich eine Kombination aus den Programm "Hardcopy" und einem Makro. Hardcopy ist so eingestellt, dass mit einer Tastenkombination ein Auswahlrechteck erscheint und den anschließend gewählte Bereich (unbekannte Größe und Seitenverhältnis) unter "C:\Dokumente und Einstellungen\Werner_A\Eigene Dateien\Eigene Bilder\Unbenannt.bmp" speichert.
Dann folgendes Makro aufgerufen:
  • 
    Sub Bild_in_Kommentar_einfügen()
    ' Makro1 Makro
    ' Fügt die in "Eigene Bilder" des Beutzers abgelegte Grafik "Unbekannt.bmp" in einen Kommentar  _
    der aktiven Zelle ein.
    ' Tastenkombination: Strg+k
    On Error GoTo Errorhandler
    start:
    With ActiveCell
    .AddComment
    .Comment.Visible = False
    .Comment.Text Text:=Environ("Username") & ":" & Chr(10) & ""
    .Comment.Shape.Fill.UserPicture _
    "C:\Dokumente und Einstellungen\" & Environ("Username") & "\Eigene Dateien\Eigene  _
    Bilder\Unbenannt.bmp"
    .Comment.Shape.LockAspectRatio = msoTrue
    .Comment.Shape.Width = 800
    End With
    Exit Sub
    Errorhandler:
    If MsgBox("Es ist bereits ein Kommmentar in dieser Zelle enthalten. Diesen ersetzen?",  _
    vbYesNo) = vbYes Then
    ActiveCell.Comment.Delete
    GoTo start
    End If
    End Sub
    

  • Leider funktioniert es so nicht die Grafik bei gleichem Seitenverhältnis auf eine Breite von 800 zu skalieren.
    Was ist da falsch?
    Gruß,
    A. Werner
    AW: Kommentar entsprechend Hintergrundgrafik skalieren
    31.01.2011 10:31:23
    Beverly
    Hi Werner,
    ermittle vorher das Beite/Höhe-Verhältnis
    Sub Bild_in_Kommentar_einfügen()
    Dim dblHoehe As Double
    Dim booEintrag As Boolean
    If Not ActiveCell.Comment Is Nothing Then
    If MsgBox("Es ist bereits ein Kommmentar in dieser Zelle enthalten. Diesen ersetzen?", _
    vbYesNo) = vbYes Then
    ActiveCell.Comment.Delete
    booEintrag = True
    End If
    Else
    booEintrag = True
    End If
    If booEintrag Then
    With ActiveCell
    .AddComment
    .Comment.Visible = False
    .Comment.Text Text:=Environ("Username") & ":" & Chr(10) & ""
    .Comment.Shape.Fill.UserPicture "C:\Dokumente und Einstellungen\" & _
    Environ("Username") & "\Eigene Dateien\Eigene Bilder\Unbenannt.bmp"
    dblHoehe = .Comment.Shape.Height / .Comment.Shape.Width '



    Anzeige
    AW: Kommentar entsprechend Hintergrundgrafik skalieren
    01.02.2011 09:45:19
    Andreas
    Hallo Beverly,
    danke für die schnelle Antwort. Habe es getestet, aber mit dem Vorschlag wird die Grafik auf das Seitenverhältnis des Kommentars skaliert. Der hat der nach dem Einfügen leider nie das passende Verhältnis. Gibt es eine Möglichkeit die Abmaße/Seitenverhältnis der Grafik auszulesen?
    Gruß, Andreas
    AW: Kommentar entsprechend Hintergrundgrafik skalieren
    01.02.2011 21:33:40
    Beverly
    Hi Andreas,
    bei Einfügen des Bildes passt sich das Kommentarfeld doch automatisch an das Verhältnis Höhe/Breite des Bildes an und mit dem Code wird in der Zeile mit dem Kommentar "Verhältnis ermitteln" das Verhältnis Höhe/Breite des Kommentarfeldes (und damit des eingefügten Bildes) ermittelt. Dann wird die Breite nach deiner Vorgabe auf 800 erhöht und die Höhe im gleichen Verhältnis angerpasst.


    Anzeige
    AW: Kommentar entsprechend Hintergrundgrafik skalieren
    02.02.2011 09:04:14
    Andreas
    Hallo Beverly,
    ich habe es eben nochmal mit dem Code von dir getest. Selbst wenn ich einen Screenshot mache der höher als breit ist und den Code durchtippe, fügt es einen Kommentar mit B 108x H 68,25 ein (Verhältnis 0,631944).
    Das macht es IMMER, egal welche größe die Grafik hat.
    Wenn ich die ganze Aktion händisch mache:
    Kommentar einfügen - Kommetar Formatieren - Farben und Linien - Fülleffekte - Grafik
    kann ich noch "Bildseitenverhältnis sperren" auswählen. Beim Aufzeichnen des Codes sehe ich aber keinen Unterschied.
  • Selection.ShapeRange.Fill.UserPicture _
    "C:\Dokumente und Einstellungen\Werner_A\Eigene Dateien\Eigene Bilder\Unbenannt.bmp"

  • Anzeige
    AW: Kommentar entsprechend Hintergrundgrafik skalieren
    02.02.2011 20:17:32
    Beverly
    Hi Anderas,
    dann sehe ich nur die Möglichkeit, das Bild zuerst ins Tabellenblatt einzufügen, die Breite/Höhe festzustellen und dann das Kommentarfeld daran anzupassen:
    Sub Bild_in_Kommentar_einfügen()
    Dim picBild As Picture
    Dim booEintrag As Boolean
    If Not ActiveCell.Comment Is Nothing Then
    If MsgBox("Es ist bereits ein Kommmentar in dieser Zelle enthalten. Diesen ersetzen?", _
    vbYesNo) = vbYes Then
    ActiveCell.Comment.Delete
    booEintrag = True
    End If
    Else
    booEintrag = True
    End If
    If booEintrag Then
    Application.ScreenUpdating = False
    Set picBild = ActiveSheet.Pictures.Insert("C:\Dokumente und Einstellungen\" & _
    Environ("Username") & "\Eigene Dateien\Eigene Bilder\Unbenannt.bmp")
    With ActiveCell
    .AddComment
    .Comment.Visible = False
    .Comment.Shape.Width = picBild.Width
    .Comment.Shape.Height = picBild.Height
    .Comment.Text Text:=Environ("Username") & ":" & Chr(10) & ""
    .Comment.Shape.Fill.UserPicture "C:\Dokumente und Einstellungen\" & _
    Environ("Username") & "\Eigene Dateien\Eigene Bilder\Unbenannt.bmp"
    .Comment.Shape.LockAspectRatio = msoTrue
    End With
    picBild.Delete
    Set picBild = Nothing
    Application.ScreenUpdating = True
    End If
    End Sub
    



    Anzeige
    AW: Kommentar entsprechend Hintergrundgrafik skalieren
    03.02.2011 09:42:22
    Andreas
    Hallo Berverly,
    super es geeeeeeeeeht!
    Ich wusste bis jetzt nicht wie es geht ein bild auszumessen.
    Verständnisfrage: wenn ich picbild mit delete lösche, was macht danach "set picbild = nothing"?
    Vielen Dank!
    AW: Kommentar entsprechend Hintergrundgrafik skalieren
    03.02.2011 11:14:31
    Hajo_Zi
    Hallo andreas,
    das löscht die variable.

    AW: Kommentar entsprechend Hintergrundgrafik skalieren
    03.02.2011 13:06:21
    Beverly
    Hi Andreas,
    die Variable, auf die das Beild geschrieben wurde, wird damit geleert.
    Die Meinungen, ob man am Ende eines Codes Set-Variablen wieder leeren sollte oder nicht, gehen teilweise auseinander, aber aus eigener Erfahrung weiß ich, dass andernfalls das Phänomen auftreten kann (nicht muss), dass nach Schließen der Arbeitsmappe das VBA-Projekt noch geöffnet bleibt (man kann es im VBA-Editor sehen obwohl die Mappe bereits geschlossen wurde), was zu Problemen führen kann.


    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige