Dansk Regneark Forum
  Hjælp Hjælp  Søg i forum   Arrangementer   Opret ny bruger Opret ny bruger  Log ind Log ind


Emne lukketindsæt billede

 Besvar Besvar
Forfatter
kbno Se dropdown
Guld bruger
Guld bruger
Avatar

Medlem: 07.Feb.2011
Land: Danmark
Status: Offline
Point: 500
Direkte link til dette indlæg Emne: indsæt billede
    Sendt: 06.Sep.2012 kl. 14:02
Jeg har nedenstående script til at tilføje billeder i mit dokument - men hvis man annullere midt i processen (på den annuller knap windows laver) laver den en fejl.

Nogen der kan hjælpe med hvordan jeg slipper for dette?

Private Const Hoejde = "255" 'Hvis højde skal tilpasses cellens højde, ændres den til ""
Private Const Bredde = "465" 'Hvis bredde skal tilpasses celles højde, ændres den til ""
Private Const Placering = "b18" 'Hvis billedes skal være i aktive celle, ændres den til ""

Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
ActCell = ActiveCell.Address
If Placering <> "" Then Range(Placering).Select
Set Billede = ActiveSheet.Pictures.Insert(Application.GetOpenFilename("Alle filer,*.*"))
With Billede
    .ShapeRange.LockAspectRatio = msoFalse
        If Hoejde = "" Then
                .Height = ActiveCell.Height
            Else
                .Height = Hoejde
            End If
        If Bredde = "" Then
                .Width = ActiveCell.Width
            Else
                .Width = Bredde
            End If
    .Top = ActiveCell.Top
    .Left = ActiveCell.Left
    .Placement = xlMoveAndSize
End With
Set Billede = Nothing
Range(ActCell).Select
Application.ScreenUpdating = True
End Sub
Hygge - Kim
Excel 365 DK user
Til top



Til top
Allan Se dropdown
Forum Admin
Forum Admin
Avatar
Forum Admin

Medlem: 03.Feb.2010
Land: Danmark
Status: Offline
Point: 10330
Direkte link til dette indlæg Sendt: 06.Sep.2012 kl. 15:08
Hej Kim,
 
Brug 'On Error Goto', det virker og er en hurtig måde at omgå disse fejl på.
 
Private Const Hoejde = "255" 'Hvis højde skal tilpasses cellens højde, ændres den til ""
Private Const Bredde = "465" 'Hvis bredde skal tilpasses celles højde, ændres den til ""
Private Const Placering = "b18" 'Hvis billedes skal være i aktive celle, ændres den til ""
Private Sub CommandButton1_Click()
On Error GoTo Fejl
Application.ScreenUpdating = False
ActCell = ActiveCell.Address
If Placering <> "" Then Range(Placering).Select
Set Billede = ActiveSheet.Pictures.Insert(Application.GetOpenFilename("Alle filer,*.*"))
With Billede
    .ShapeRange.LockAspectRatio = msoFalse
        If Hoejde = "" Then
                .Height = ActiveCell.Height
            Else
                .Height = Hoejde
            End If
        If Bredde = "" Then
                .Width = ActiveCell.Width
            Else
                .Width = Bredde
            End If
    .Top = ActiveCell.Top
    .Left = ActiveCell.Left
    .Placement = xlMoveAndSize
End With
Set Billede = Nothing
Range(ActCell).Select
Fejl:
Application.ScreenUpdating = True
End Sub
 
//Allan
Til top
kbno Se dropdown
Guld bruger
Guld bruger
Avatar

Medlem: 07.Feb.2011
Land: Danmark
Status: Offline
Point: 500
Direkte link til dette indlæg Sendt: 07.Sep.2012 kl. 07:34
SUPER det virker som det skal - takker 1000 Tongue
Hygge - Kim
Excel 365 DK user
Til top
Allan Se dropdown
Forum Admin
Forum Admin
Avatar
Forum Admin

Medlem: 03.Feb.2010
Land: Danmark
Status: Offline
Point: 10330
Direkte link til dette indlæg Sendt: 07.Sep.2012 kl. 09:37
Velbekomme Kim Wink
 
//Allan
Til top
kbno Se dropdown
Guld bruger
Guld bruger
Avatar

Medlem: 07.Feb.2011
Land: Danmark
Status: Offline
Point: 500
Direkte link til dette indlæg Sendt: 07.Sep.2012 kl. 15:53
Hej Allan

Et lille tillægsspørgsmål - det ser ud til at når man ligger et billede ind og gemmer filen gemmer den ikke billedet - dvs. at den kun har lavet en link til billedet.

Kan man ændre det så billedet bliver i filen ???
Hygge - Kim
Excel 365 DK user
Til top
Allan Se dropdown
Forum Admin
Forum Admin
Avatar
Forum Admin

Medlem: 03.Feb.2010
Land: Danmark
Status: Offline
Point: 10330
Direkte link til dette indlæg Sendt: 09.Sep.2012 kl. 00:38
Hej igen,
 
Det var straks værre.
Det er muligt, men så vil koden ikke være kompatibel med tidligere versioner end 2007...
 
Til eftertanke:
Hvis man indsætter billedet normalt i Excel, vil billedet bliver gemt i filen, men hvis man optager en makro hvor man gør det, linkes der kun til billedet. Det kan man da kalde en bug Big smile
 
Man kan dog lave et lille trick - som efter koden har sat billedet ind - kopierer billedet og sætter det ind igen.
Den tror jeg virker i alle versioner.
 
Private Const Hoejde = "255" 'Hvis højde skal tilpasses cellens højde, ændres den til ""
Private Const Bredde = "465" 'Hvis bredde skal tilpasses celles højde, ændres den til ""
Private Const Placering = "B18" 'Hvis billedes skal være i aktive celle, ændres den til ""
Private Sub CommandButton1_Click()
On Error GoTo Fejl
Application.ScreenUpdating = False
ActCell = ActiveCell.Address
If Bredde = "" Then ActCellWidth = ActiveCell.Width
If Hoejde = "" Then ActCellHeigth = ActiveCell.Height
If Placering <> "" Then Range(Placering).Select
ActiveSheet.Pictures.Insert(Application.GetOpenFilename("Alle filer,*.*")).Select
Selection.ShapeRange.LockAspectRatio = msoFalse
If Hoejde = "" Then
    Selection.Height = ActCellHeigth
Else
    Selection.Height = Hoejde
End If
If Bredde = "" Then
    Selection.Width = ActCellWidth
Else
    Selection.Width = Bredde
End If
       
Selection.Top = ActiveCell.Top
Selection.Left = ActiveCell.Left
Selection.Placement = xlMoveAndSize
Selection.CopyPicture xlScreen, xlBitmap
Selection.Delete
ActiveSheet.Paste
Range(ActCell).Select
Fejl:
Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub
Til top
kbno Se dropdown
Guld bruger
Guld bruger
Avatar

Medlem: 07.Feb.2011
Land: Danmark
Status: Offline
Point: 500
Direkte link til dette indlæg Sendt: 10.Sep.2012 kl. 07:31
Hej Allan - super jeg tester lige i løbet af dagen. Thumbs Up


Hygge - Kim
Excel 365 DK user
Til top
 Besvar Besvar

Skift forum Forum tilladelser Se dropdown

© 2010 - 2024 Dansk Regneark Forum - en del af Excel-regneark.dk