Office: Grafiken per VBA in Excel zentrieren

Helfe beim Thema Grafiken per VBA in Excel zentrieren in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo zusammen, ich bräuchte kurz eure Hilfe. Meine Ausgangslage: Über Dropdownfelder kann ich bestimmte Begriffe auswählen. Dazu passend werden Bilder... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von Caro99829, 26. April 2015.

  1. Grafiken per VBA in Excel zentrieren


    Hallo zusammen,
    ich bräuchte kurz eure Hilfe. Meine Ausgangslage: Über Dropdownfelder kann ich bestimmte Begriffe auswählen. Dazu passend werden Bilder unterhalb eingefügt. Diese sind jedoch unterschiedlich groß, weshalb ich mehrere Zellen verbunden habe. Soweit funktioniert auch alles. Nur möchte ich die Bilder gerne zentriert haben.
    Da ich von VBA recht wenig Ahnung habe, komme ich im Moment nicht weiter. Müsste man beim Teil mit Selection evtl. eine Schleife einbauen, da er Größe und Position des Bildes beim letzten ändert und bei den vorherigen nicht? Wenn ja, wie?
    Wär Klasse wenn ihr mir weiterhelfen könntet. Vielen Dank im Voraus.

    Gruß Caro


    Code:
    :)
     
    Caro99829, 26. April 2015
    #1
  2. Beverly
    Beverly Erfahrener User
    Hi,

    weshalb sollen die Bilder zentriert werden? Wäre es nicht besser, ihre Größe an die Zellgröße anzupassen, sodass sie die gesamte Zelle bedecken?


    Grafiken per VBA in Excel zentrieren grusz.gif
     
    Beverly, 27. April 2015
    #2
  3. Naja, die Bilder haben unterschiedliche Größen. Die würde es ja dann verzerren. Ich habe extra mehrere Zellen verbunden in denen das Bild erscheint
     
    Caro99829, 27. April 2015
    #3
  4. Beverly
    Beverly Erfahrener User

    Grafiken per VBA in Excel zentrieren

    Dann müsstest du nach Einfügen jedes einzelnen Bildes die Breite des Bildes von der Breite der verbundenen Zellen subtrahieren und durch 2 dividieren - dann erhältst du den Abstand vom linken Rand der ersten Zelle für das betreffende Bild. Dasselbe müsstest du dann für die Höhe machen.
    Wenn du eine Beispielmappe mit 2 oder 3 Bildern hochlädst, könnte ich den Code für diese Bilder schreiben - den Rest kannst du dann einfach entsprechend erweitern.


    Grafiken per VBA in Excel zentrieren grusz.gif
     
    Beverly, 27. April 2015
    #4
  5. Hier mal ne kleine Beispielmappe. Danke schon mal im voraus für deine Hilfe
     
    Caro99829, 28. April 2015
    #5
  6. Beverly
    Beverly Erfahrener User
    Weshalb benutzt du das Worksheet_Calculate-Ereignis? Wenn ich dein Vorhaben richtig interpretiere, soll das betreffende Bild doch nur dann eingefügt werden, wenn in Tabelle "Abfrage" in den Gültigkeitszellen etwas ausgewählt wird? Dazu musst du doch nicht jedemal alle Bilder löschen und neu einfügen - das gibt nämlich ein Problem mit dem Poisitionieren, da Excel keine ausreichende Zeit dazu hat. Besser wäre es doch, den Weg andersherum zu gehen - nur das Bild auf den verbundenen Zellen zu löschen und das gewünschte dann dort einzufügen. Oder habe ich dein Ziel falsch verstanden?


    Grafiken per VBA in Excel zentrieren grusz.gif
     
    Beverly, 28. April 2015
    #6
  7. Ich habe leider relativ wenig (bis gar keine) ahnung von vba und hab mir das ganze aus Vorlagen zusammengebastelt. Ziel ist es, dass das zur Dropdownauswahl zugehörige bild zentriert im Ausgabebereich erscheint. Wie das zustande kommt ist mir egal, hauptsache es funktioniert.*Smilie
     
    Caro99829, 28. April 2015
    #7
  8. Beverly
    Beverly Erfahrener User

    Grafiken per VBA in Excel zentrieren

    Hier der auf deine hochgeladene Arbeitsmappe zugeschnittene Code:

    Code:
    Grafiken per VBA in Excel zentrieren grusz.gif
     
    Beverly, 28. April 2015
    #8
  9. Super, vielen Dank. Da hast du mir schon mal erheblich weitergeholfen*Smilie. Aber wie kann ich den Code auf weitere Dropdowns/Bilder anpassen? Könntest du mir vll n bisschen erläutern wie du die einzelnen Sachen ansprichst bzw. wie der Code im einzelnen funktioniert?
     
    Caro99829, 28. April 2015
    #9
  10. Beverly
    Beverly Erfahrener User
    Der Code prüft zuerst, ob die Zelle eine Gültigkeitszelle ist, in der eine Eingabe erfolgt. Wenn ja, dann wird mit Set rngBereich = ... der Zellbereich 3 Spalten rechts der betreffenden Gültigkeitszelle bis 6 Spalten rechts und 11 Zeilen unter der Gültigkeitszelle auf die Variable geschrieben, sodass man später dann auf diesen Berech zugreifen kann. Danach wird in einer Schleife über alle vorhandenen Bilder gelaufen und geprüft, ob die linke obere Ecke in diesem Bereich liegt - wenn ja, dann Bild löschen und die Suchschleife verlassen.
    In der Zeile Set PicBild... wird das Bild mit Namen des ausgewählten Inhalt der Gültigkeitszelle auf die Variable geschrieben - On Error Resume Next ist dabei erforderlich, falls es das Bild nicht gibt. Wenn es das Bild gibt und diese Codezeile keinen Fehler ausgelöst hat, dann dieses Bild kopieren und einfügen und den Zellbereich leeren (falls vorher Text stand).
    Mit der Zeile With ActiveSheet.Pictures(ActiveSheet.Pictures.Count) kann man dann auf das zuletzt eingefügte Bild zugreifen und seine Position festlegen.
    Falls das Bild nicht vorhanden ist und beim Schreiben auf die Variable picBild einen Fehler ausgelöst hat, dann in den Bereich rngBereich den Text schreiben.

    Der Code gilt also für alle Zellen, die eine Gültigkeitsliste enthalten und das Bild wird immer in den Bereich 3 - 6 Spalten rechts und bis 11 Zeilen unterhalb der Gültigkeitszelle mittig angeordnet.


    Grafiken per VBA in Excel zentrieren grusz.gif
     
    Beverly, 28. April 2015
    #10
  11. Hm, das ist natürlich der eleganteste Weg. Nur sind in meiner Arbeitsmappe die Bereiche in denen das Bild eingefügt werden soll nicht immer gleich groß und ändern wäre echt blöd, da es mir sonst andere makros zerschießt bzw. ich wieder formeln etc ändern muss.

    Gibt es eine Möglichkeit die Bereiche, in die Bilder sollen jeweils einzeln zu zuweisen? Und habe ich das richtig verstanden, dass nur die Dropdownlisten angesprochen werden in denen die Bildernamen stehen? (ich hab nämlich noch andere dropdownlisten zu denen keine bilder gehören)

    Nochmals vielen Dank, dass du dir die Mühe machst
     
    Caro99829, 28. April 2015
    #11
  12. Beverly
    Beverly Erfahrener User
    Es wäre besser gewesen, wenn du eine Arbeitsmappe hochgeladen hättest, die den tatsächlichen Bedingungen entspricht - Codes werden in den meisten Fällen ganz konkret für die vorliegenden Bedingungen geschrieben.

    - um wie viele Gültigkeitszellen für die Bilder handelt es sich? Welche Zellen sind dies?
    - welche verbundenen Zellen gehören zu welchen Gültigkeitszellen?


    Grafiken per VBA in Excel zentrieren grusz.gif
     
    Beverly, 29. April 2015
    #12
  13. Grafiken per VBA in Excel zentrieren

    So, ich hab jetzt nochmal ne Arbeitsmappe erstellt, die den exakten Bedingungen entspricht. Je nachdem was in den blauen Dropdownlisten ausgewählt wird erscheint unterhalb in den roten Zellen ein Name.

    Die Bilder mit diesem Namen (siehe rote Zellen) sollen in den gelben Bereich unterhalb der zugehörigen Dropdowns eingefügt und zentriert werden. Das ganze brauch ich nur für diese Zellen, sonst nicht. Ach ja, ich habe die exakten Zellenkoordinaten (ab zeile 73) verwendet, also n bisschen runterscrollen*Smilie .

    Vielen Dank für die Hilfe.
     
    Caro99829, 30. April 2015
    #13
  14. Beverly
    Beverly Erfahrener User
    Der Code geht jetzt davon aus, dass die relevanten Gültigkeitszellen mit blassblauer Füllfarbe formatiert sind:

    Code:
    Beachte bitte unbedingt, dass deine Bilder anders heißen als die Zellinhalte, z.B. Zellinhalt Kartonage_KLT, Bild KLT_Kartonage - so können die Bilder nicht gefunden werden
     
    Beverly, 30. April 2015
    #14
  15. Hallo,

    in 'Einstellungen' die DropDown- und BildContainer - Adressen eintragen.
     
Thema:

Grafiken per VBA in Excel zentrieren

Die Seite wird geladen...
  1. Grafiken per VBA in Excel zentrieren - Similar Threads - Grafiken VBA Excel

  2. VBA Grafik in E-Mail einfügen

    in Microsoft Excel Hilfe
    VBA Grafik in E-Mail einfügen: Hallo zusammen, ich habe mir in verschiedenen Foren einen VBA-Code zusammengesucht, angepasst und entsprechend nutze ich diesen jetzt auch. Hierzu hätte ich jetzt zwei Fragen: 1. Grafik wird...
  3. Grafik mit VBA in anderes Tabellenblatt kopieren

    in Microsoft Excel Hilfe
    Grafik mit VBA in anderes Tabellenblatt kopieren: Hallo Leute, hab hier ein Code gefunden mit dem man Grafiken kopieren kann. Leider komm ich nicht weiter damit. Ich möchte die Grafik in der Zelle "AC10" vom Blatt "Kundentabelle" kopieren und im...
  4. VBA: Name von Grafik im Direktfenster / bestimme Grafiken löschen

    in Microsoft Excel Hilfe
    VBA: Name von Grafik im Direktfenster / bestimme Grafiken löschen: Hallo, ich suche den Befehl, wie ich den Namen von Grafiken im Direktfenster auslesen kann? Bei Diagramme funktioniert das so:?activechart.name (in Direktfenster eingeben, Diagramm auswählen, im...
  5. Grafik per VBA "in den Hintergrund"

    in Microsoft Excel Hilfe
    Grafik per VBA "in den Hintergrund": Hallo, ich hab mal wieder ein kleines VBA Problem: Ich Füge mit folgenden Code eine Grafik in ein Tabellenblatt Sub Grafikeinfuegen() Dim p As Picture Dim strbildverzeichnis As String Dim...
  6. Sverweis mit Grafik ohne VBA

    in Microsoft Excel Hilfe
    Sverweis mit Grafik ohne VBA: Guten Morgen zusammen, habe zu meinem Thema von gestern ein Beispiel hochgeladen, vielleicht versteht man mich so besser, was ich als Vorlage habe und was ich eigentlich erreichen möchte. Bekomm...
  7. Grafik auf mehrere Arbeitsblätter kopieren

    in Microsoft Excel Hilfe
    Grafik auf mehrere Arbeitsblätter kopieren: Hallo zusammen, ich habe eine Excel Datei mit 9 Arbeitsblättern. Ich möchte auf dem ersten Arbeitsblatt ein Bild in Zelle J1 einfügen. Dieses Bild soll dann auf den Arbeitsblättern 2-7...
  8. Grafik per Dropdown auswählen

    in Microsoft Excel Hilfe
    Grafik per Dropdown auswählen: Guten Abend, ich habe vier Symbole, die einen unterschiedlichen Prozessfortschritt darstellen sollen. Diese Symbole sind in Zelle A1:A4 eingefügt. Jetzt möchte ich gerne, dass wenn ich in eine...
  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