Zum Inhalt springen

Bild per Skript in Excel 2007 einfügen


Clevemayer

Empfohlene Beiträge

Hallo Leute,

ich hab mal im Netz gesucht und dazu nichts für mich brauchbares gefunden.

Excel 2007 WinXP SP3

eine Exceltabelle

in einer Spalte steht ein Bildname 123.jpg.

der Pfad ist immer der gleiche.

ich möchte das Bild einfügen mit einer bestimmten Höhe und Breite (selbst definierbar), eine Zelle, neben der Zelle in dem der bildname steht und die darunterliegende Zelle auf die selbe Größe anpassen.

Wie ich erfahren habe, war es ja bis Excel 2003 nicht möglich ein bild direkt in eine Zelle in zu fügen, ist das jetzt möglich?

Vorm Prinzip her ists mir klar ein Makro VBA-Skript:

1. Pfad fix hinterlegen

2. Variable für Bildnamen hinterlegen

3. Zählvariable

4. Anzahl der Zeilen mit einem Rowcount (ist das korrekt?) der Zeile in der sich der Bildername befindet in der Zählvariable hinterlegen

5. dann aus der aktuellen Zelle mit Hilfe der Zählvariable, den Inhalt in die Variable für Bildnamen hinterlegen.

6. dann das entsprechende Bild öffnen über der Zelle rechts daneben

7. Bildgröße ändern

8. Zellengröße ändern

9. nächste Zeile

10. Ende

mal ein grober PAP, aber ich brauch das Heute, wenn möglich, bin die ganze Zeit am testen hab aber bisher noch kein VBA-Skript selbst erstellt nur immer entsprechende Skripte angepasst.

MfG

cleve

Link zu diesem Kommentar
Auf anderen Seiten teilen

Damit keiner denkt ich frage ohne mir Mühe zu machen,

hier mein Quellcode bisher, ich wull nur noch diei Zellen anpassen und das Bild, dann an der Zelle ausrichten:

Sub bilder()

Const strPATH = "Pfad" ' anpassen !!!

Dim i As Long

Dim bildname As String

Dim bild As String

i = 2

For i = 2 To Cells(Rows.Count, 5).End(xlUp).Row

bildname = Cells(i, 5)

If bildname <> "" Then

bild = strPATH & bildname

Cells(i, 6) = ActiveSheet.Pictures.Insert(bild).Select

With Selection

.Left = ActiveCell.Left 'verschieben nach links

.Top = ActiveCell.Top 'verschieben nach unten

'.Width = Breite '***** Breite anpassen !!!aber Höhe im gleichen Verhältnis

End With

End If

Next

wie gesagt, den einen Teil der Frage hab ich mir selbst beantwortet, nur wie kann ich denn jetzt das Bild IN die Zelle tun?

MfG

Kuye

Link zu diesem Kommentar
Auf anderen Seiten teilen

Soh, hier meine Lösung, nur habe ich ein Problem, ab eienr bestimmten stelle, legt er mir alle Bilder übereinander, und ich weiss nicht wieso... denn bei über 260 Bildern klappt es, kann ess ein das die Variable for den Abstand von Oben nicht groß genug ist?

Sub bilder()

Const strPATH = "Bilderpfad" ' anpassen !!!

Dim i As Long

Dim bildname As String

Dim bild As String

Dim oben As Long 'hat tatsächlich daran gelegen, jetzt funktioniert das Skript 1a

'setzt die Höhe und die Breite der Spalte

Columns("F:F").Select

Selection.ColumnWidth = 20

Selection.RowHeight = 120

'erster Abstand von Oben, wird später hochgezählt, + Zellenhöhe um Bild in

'nächste Zeile zu schieben.

oben = 70

'i auf 2, da das erste Bild in der 2. Zeile steht

i = 2

For i = 2 To Cells(Rows.Count, "E").End(xlUp).Row

bildname = Cells(i, "E") 'Bildname aus Spalte E

If bildname <> "" Then 'prüfung auf leeren Bildnamen

bild = strPATH & bildname 'der Pfad zum Bild

On Error Resume Next

ActiveSheet.Pictures.Insert(bild).Select 'öffnet Bild

With Selection

.Height = 110 'skaliert höhe

.Width = 100 'skaliert breite

.Left = Selection.Left + 580 'Abstand von Links

.Top = (Selection.Top + oben) 'Abstand von Oben

End With

oben = oben + 120 'Variable Oben wird hochgezähhlt.

End If

Next

End Sub

MfG

Cleve

EDIT:

hat an der Variablen Oben als Integer gelegen, hab sie in Long geändert, nun läuft das ganze sauber.

Bearbeitet von Clevemayer
Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...