Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1100to1104
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

Bilder tauschen

Bilder tauschen
Gunter
Hallo Zusammen,
ich komme leider doch nicht weiter, da ich zu wenig Ahnung mit Objecten habe. Ich möchte auf zwei Tabellen prüfen ob ein Bild vorhanden ist und wenn soll "Picture1" gelöscht werden und dafür "Picture43" an diese Stelle gesetzt werden. Anschliessend wird das ganze gespeichert und geschlossen. Es funktioniert auch vom Prinzip, nur an der Stelle "If o "" Then" muss es wohl mit einem Object anders heissen.
Private Sub CommandButton2_Click()
Dim Quelldatei As String
Dim i As Integer
Dim o As Object
Dim strVerzeichnis$, strDatei$
Application.ScreenUpdating = False
For i = 4 To 97
ActiveSheet.Shapes("Picture 43").Select
Selection.CopyPicture
Quelldatei = Tabelle1.Cells(i, 1)
Workbooks.Open Filename:=Quelldatei
On Error GoTo Errorhandler
Worksheets("Kopie Lfr.schein deutsch").Activate
Set o = Sheets(1).Pictures("Picture 1")
If o  "" Then
ActiveSheet.Shapes("Picture 1").Select
Selection.Delete
Application.Goto Worksheets("Kopie Lfr.schein deutsch").Range("A1")
ActiveCell.Offset(0, 0).Range("A1").Activate ' "" Then
ActiveSheet.Shapes("Picture 1").Select
Selection.Delete
Application.Goto Worksheets("Kopie Lfr.schein franz.").Range("A1")
ActiveCell.Offset(0, 0).Range("A1").Activate '

Man kann das sicher anders und besser programmieren, aber so sehen meine Möglichkeiten im Moment aus. Für zweckdienliche Hinweise herzlichen Dank.
Gruss
Gunter

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
If Not o Is Nothing Then
18.09.2009 15:34:34
Kawensmann
owT
AW: Bilder tauschen
18.09.2009 15:35:43
fcs
Hallo Gunter,
Objekte kann man mit
If Objekt Is Nothing Then 'der Variablen ist kein Objekt zugewiesen
oder
If Not Objekt Is Nothing Then 'der Variablen ist ein Objekt zugewiesen
überprüfen.
In deinem Fall scheint mir die Prüfung überflüssig, denn wenn Sheets(1).Pictures("Picture 1")
nicht existiert, dann kommt es eh zu einem Fehler und die Prozedur springt nach "Errorhandler".
Wenn du prüfen willst, ob ein Objekt mit einem bestimmten Namen vorhanden ist mus du anders vorgehen.
    For Each o In Sheets(1).Pictures
If o.Name = "Picture 1" Then
Exit For
End If
Next
If Not o Is Nothing Then

Gruß
Franz
Anzeige
AW: Bilder tauschen
18.09.2009 16:12:02
Gunter
Hallo Franz und Kawensmann,
vielen Dank für eure Hife, ich habe das jetzt so abgeändert,
Worksheets("Kopie Lfr.schein deutsch").Activate
Set o = Sheets("Kopie Lfr.schein deutsch").Pictures("Picture 1")
If Objekt Is Nothing Then
Worksheets("Kopie Lfr.schein franz.").Activate
Set o = Sheets("Kopie Lfr.schein franz.").Pictures("Picture 1")
ActiveSheet.Shapes("Picture 1").Select
Selection.Delete
ActiveCell.Offset(0, 0).Range("A1").Activate '--- die Position wo es hinsoll
ActiveSheet.Paste
End If
aber erhalte eine Fehlermeldung, dass die Eigenschaft nicht zugeordnet werden kann. Das heisst, wenn das Bild nicht da ist aktiviert er nicht das Worksheet("Kopie Lfr.schein franz."), was ich aber gern möchte.
Für weitere Unterstützung herzlichen Dank
Gruss
Gunter
Anzeige
AW: Bilder tauschen
18.09.2009 16:35:08
Luschi
Hallo Gunter,
statt
If Objekt Is Nothing Then
muß es heißen
If o Is Nothing Then
denn Du hast ja zuvor mit
Set o = Sheets("Kopie Lfr.schein franz.").Pictures("Picture 1")
versucht, der Objekt-Variablen 'o' ein vorhandenes Bild (Objekt) zuzuordnen.
Gruß von Luschi
aus klein-Paris
AW: Bilder tauschen
18.09.2009 16:47:51
Gunter
Hallo Luschi,
da hast du natürlich vollkommen Recht. Ich hab das geändert es kommt beim debuggen aber immer noch die Fehlermeldung "Die Picture-Eigenschaft des Worksheet Objektes kann nicht zugeordnet werden. Er geht von "Set o = Sheets("Kopie Lfr.schein deutsch").Pictures("Picture 1")" einfach nicht zu "If o Is Nothing Then". Für weiteren "Beistand" herzlichen Dank.
Gruss
Gunter
Anzeige
AW: Bilder tauschen
18.09.2009 17:37:35
fcs
Hallo Gunter,
ich hatte dir ja schon geschrieben, dass du automatisch eine Fehlermeldung kriegst, wenn das entsprechende Bild nicht vorhanden ist und du anders prüfen muss.
Hier mal dein Makro angepasst.
Gruß
Franz
Private Sub CommandButton2_Click()
Dim Quelldatei As String
Dim i As Integer
Dim o As Object
Dim strVerzeichnis$, strDatei$
Application.ScreenUpdating = False
For i = 4 To 97
ActiveSheet.Shapes("Picture 43").Select
Selection.CopyPicture
Quelldatei = Tabelle1.Cells(i, 1)
Workbooks.Open Filename:=Quelldatei
On Error GoTo Errorhandler
Worksheets("Kopie Lfr.schein deutsch").Activate
For Each o In Sheets(1).Pictures
If o.Name = "Picture 1" Then
Exit For
End If
Next
If o Is Nothing Then
MsgBox """Picture 1"" gibt es in Sheets(1) nicht!!"
Else
ActiveSheet.Shapes("Picture 1").Select
Selection.Delete
Application.Goto Worksheets("Kopie Lfr.schein deutsch").Range("A1")
ActiveCell.Offset(0, 0).Range("A1").Activate '

Anzeige
AW: Bilder tauschen
18.09.2009 18:29:02
Gunter
Hallo Franz,
vielen Dank nochmal für deine Hilfe und Geduld. Ich wollte aber diese Meldungen nicht unbedingt haben, sei's drum jetzt funktioniert die Sache wie ich es mir vorgestellt habe.
Gruss
Gunter

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige