Office: [EXCEL 2003] - VBA - Automatisiert Bilder einfürgen ber VBA

Helfe beim Thema [EXCEL 2003] - VBA - Automatisiert Bilder einfürgen ber VBA in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo leibe Forumsgemeinde, ich habe in einer Excel-Datei, die hier so schlummerte, folgenden VBA-Code entdeckt: Option Explicit Public Sub... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von phyton2706, 21. Februar 2012.

  1. phyton2706 Erfahrener User

    [EXCEL 2003] - VBA - Automatisiert Bilder einfürgen ber VBA


    Hallo leibe Forumsgemeinde,


    ich habe in einer Excel-Datei, die hier so schlummerte, folgenden VBA-Code entdeckt:
    PHP:
    Option Explicit
    Public Sub Bilder_einfuegen()
        
    Dim strPfadDatei As String
        Dim lngLetzteZeile 
    As Long
        Dim wksBlatt 
    As Worksheet
        Dim blnFrage 
    As Boolean
        Dim picBild 
    As Picture
        
    Const DateiPfad "U:\USER\ETIK\DATENSICH\aktuell\GRAFIKEN_Neu\JPG-Dateien\"
        Set wksBlatt = ThisWorkbook.Worksheets("
    Tabelle1")
        On Error GoTo Ende
        Select Case MsgBox("
    Höhe 40 ""Ja"" klickenBreite 60 ""Nein"" klicken!", _ 
           vbYesNo Or vbQuestion Or vbDefaultButton1, "
    Höhe Breite")
            Case vbYes
                blnFrage = True
            Case vbNo 
               blnFrage = False
        End Select
        Application.ScreenUpdating = False
        With wksBlatt
            lngLetzteZeile = .Range("
    C" & .Rows.Count).End(xlUp).Row
            For lngLetzteZeile = 2 To lngLetzteZeile
                If Dir(DateiPfad & .Range("
    C" & lngLetzteZeile).Text) <> "" Then
                    Set picBild = .Pictures.Insert _ 
                       (DateiPfad & .Cells(lngLetzteZeile, 3).Text)
                    With picBild.ShapeRange
                        .Top = wksBlatt.Range("
    D" & lngLetzteZeile).Top
                        .Left = wksBlatt.Range("
    D" & lngLetzteZeile).Left 
                       .LockAspectRatio = True
                        If blnFrage = True Then 
                           wksBlatt.Range("
    D" & lngLetzteZeile).RowHeight = 40
                            .Height = 40
                        Else
                            .Width = 60
                            wksBlatt.Range("
    D" & lngLetzteZeile).RowHeight = .Height
                        End If 
                   End With
                End If 
           Next lngLetzteZeile
        End WithEnde:
        Application.ScreenUpdating = TrueEnd Sub
    In besagter Datei stand in Spalte "C" der Name einer eizufügenden Grafik. Diese Grafik wurde in Spalte "D" entweder mit einer Höhe von 100 oder einer Breite von 60 eingefügt. Das klappt auch super in dieser einen Datei.


    Ich möchte nun den Code so ändern, dass ich ihn auch in anderen Dateien nutzen kann.


    Hierfür habe ich folgende Zeilen des Codes angepasst:
    PHP:
        Set wksBlatt ThisWorkbook.Worksheets("Tabelle1")
    Hier habe ich den richtigen Pfad eingetragen
    PHP:
      If Dir(DateiPfad & .Range("C" lngLetzteZeile).Text) <> "" Then
          Set picBild 
    = .Pictures.Insert _
              
    (DateiPfad & .Cells(lngLetzteZeile3).Text)
    In diesem Teil habe ich "C" durch "W" ersetzt, weil der Dateiname nun in Spalte "W" steht.
    PHP:
      .Top wksBlatt.Range("D" lngLetzteZeile).Top
      
    .Left wksBlatt.Range("D" lngLetzteZeile).Left
      
    .LockAspectRatio True  If blnFrage True Then
          wksBlatt
    .Range("D" lngLetzteZeile).RowHeight 40
          
    .Height 40
      
    Else
          .
    Width 60
          wksBlatt
    .Range("D" lngLetzteZeile).RowHeight = .Height  
    End 
    If
    Das "D" habe ich durch "M" ersetzt, damit die Grafik in Spalte "M" eingefügt wird.


    Leider passiert beim Ausführen des Macros mal so gar nichts…


    Könnt Ihr mir vielleicht auf die Sprünge helfen?


    Danke im Voraus,


    Euer phyton2706
     
    phyton2706, 21. Februar 2012
    #1
  2. hddiesel Erfahrener User
    Hallo Phyton2706,

    teste einmal mit folgender Änderung:
    PHP:
    Option Explicit
    Public Sub Bilder_einfuegen()
        
    Dim strPfadDatei As String
        Dim lngLetzteZeile 
    As Long
        Dim wksBlatt 
    As Worksheet
        Dim blnFrage 
    As Boolean
        Dim picBild 
    As Picture
        
    Const DateiPfad "U:\USER\ETIK\DATENSICH\aktuell\GRAFIKEN_Neu\JPG-Dateien\"
        Set wksBlatt = ThisWorkbook.Worksheets("
    Tabelle1")
        On Error GoTo Ende
        Select Case MsgBox("
    Höhe 40 ""Ja"" klickenBreite 60 ""Nein"" klicken!", _
           vbYesNo Or vbQuestion Or vbDefaultButton1, "
    Höhe Breite")
            Case vbYes
                blnFrage = True
            Case vbNo
               blnFrage = False
        End Select
        Application.ScreenUpdating = False
        With wksBlatt
            lngLetzteZeile = .Range("
    W" & .Rows.Count).End(xlUp).Row
            For lngLetzteZeile = 2 To lngLetzteZeile
                If Dir(DateiPfad & .Range("
    W" & lngLetzteZeile).Text) <> "" Then
                    Set picBild = .Pictures.Insert _
                       (DateiPfad & .Range("
    W" & lngLetzteZeile).Text)
                    With picBild.ShapeRange
                        .Top = wksBlatt.Range("
    M" & lngLetzteZeile).Top
                        .Left = wksBlatt.Range("
    M" & lngLetzteZeile).Left
                       .LockAspectRatio = True
                        If blnFrage = True Then
                           wksBlatt.Range("
    M" & lngLetzteZeile).RowHeight = 40
                            .Height = 40
                        Else
                            .Width = 60
                            wksBlatt.Range("
    M" & lngLetzteZeile).RowHeight = .Height
                        End If
                   End With
                End If
           Next lngLetzteZeile
      End With
    Ende:
      Application.ScreenUpdating = True
    End Sub
     
    Zuletzt bearbeitet: 21. Februar 2012
    hddiesel, 21. Februar 2012
    #2
  3. fette Elfe Erfahrener User

    Hallo phyton2706,

    ohne Deine Datei zu kennen vermute ich den Fehler in den obigen Zeilen.
    Dort hängst Du den Zellinhalt hinter den Ordnerpfad, und verwendest dies dann als Dateiname.

    Steht in den Zellen Deiner Mappe "Bild1.jpg" oder nur "Bild1" ???

    Denn wenn die Dateiendung in der Zelle nicht mit drinn steht, können obige Zeilen nicht funktionieren.
    Dann müssten entweder die Endungen mit in die Zellen oder mit in den Code rein.
     
    fette Elfe, 22. Februar 2012
    #3
  4. hddiesel Erfahrener User

    [EXCEL 2003] - VBA - Automatisiert Bilder einfürgen ber VBA

    Hallo Achim,

    wenn es vorher lief und es wurden die Dateiangaben jetzt genau so eingetragen(mit Dateiendung .jpg), lag der Fehler wohl in dieser Zeile.

    lngLetzteZeile = .Range("C" & .Rows.Count).End(xlUp).Row

    statt

    lngLetzteZeile = .Range("W" & .Rows.Count).End(xlUp).Row

    somit wurde die Letzte Zeile falsch übergeben.

    Es ist immer ein stochern im Heuhaufen, wenn der Code nicht komplett zur Verfügung gestellt wird, so wie er geändert wurde und sonstige Angaben Lückenhaft sind.
     
    hddiesel, 22. Februar 2012
    #4
  5. silex1
    silex1 Super-Moderator
Thema:

[EXCEL 2003] - VBA - Automatisiert Bilder einfürgen ber VBA

Die Seite wird geladen...
  1. [EXCEL 2003] - VBA - Automatisiert Bilder einfürgen ber VBA - Similar Threads - EXCEL 2003 VBA

  2. Excel 2003 (VBA) Tabellenblatt Bereich als Email senden

    in Microsoft Excel Hilfe
    Excel 2003 (VBA) Tabellenblatt Bereich als Email senden: Hallo zusammen, ich bin neu in eurer Runde und möchte nach vergeblicher Suche Rat erfragen. Von VBA habe ich wenig Ahnung und konnte bis jetzt einen "gefundenen" VBA-Code dazu nutzen,...
  3. fortlaufendes Datum in 12 Arbeitsblättern Januar-Dezember Excel 2003 ohne VBA

    in Microsoft Excel Hilfe
    fortlaufendes Datum in 12 Arbeitsblättern Januar-Dezember Excel 2003 ohne VBA: Hallo zusammen, ich entwerfe gerade einen Arbeitsplan der aus 12 Arbeitsblättern besteht, für jedes Blatt ein Monat. Die Arbeitsblätter (Register unten sollen Januar, Februar, März usw. heissen....
  4. Office 2003 / Accesstabellen und Abfragen von Excel per VBA starten...

    in Microsoft Excel Hilfe
    Office 2003 / Accesstabellen und Abfragen von Excel per VBA starten...: Hallo zusammen, ich möchte von EXCEL per VBA Tabellen und Abfragen einer ACCESS-Datenbank(.mdb) öffnen können. Jedoch möchte ich nicht über zusätzliche Tabellenverknüfungen (.mat) oder...
  5. dynamisches Diagramm - VBA Frage - Excel 2003

    in Microsoft Excel Hilfe
    dynamisches Diagramm - VBA Frage - Excel 2003: Guten Morgen miteinander, habe mal wieder ein Problem mit einer VBA Programmierung. Bisher: Ich habe Geschäftsjahr mit den einzelnen Monate von Okt bis Sept. Diese Monate sind Gruppiert in den...
  6. VBA Excel 2003 ( Makros) Programierung

    in Microsoft Excel Hilfe
    VBA Excel 2003 ( Makros) Programierung: Hallo an Alle:D, Ich habe 2 Excel Datein. Die erste Exel ist komplett fertig mit einer VBA Programierung und einem sozusagen Programm. Dieses Programm macht eine Aktualiesierung von verschiedenen...
  7. Excel 2003 Kopieren mehrerer Zellen mit VBA

    in Microsoft Excel Hilfe
    Excel 2003 Kopieren mehrerer Zellen mit VBA: Hallo, ich bin ganz frisch in VBA deshalb bitte ich um Nachsicht. :-) Folgendes: Erstens: Ich kopiere eine Zelle in einem Tabellenblatt und füge sie auf einem anderen Blatt ein. Dann die...
  8. Excel VBA von 2003 in 2007

    in Microsoft Excel Hilfe
    Excel VBA von 2003 in 2007: Guten Tag An der Schule habe ich ein kleines VBA in Excel 2003 geschrieben. Dieses funktioniert aber nicht mehr mit Excel 2007. With Selection .HorizontalAlignment = xlCenter...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden