Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
252to256
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
252to256
252to256
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Slid Show

Slid Show
11.05.2003 10:06:03
IVAN MARTINOV
hi alle
wie kann ich eine slide show erzeugen??
ich habe eine arbeitsmappe mit bildern und jedes bild hat einen link dazu.wenn ich auf das bild klicke sehe ich dann die vergrößerung im html format.
wie kann ich das per vba aus in einem 10 sekunden-takt automatisch einblenden??
IVAN

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Slid Show
11.05.2003 10:11:17
Forum

Hallo Ivan

mal als Ansatz

Gruß Hajo

Der Code wurde getestet unter Betriebssystem XP Pro und Excel Version XP SBE.
Bitte kein Mail, Probleme sollen im Forum gelöst werden.

Microsoft MVP für Excel

Re: Slid Show
11.05.2003 10:33:26
IVAN MARTINOV

hi hayo
danke super es funkt.
nur ich bekomme wenn das letzte bild gezeigt wurde
laufzeitfehler 1004
bild eigenschaft konnte nich zugeordnet werden!
und noch ne frage bei mir wird das verzeichniss in einem verzeivhnissbaum aufgerufen wo ich den ort der dateien immer auswählen kann wie kann ich das noch in deiner version ändern
das immer das ausgewählte verzeichniss dargestellt wird.
hier der code.

Sub bilddateien_lesen()
Application.ScreenUpdating = False

Dim strInitialDir As String, strPath As String
Dim sFile As String, sPattern As String, sPath As String
Dim iRow As Integer
Columns(1).ClearContents
sPath = BrowseDirectory()
If sPath = "" Then Exit Sub
'einlesen
If Right(sPath, 1) <> "\" Then sPath = sPath & "\"
sPattern = "*.*"
Dim ordner As String
Dim oBilder As Worksheet
Dim FS As FileSearch
Dim sName As String
'Name des Bildauswahlblattes
sName = "Ohne Namen"

'ORDNER DURCHSUCHEN
'FileSearch definieren
Set FS = Application.FileSearch
With FS
.NewSearch
.LookIn = sPath
.SearchSubFolders = True
.FileType = msoFileTypeAllFiles
.Execute

End With

'BLATT ERSTELLEN UND EINRICHTEN
On Error GoTo fehler
Set oBilder = Worksheets.Add
oBilder.Name = sName
'Blattkopf
oBilder.Cells(1, 1).Value = "Bilder aus " & sPath
oBilder.Cells(2, 1).Value = "Vorschau"
oBilder.Cells(2, 2).Value = "Link"
With oBilder.Cells(1, 1).Font
.Bold = True
.Size = .Size + 4
End With
With oBilder.Range(Cells(2, 1), Cells(2, 2)).Font
.Bold = True
.Size = .Size + 2
End With

'DATEIEN AUS ORDNER EINLESEN
On Error GoTo 0
Dim iZeile As Integer
iZeile = 3
For I = 1 To FS.FoundFiles.Count
'Vereinbarung der Typen, die gesucht werden können
If FS.FoundFiles(I) Like "*.*" Then

'Festsetzung von Bild- und Zeilenhöhe
oBilder.Rows(iZeile).RowHeight = 150
'Text vertikal mittig in Zeile
oBilder.Rows(iZeile).VerticalAlignment = xlVAlignCenter
'gefundenes Bild einfügen und Höhe auf Zeilenhöhe setzen
oBilder.Cells(iZeile, 1).Select
ActiveSheet.Pictures.Insert(FS.FoundFiles(I)).Select
With Selection.ShapeRange
.LockAspectRatio = msoTrue
.Height = 150
oBilder.Hyperlinks.Add Anchor:=.Item(1), Address:=FS.FoundFiles(I)
End With
'maximale Breite merken
If Selection.ShapeRange.Width > maxWidth Then _
maxWidth = Selection.ShapeRange.Width
'Hyperlink mit Dateinamen in Spalte B
oBilder.Hyperlinks.Add Anchor:=oBilder.Cells(iZeile, 2), _
Address:=FS.FoundFiles(I), _
TextToDisplay:=FS.FoundFiles(I), _
ScreenTip:="Hier klicken, um das Bild anzuzeigen ..."
'Zeilenzähler hochsetzen
iZeile = iZeile + 2
End If
Next
'Breite der 1. Spalte auf max. Breite, der 2. Spalte auf optimale Breite
maxWidth = maxWidth * oBilder.Columns(1).ColumnWidth / _
oBilder.Columns(1).Width + 5
If maxWidth > 255 Then maxWidth = 255
oBilder.Columns(1).ColumnWidth = maxWidth
oBilder.Columns(2).AutoFit
oBilder.Cells(3, 1).Select

Exit Sub

fehler:

If Err.Number = 1004 Then sName = sName & "_": Resume


Application.ScreenUpdating = True


End Sub
vielen dank ivan




Anzeige
Re: Slid Show
11.05.2003 10:42:47
Forum

Hallo Ivan

kann es sein das ich meinen Codeteil in Deinem Code nicht finde???

Mein code läuft bis zum Ende ohne Fehlermeldung. Der Code ist aus meiner Anfangszeit und noch mit Select. Aber ich habe dies noch nicht überarbeitet da zu selten Benutzt.

Mein Excel kennt den Befehl BrowseDirectory() nicht.

Gruß Hajo

Der Code wurde getestet unter Betriebssystem XP Pro und Excel Version XP SBE.
Bitte kein Mail, Probleme sollen im Forum gelöst werden.

Microsoft MVP für Excel

Re: Slid Show
11.05.2003 10:53:27
IVAN MARTINOV

hi
sPath = BrowseDirectory()
benötigt extra noch ein ganz normales modul!


Private Declare Function SHBrowseForFolder Lib "shell32" _
(lpbi As BROWSEINFO) As Long
Private Declare Function SHGetPathFromIDList Lib "shell32" _
(ByVal pidList As Long, ByVal lpBuffer As String) As Long
Private Declare Sub CoTaskMemFree Lib "ole32.dll" (ByVal pv As Long)
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" _
(ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, _
lParam As Any) As Long
Private Declare Function SHSimpleIDListFromPath Lib "shell32" Alias "#162" _
(ByVal szPath As String) As Long
Private Const BIF_RETURNONLYFSDIRS As Long = 1
Private Const BIF_DONTGOBELOWDOMAIN As Long = 2
Private Const BFFM_INITIALIZED As Long = 1
Private Const MAX_PATH As Long = 260
Private Const WM_USER As Long = &H400
Private Const BFFM_SETSTATUSTEXTA As Long = (WM_USER + 100)
Private Const BFFM_SETSELECTIONA As Long = (WM_USER + 102)
Private Const BFFM_SETSELECTIONW As Long = (WM_USER + 103)
Private Const BFFM_SETSTATUSTEXTW As Long = (WM_USER + 104)
Private Type BROWSEINFO
hwndOwner As Long
pidlRoot As Long
pszDisplayName As String
lpszTitle As String
ulFlags As Long
lpfnCallback As Long
lParam As Long
iImage As Long
End Type

' Callback für die Browse-Directory-Methode - "pidList"-Methode
' zur Verwendung in der BrowseDirectory()-Funktion
Private Function BrowseCallBackProc(ByVal hWnd As Long, _
ByVal uMsg As Long, ByVal lParam As Long, _
ByVal lpData As Long) As Long
'Voreinstellung des Verzeichnisses im Verzeichnis-
'Dialog unter Verwendung des Parameters "pidList"
Select Case uMsg
Case BFFM_INITIALIZED
Call SendMessage(hWnd, BFFM_SETSELECTIONA, False, ByVal lpData)
Case Else
End Select
End Function
Private Function FARPROC(pfn As Long) As Long
FARPROC = pfn
End Function

Private Function GetPIDLFromPath(ByVal sPath As String) As Long
GetPIDLFromPath = SHSimpleIDListFromPath(StrConv(sPath, vbUnicode))
End Function

Public Function BrowseDirectory(Optional ByVal strInitialDir As String, Optional ByVal _
hWnd As Long) As String
Dim lpIDList As Long
Dim sBuffer As String
Dim szTitle As String
Dim tBrowseInfo As BROWSEINFO
szTitle = "Please select a directory"
With tBrowseInfo
.hwndOwner = hWnd
.pidlRoot = 0
.lpszTitle = szTitle
.lpfnCallback = FARPROC(AddressOf BrowseCallBackProc)
.lParam = GetPIDLFromPath(strInitialDir)
End With
lpIDList = SHBrowseForFolder(tBrowseInfo)
If (lpIDList) Then
sBuffer = Space(MAX_PATH)
SHGetPathFromIDList lpIDList, sBuffer
sBuffer = Left(sBuffer, InStr(sBuffer, vbNullChar) - 1)
BrowseDirectory = sBuffer
CoTaskMemFree lpIDList
Else
BrowseDirectory = strInitialDir
End If
' Ressourcen freigeben
CoTaskMemFree tBrowseInfo.lParam
End Function

Sub OrdnerAuswahl()
Dim strInitialDir As String, strPath As String
strPath = BrowseDirectory()

End Sub

aber nochmal zur fehlermeldung!
ES GIBT JA WAS WO MAN IF ERROR dann ignorieren oder so
wie kann ich das richtig schreiben???
DAKE IVAN



Anzeige
Re: Laufende Anzeige von Bildern
11.05.2003 11:08:15
Forum

Hallo Ivan

ein Fehler sollte vermieden werden. Dies ist keine saubere Lösung. Ich habe mal in meinen Code die Verzeichnisauswahl eingebaut und einiges Bereinigt. Ich möchte mich jetzt nicht in Deinen Code einarbeiten.

Gruß Hajo

Der Code wurde getestet unter Betriebssystem XP Pro und Excel Version XP SBE.
Bitte kein Mail, Probleme sollen im Forum gelöst werden.

Microsoft MVP für Excel

Re: Laufende Anzeige von Bildern
11.05.2003 11:23:05
IVAN MARTINOV

hi
danke funkt aber es löst nicht ganz das problem
ich möchte das die bilder in der arbeitsmappe das ich als fotoalbum erstellt habe, per slide show angezeigt werden!

DAS ERROR PROBLEM HABE ICH GELÖST;
es waren nicht korrekte jpg bilder im verzeichniss.
danke ivan

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige