Anzeige
Archiv - Navigation
1832to1836
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

verknüpfte Bilder entknüpfen

verknüpfte Bilder entknüpfen
04.06.2021 13:45:55
Martin
Hallo zusammen,
ich habe mit einem VBA Code Bilder in Excel eingfügt. Das funktioniert einwandfrei:

Sub insertPictures()
Dim objPic As Object
Dim lngRow As Long, lngLast As Long
Dim dblOHeight As Double, dblOWidth As Double
Dim strFile As String
Const cstrPath As String = "C:\Users\Maria\Desktop\LC_HW12_Legebilder\5" 'Pfad
Const cstrExtention As String = ".tif"
With Sheets(2) 'Tabellenname anpassen!
lngLast = Application.Max(3, .Cells(.Rows.Count, 1).End(xlUp).Row)
For lngRow = 2 To lngLast
If .Cells(lngRow, 1)  "" Then
strFile = Dir(cstrPath & IIf(Right(cstrPath, 1) = "\", "", "\") & .Cells(lngRow, 1) & cstrExtention, vbNormal)
If strFile  "" Then
Set objPic = .Pictures.Insert(cstrPath & IIf(Right(cstrPath, 1) = "\", "", "\") & strFile)
objPic.Top = .Cells(lngRow, 1).Top
objPic.Left = .Cells(lngRow, 7).Left
dblOHeight = objPic.Height
dblOWidth = objPic.Width
objPic.ShapeRange.LockAspectRatio = False
objPic.Height = .Cells(lngRow, 1).Height
objPic.Width = dblOWidth * (objPic.Height / dblOHeight)
End If
End If
Next
End With
Set objPic = Nothing
End Sub
Leider werden die Bilder in der Excel nicht mehr angezeigt, wenn man sie auf einem anderen PC öffnet, da die Verknüpfungen weg sind.
Nun meine Fragen:
1. Kann man den Code so umschreiben, dass die Bilder nicht verküpft eingefügt werden?
2. Gibt es eine Möglichkeit, die bereits eingefügten Bilder unverküpft abzuspeichern? Ich habe schon unter Optionen Erweitert unter "Bildgröße und Qualität" die Hälchen gesetzt bei "Bearbeitungsdaten verwerfen" und "Bilder nicht komprimieren". Das hat aber leider nicht den gewünschten Effekt.
Ich bin über jede Hilfe dankbar!
VG
Martin

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: verknüpfte Bilder entknüpfen
04.06.2021 14:11:05
Nepumuk
Hallo Martin,
teste mal:
Code:

[Cc][+][-]

Public Sub insertPictures() Const cstrPath As String = "C:&bsol;Users&bsol;Maria&bsol;Desktop&bsol;LC_HW12_Legebilder&bsol;5&bsol;" ' Pfad Const cstrExtention As String = "*.tif" Dim objPic As Shape Dim lngRow As Long Dim sngOHeight As Single, sngOWidth As Single Dim strFile As String With Worksheets(2) ' Tabellenname anpassen! For lngRow = 2 To Application.Max(3, .Cells(.Rows.Count, 1).End(xlUp).Row) If Not IsEmpty(.Cells(lngRow, 1).Value) Then strFile = Dir(cstrPath & .Cells(lngRow, 1).Text & cstrExtention, vbNormal) If strFile <> vbNullString Then Set objPic = .Shape.AddPicture(Filename:=cstrPath & strFile, _ LinkToFile:=msoFalse, SaveWithDocument:=msoTrue, _ Left:=.Cells(lngRow, 7).Left, Top:=.Cells(lngRow, 1).Top, Width:=-1, Height:=.Cells( _ lngRow, 1).Height) With objPic sngOHeight = .Height sngOWidth = .Width .LockAspectRatio = False .Width = sngOWidth * (.Height / sngOHeight) End With End If End If Next End With Set objPic = Nothing End Sub

Gruß
Nepumuk
Anzeige
AW: verknüpfte Bilder entknüpfen
04.06.2021 14:19:05
Martin
Hallo Nepumuk,
vielen Dank für die Hilfe. Leider tut sich da gar nichts. Also es werden die Bilder gar nicht erst eingefügt.
LG
Martin
AW: verknüpfte Bilder entknüpfen
04.06.2021 14:31:26
Nepumuk
Hallo Martin,
was steht in Spalte A?
Gruß
Nepumuk
AW: verknüpfte Bilder entknüpfen
04.06.2021 17:36:58
Martin
Hallo Nepomuk,
in Spalte A steht der Dateiname. In der Regel eine 8-10-stellige Zahl. Teilweise auch mit "_" Unterstrich. aber ohne Dateinamenendung (also ohne .tif).
VG
Martin
AW: verknüpfte Bilder entknüpfen
04.06.2021 18:00:43
Nepumuk
Hallo Martin,
ok, waren noch zwei Fehler drin.
Aber, hast du den Code 1:1 übernommen?
Code:

[Cc][+][-]

Public Sub insertPictures() Const cstrPath As String = "C:&bsol;Users&bsol;Maria&bsol;Desktop&bsol;LC_HW12_Legebilder&bsol;5&bsol;" ' Pfad Const cstrExtention As String = ".tif" Dim objPic As Shape Dim lngRow As Long Dim sngOHeight As Single, sngOWidth As Single Dim strFile As String With Worksheets(2) ' Tabellenname anpassen! For lngRow = 2 To Application.Max(3, .Cells(.Rows.Count, 1).End(xlUp).Row) If Not IsEmpty(.Cells(lngRow, 1).Value) Then strFile = Dir$(cstrPath & .Cells(lngRow, 1).Text & cstrExtention, vbNormal) If strFile <> vbNullString Then Set objPic = .Shapes.AddPicture(Filename:=cstrPath & strFile, _ LinkToFile:=msoFalse, SaveWithDocument:=msoTrue, _ Left:=.Cells(lngRow, 7).Left, Top:=.Cells(lngRow, 1).Top, Width:=-1, Height:=-1) With objPic sngOHeight = .Height sngOWidth = .Width .LockAspectRatio = False End With objPic.Height = .Cells(lngRow, 1).Height objPic.Width = sngOWidth * (objPic.Height / sngOHeight) End If End If Next End With Set objPic = Nothing End Sub

Gruß
Nepumuk
Anzeige
AW: verknüpfte Bilder entknüpfen
04.06.2021 18:27:38
Martin
Hallo Nepomuk,
ja hatte ich 1:1 übernommen. Jetzt hat das einfügen funktioniert. Und die Bilder bleiben auch drin! Perfekt. Jetzt verstehe ich aber auch warum das nciht Standard ist. Vorher 950kb groß, jetzt 1,4gb... da hat der PC ganz schön zu tun...
Danke!
VG
Martin

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige