Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Excel
  Grafik mit VBA absolut positionieren

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:  Grafik mit VBA absolut positionieren (12514 mal gelesen)
MatthiasB
Mitglied
Technische Berechnung


Sehen Sie sich das Profil von MatthiasB an!   Senden Sie eine Private Message an MatthiasB  Schreiben Sie einen Gästebucheintrag für MatthiasB

Beiträge: 145
Registriert: 15.10.2003

Ansys 16, CATIA V5 R21
Dell Precision T3600

erstellt am: 23. Sep. 2010 15:48    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities


Hallo Zusammen,

ich habe noch n'Problem, zu dem ich mit der Suche nicht die passende Lösung finde:

Ich öffne per VBA eine Grafik aus einer Datei (das krieg ich ja noch hin).
Diese möchte ich jetzt nach Möglichkeit absolut Positionieren, am liebsten über Angabe der Seitennummer, wenn das nicht geht über Zellen oder über den Abstand.

Vielen Dank im Voraus
Matthias

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Paulchen
Mitglied
Bauing./SW-Entwickler


Sehen Sie sich das Profil von Paulchen an!   Senden Sie eine Private Message an Paulchen  Schreiben Sie einen Gästebucheintrag für Paulchen

Beiträge: 1227
Registriert: 19.08.2004

Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice

erstellt am: 23. Sep. 2010 16:16    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für MatthiasB 10 Unities + Antwort hilfreich

Hallo MatthiasB,

hm - habe auch keine passende Lösung, nur ein paar Gegenfragen: (Bitte nicht falsch auffassen, ich möchte lediglich die Fragestellung richtig verstehen.)

1. Was genau hast Du vor?
2. Warum soll die Grafik auf einer bestimmten Seite stehen?
3. Bist Du sicher, das Excel das richtige Werkzeug ist?
4. Was tust Du, wenn sich Dein Druckbereich in Excel ändert oder jemand filtert oder Zeilen ausblendet oder was-weiß-ich-was-dem-User-einfällt?
5. Was kommt vor und nach der Grafik (im Ausdruck)?

------------------
DIN1055.de  |  Lastannahmen für Anwender NEU: Foren zu DIN 1055

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

MatthiasB
Mitglied
Technische Berechnung


Sehen Sie sich das Profil von MatthiasB an!   Senden Sie eine Private Message an MatthiasB  Schreiben Sie einen Gästebucheintrag für MatthiasB

Beiträge: 145
Registriert: 15.10.2003

erstellt am: 23. Sep. 2010 16:40    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Paulchen,

Zu 1.
Ich möchte eine automatisierte Auswertung erstellen lassen mit einer variablen Anzahl von Bildern aus einer Datei

Zu 2.
Ich denke es wäre für mich einfacher die Bilder über die Seitennummer zu positionieren, das ist aber nicht zwingend.

Zu 3.
Ja ich bin sicher, denn im Hintergrund, also auf andern Mappen möchte ich noch diverse Tabellen und Diagramme erstellen.

Zu 4.
In dieser Auswertung wird niemand etwas ändern dürfen. Nach der Fertigstellung werde ich ein PDF erzeugen. Von daher ist das kein Problem.

Zu 5.
Vor und nach der Grafik kommen noch eine paar Zeilen Text, oder ggf. ein Diagramm. Aber auch das lege ich fest (ich bin quasi der Masterchief und kein anderer hat da was zu ändern  )

Vielen Dank für Deine Antwort.
Bin gespannt was du mir empfehelen kannst.

Gruß
Matthias

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Beverly
Mitglied
Dipl.-Geologe (Rentner)


Sehen Sie sich das Profil von Beverly an!   Senden Sie eine Private Message an Berverly  Schreiben Sie einen Gästebucheintrag für Berverly

Beiträge: 394
Registriert: 11.08.2007

erstellt am: 24. Sep. 2010 10:04    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für MatthiasB 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von MatthiasB:

Diese möchte ich jetzt nach Möglichkeit absolut Positionieren, am liebsten über Angabe der Seitennummer, wenn das nicht geht über Zellen oder über den Abstand.

Woher weiß Excel denn, auf welche Seite welches Bild eingefügt werden soll, da ja alles automatisch ablaufen soll? Ist die Seitenreinrichtung bei allen Seiten identisch? Gibt es unterschiedliche Zeilenhöhen auf den einzelnen Seiten?

------------------
Bis später,
Karin

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

MatthiasB
Mitglied
Technische Berechnung


Sehen Sie sich das Profil von MatthiasB an!   Senden Sie eine Private Message an MatthiasB  Schreiben Sie einen Gästebucheintrag für MatthiasB

Beiträge: 145
Registriert: 15.10.2003

Ansys 16, CATIA V5 R21
Dell Precision T3600

erstellt am: 24. Sep. 2010 10:06    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Karin,

ja die Seiten sind alle gleich groß, denn ich verwende Excel zum erstellen einer Auswertung.

Meinst Du dass könnte gehen?

Gruß
Matthias

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Beverly
Mitglied
Dipl.-Geologe (Rentner)


Sehen Sie sich das Profil von Beverly an!   Senden Sie eine Private Message an Berverly  Schreiben Sie einen Gästebucheintrag für Berverly

Beiträge: 394
Registriert: 11.08.2007

erstellt am: 24. Sep. 2010 10:12    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für MatthiasB 10 Unities + Antwort hilfreich

Hi Matthias,

in VBA ist sehr vieles möglich  , aber so lange niemand weiß, wie und wo festgelegt ist, welches Bild auf welche Seite eingefügt werden soll, kann auch niemand etwas zum OB und zum WIE sagen.

------------------
Bis später,
Karin

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

MatthiasB
Mitglied
Technische Berechnung


Sehen Sie sich das Profil von MatthiasB an!   Senden Sie eine Private Message an MatthiasB  Schreiben Sie einen Gästebucheintrag für MatthiasB

Beiträge: 145
Registriert: 15.10.2003

Ansys 16, CATIA V5 R21
Dell Precision T3600

erstellt am: 24. Sep. 2010 10:19    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

OK Sorry,

meine Antwort vorher war etwas kurz.

Ich habe eine Datei mit Abbildungen aus einem Berechungsprogramm. Nun will ich ein Bild nach dem anderen ins Excel übernehmen. Jedes Bild soll auf eine einzelne Seite. Je nach dem Dateinamen des Bildes wird die Reihenfolge festgelegt, d.h. ich möchte festlegen auf welche Seite das jeweilige Bild kommt. Ich kann das natürlich auch über die Zellennummern machen. Da es aber mehere Bilder sein könne (auch mal 50 und mehr) dachte ich hakt es ist einfacher die Sache über Seitennummern zu machen.

Ich hoffe das klärt die offenen Punkte.

Gruß

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Beverly
Mitglied
Dipl.-Geologe (Rentner)


Sehen Sie sich das Profil von Beverly an!   Senden Sie eine Private Message an Berverly  Schreiben Sie einen Gästebucheintrag für Berverly

Beiträge: 394
Registriert: 11.08.2007

erstellt am: 24. Sep. 2010 11:06    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für MatthiasB 10 Unities + Antwort hilfreich

Hi Matthias,

das ist zwar schon etwas ausführlicher, aber du musst bedenken, dass nur du allein deine genauen Bedingungen kennst. Wenn ich das richtig verstanden habe, befinden sich in der Datei nicht die Bilder selbst, sondern die Dateinamen der Bilder sind aufgelistet? Sind die Speicherordner der Bilder ebenfalls aufgelistet oder befinden sich die Bilder alle in dem selben Ordner?

Angenommen die Bildnamen ohne Ordnernamen stehen in Spalte A, die Bilder liegen alle im Ordner C:\Test und sie sollen jeweils in Spalte B ganz oben am Seitenrand eingefügt werden, dann ginge das z.B. mit folgendem prinzipiellen Code:

Code:
Sub BilderEinfuegen()
    Dim picBild As Picture
    Dim lngZeile As Long
    Dim lngZaehler As Long
    lngZaehler = 1
    For lngZeile = 1 To IIf(IsEmpty(Cells(Rows.Count, 1)), Cells(Rows.Count, 1).End(xlUp).Row, Rows.Count)
        Set picBild = ActiveSheet.Pictures.Insert("C:\Test\" & Cells(lngZeile, 1))
        picBild.Top = Cells(lngZaehler, 2).Top
        lngZaehler = lngZaehler + 56 '<== Zahl an deinen Seitenumbruch anpassen
    Next lngZeile
    Set picBild = Nothing
End Sub

------------------
Bis später,
Karin

[Diese Nachricht wurde von Beverly am 24. Sep. 2010 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

MatthiasB
Mitglied
Technische Berechnung


Sehen Sie sich das Profil von MatthiasB an!   Senden Sie eine Private Message an MatthiasB  Schreiben Sie einen Gästebucheintrag für MatthiasB

Beiträge: 145
Registriert: 15.10.2003

Ansys 16, CATIA V5 R21
Dell Precision T3600

erstellt am: 24. Sep. 2010 11:24    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hi Karin,

vielen Dank erstmal.

Du hast mich fast richtig verstanden.
Jedes Bild ist in einer einzelnen Datei, die Dateien sind alle in einem Ordner (und zwar immer im gleichen). Die Dateinamen der Bilder sind allerdings nicht immer gleich. Sie haben am Anfang eine Nummer und nach einem Underline kommen noch zwei Buchstaben, die festlegen um was für ein Bild es sich handelt (das steuert nacher die Bildüber- und die Bildunterschriften).

Vieleicht kannst Du mir uch noch sagen wie ich am elegantesten die Dateinamen in eine Variable kriege. Das ist auch noch so ein Thema.

Vielen Dank schonmal

Matthias

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Paulchen
Mitglied
Bauing./SW-Entwickler


Sehen Sie sich das Profil von Paulchen an!   Senden Sie eine Private Message an Paulchen  Schreiben Sie einen Gästebucheintrag für Paulchen

Beiträge: 1227
Registriert: 19.08.2004

Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice

erstellt am: 24. Sep. 2010 12:23    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für MatthiasB 10 Unities + Antwort hilfreich

Hallo,

ich dachte, das "klappt bereits" ? Guck' doch bitte zu dieser Fragestellung in die Suchfunktion hier auf CAD.de, Suchbegriff z. B. bild einfügen vba. Da findest Du beispielsweise diesen oder auch jenen Beitrag.

Zum Thema Dateinamen einlesen (nicht zwingend nur Bilder, denn der Zeichenkette ist's egal, wofür sie steht) gibt es sicher hier schon so manchen Artikel...

------------------
DIN1055.de  |  Lastannahmen für Anwender NEU: Foren zu DIN 1055

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Beverly
Mitglied
Dipl.-Geologe (Rentner)


Sehen Sie sich das Profil von Beverly an!   Senden Sie eine Private Message an Berverly  Schreiben Sie einen Gästebucheintrag für Berverly

Beiträge: 394
Registriert: 11.08.2007

erstellt am: 24. Sep. 2010 16:03    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für MatthiasB 10 Unities + Antwort hilfreich

Hi Matthias,

sorry, aber irgendwie habe ich Probleme, mit deinen Fragestellungen zurecht zu kommen, denn mit "fast richtig" kann ich nichts anfangen. Es wäre schon sehr hilfreich, wenn du auch für einen Außenstehenden verständlich und nachvollziehbar beschreiben würdest, was nicht richtig funktioniert und welche genauen Bedingungen bei dir vorliegen - ich lehne es nämlich ab, übers Internet auf fremde Rechner zu schauen. 

Also ist es so, dass die Bildnamen nicht im Tabellenblatt stehen sondern direkt aus dem Ordner ausgelesen werden sollen? Es sollen alle Bilder dieses Ordners eingefügt werden?

------------------
Bis später,
Karin

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

MatthiasB
Mitglied
Technische Berechnung


Sehen Sie sich das Profil von MatthiasB an!   Senden Sie eine Private Message an MatthiasB  Schreiben Sie einen Gästebucheintrag für MatthiasB

Beiträge: 145
Registriert: 15.10.2003

Ansys 16, CATIA V5 R21
Dell Precision T3600

erstellt am: 27. Sep. 2010 08:16    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Zusammen,

@Paulchen:
Ich habe die hilfe bemüht, aber zu meinem Problem leider nichts gefunden.

@Karin:
Genau so habe ich das gemeint.
Die Dateien stehen alle in einem Ordner und sollen alle in meine Tabelle. Allerdings in einer speziellen Reihenfolge. Dazu möchte ich sie in ein Feld einlesen und sortieren, um sie dann alle in der richtigen Reihenfolge zu öffnen und einzufügen. Das sortieren soll über die Namen der Dateien laufen, da es spezielle Konventionen gibt für die Benennung der Bilder.


Gruß
Matthias

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Beverly
Mitglied
Dipl.-Geologe (Rentner)


Sehen Sie sich das Profil von Beverly an!   Senden Sie eine Private Message an Berverly  Schreiben Sie einen Gästebucheintrag für Berverly

Beiträge: 394
Registriert: 11.08.2007

erstellt am: 27. Sep. 2010 09:12    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für MatthiasB 10 Unities + Antwort hilfreich

Hi Matthias,

mit folgendem Code werden alle JPG-Dateien eines definierten Verzeichnisses in das Tabellenblatt geschrieben:

Code:
Sub DateienAuflisten()
    Dim strDateiname As String
    Dim lngZeile As Long
    Application.ScreenUpdating = False
    strDateiname = Dir("C:\Test\*.jpg")
    lngZeile = 1
    With ThisWorkbook.Worksheets("Tabelle1")
        Do While strDateiname <> ""
            .Cells(lngZeile, 1) = strDateiname
            strDateiname = Dir
            lngZeile = lngZeile + 1
        Loop
    End With
    Application.ScreenUpdating = True
End Sub


Anschließend kannst du sie sortieren und danach mit dem bereits geposteten Code einfügen.

------------------
Bis später,
Karin

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

MarkusK
Mitglied



Sehen Sie sich das Profil von MarkusK an!   Senden Sie eine Private Message an MarkusK  Schreiben Sie einen Gästebucheintrag für MarkusK

Beiträge: 130
Registriert: 09.08.2002

HP ZBook 15 G2
Intel i7-4810MQ 8-Core
32 GB Ram
NVIDIA Quadro K2100M
Win 7
Catia V5R24 SP4

erstellt am: 30. Sep. 2010 16:15    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für MatthiasB 10 Unities + Antwort hilfreich

Hallo MatthiasB,

man kann über die "Seitenumbrüche" sich die Anzahl der Seiten und die entsprechende Zelle ermitteln.

Der Code von unten ermittelt wieviele Umbrüche Horizontal und Vertikal vorhanden sind.
Danach wird die Anzahl Seiten ermittelt, und abgefragt auf welcher du das Bild haben möchtest
Über die Anzahl der Ümbrüche (horizontal und Vertikal) kann dann
die entsprechende Zelle ermittelt werden, in der dann das Bild eingefügt wird.

Den Ordner- und Dateiname musst du noch anpassen.


Sub Makro2()
Dim anzH As Long, H As Long
Dim AnzV As Long, V As Long
Dim AnzSeiten As Long
Dim Seite As Long
Dim picBild As Picture
Dim r As Range

anzH = ActiveSheet.HPageBreaks.Count
AnzV = ActiveSheet.VPageBreaks.Count
AnzSeiten = (anzH + 1) * (AnzV + 1)

Seite = InputBox("bitte Seite eingeben (max. " & AnzSeiten & ")")
If Int(Seite) > 0 And Int(Seite) <= AnzSeiten Then
   
    H = (Seite - 1) Mod (anzH + 1)
    V = Fix((Seite - 1) / (anzH + 1))


    Set picBild = ActiveSheet.Pictures.Insert("C:\tmp\bilder\16WZ15.jpg")
    Set r = Cells(ActiveSheet.HPageBreaks(H).Location.Row, ActiveSheet.VPageBreaks(V).Location.Column)
    picBild.Top = r.Top
    picBild.Left = r.Left
    Set picBild = Nothing
    Set r = Nothing
End If

End Sub

------------------
Gruss Markus

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

MatthiasB
Mitglied
Technische Berechnung


Sehen Sie sich das Profil von MatthiasB an!   Senden Sie eine Private Message an MatthiasB  Schreiben Sie einen Gästebucheintrag für MatthiasB

Beiträge: 145
Registriert: 15.10.2003

erstellt am: 01. Okt. 2010 08:02    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Markus,
vielen Dank für Deine Hilfe.
Ich werds gleich mal ausprobieren.

Gruß
Matthias

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz