Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1604to1608
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

Schriftarten in Excel Datei

Schriftarten in Excel Datei
23.01.2018 19:20:23
sigrid
Guten Abend,
ich habe eine CD mit Orginal Schriftarten (199 Stück).
Ich möchte gern alle Schriften, JEDE Schrift ist in einer Zipdatei
entpacken und die Schriftart halt daneben entpackt darstellen.
z. B. Corpoa.zip darin ist CorpoA.ttf
geht das überhaupt ?
herzlicher Gruß
sigrid

19
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Was hat das mit Excel ...
23.01.2018 19:22:40
lupo1
... zu tun?
AW: Schriftarten in Excel Datei
23.01.2018 19:34:48
Sepp
Hallo Sigrid,
in ein allgemeines Modul.
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Sub Unzip1()
Dim objShell As Object, objItem As Object
Dim strPath As String, strFile As String
Dim lngRow As Long
strPath = "E:\Forum\" ' Ordner mit den ZIP-Dateien - ANPASSEN!

If Right(strPath, 1) <> "\" Then strPath = strPath & "\"

strFile = Dir(strPath & "*.zip", vbNormal)

Set objShell = CreateObject("Shell.Application")
Do While strFile <> ""
  For Each objItem In objShell.Namespace(strPath & strFile).items
    lngRow = lngRow + 1
    Cells(lngRow, 1) = strFile
    Cells(lngRow, 2) = objItem.Name
  Next
  strFile = Dir
Loop

Set objShell = Nothing
End Sub

Die Daten werden ab Zeile 1 ausgegeben!
Gruß Sepp

Anzeige
Perfekt !!!
23.01.2018 19:59:11
sigrid
Guten Abend Sepp,
das ist ja PERFEKT DANKE !
Das Problem was ich nicht bedacht habe, ich habe jetzt alle Schriften
in der Spalte, kann diese aber nicht sehen wie diese aussehen.
Hast Du vielleicht eine Idee ?
Würde mich freuen !
mfg
sigrid
AW: Perfekt !!!
23.01.2018 20:34:37
Sepp
Hallo Sigrid,
sind die Schriftarten auf deinem System installiert? Enthält jede ZIP-Datei nur eine Schriftartendatei, oder sind evtl. verschieden Stile der Schriftart enthalten?
Gruß Sepp

Anzeige
AW: Perfekt !!!
23.01.2018 21:55:20
Sigrid
Hallo Sepp,
alle ZIP Dateien liegen in einem Verzeichnis.
Dank deines Makros, sind jetzt die Dateien in einer Spalt darunter immer die Textdateien.
Mit freundlichen Grüßen
Sigrid
AW: Perfekt !!!
23.01.2018 22:16:30
Sepp
Hallo Sigrid,
das beantwortet nicht meine Fragen! Ist in Jeder ZIP nur eine Schriftdatei oder mehrere?
Was du mit den Textdateien meinst verstehe ich nicht!
Sind die Schriften auf deinem System installiert? Das heißt, kannst du die Schriftarten Systemweit verwenden?
Gruß Sepp

Anzeige
AW: Perfekt !!!
24.01.2018 10:52:07
sigrid
Guten Morgen Sepp,
nochmals danke, das kopieren hat ja geklappt, wie in deinem Muster
auch dargestellt.
In jeder ZIP Datei ist NUR eine Schriftart.
Das Problem, ich kann die Schriftart als Beispiel wie diese dargestellt wird
nicht sehen.
mfg
sigrid
AW: Perfekt !!!
24.01.2018 08:37:44
Sigrid
Hallo Sepp,
alle ZIP Dateien liegen in einem Verzeichnis.
Dank deines Makros, sind jetzt die Dateien in einer Spalt darunter immer die Textdateien.
Mit freundlichen Grüßen
Sigrid
Anzeige
AW: Perfekt !!!
24.01.2018 08:43:07
Sepp
Hallo Sigrid,
wir reden aneinander vorbei! Ich weiß, dass die Zip's alle in einem Ordner liegen, was ich nicht weiß ist, was du mit "Dank deines Makros, sind jetzt die Dateien in einer Spalt darunter immer die Textdateien." meinst.
Hast du die letzte Version meines Codes ausprobiert.
https://www.herber.de/bbs/user/119206.xlsm
Gruß Sepp

AW: Perfekt !!!
23.01.2018 21:53:03
Sepp
Hallo Sigrid,
ich nehme mal an, dass die Schriftarten nicht installiert sind und sich immer nur eine Schriftart in den Zip-Dateien befindet.
Teste mal.
https://www.herber.de/bbs/user/119205.xlsm
Gruß Sepp

Anzeige
Es hat geklappt, mit dem 1. Link !!!
24.01.2018 12:49:11
sigrid
Hallo Sepp,
es hat mit dem 1. Link geklappt.
Danke ich kann so die Schriften erkennen.
Kann ich die Schriften irgendwo reinkopieren, damit ich diese verwenden Kann ?
mfg
sigrid
AW: Es hat geklappt, mit dem 1. Link !!!
24.01.2018 13:51:19
Sepp
Hallo Sigrid,
dazu muss man sie installieren, momentan werden sie nur temporär installiert.
Willst du alle Schriftarten installieren?
Gruß Sepp

AW: Es hat geklappt, mit dem 1. Link !!!
24.01.2018 13:51:43
Sepp
Hallo Sigrid,
dazu muss man sie installieren, momentan werden sie nur temporär installiert.
Willst du alle Schriftarten installieren?
Gruß Sepp

Anzeige
Ja, wenn möglich...
24.01.2018 14:28:51
sigrid
Hallo Sepp,
wenn möglich, dann ja. !
gruß
sigrid
AW: Ja, wenn möglich...
24.01.2018 20:13:49
Sepp
Hallo Sigrid,
das automatische Installieren der Schriftarten ist nur bedingt möglich.
Erstens brauchst du Administratoren-rechte und auch sonst gibt es einige Hürden.
Da das doch ein Eingriff ins System ist, würde ich die folgenden Weg vorschlagen.
Der folgende Code erstellt auf dem Desktop einen Ordner namens 'Fonts' und entpackt alle Schriftarten in diesen Ordner.
Nachdem alle Schriftarten im Ordner sind, öffnest du diesen, markierst alle Dateien und wählst im Kontextmenü 'Installieren', damit werden alle Schriftarten im System registriert. Die dabei evtl. erscheinenden Dialoge kann man nicht unterdrücken und erscheinen auch, wenn man per Code die Installation durchführen würde, deshalb hat es keinen Sinn. Es gibt zwar Möglichkeiten, allerdings erfordern die entweder Zusatzprogramme oder man muss die Registry manipulieren und auch dann ist nicht garantiert, dass es problemlos läuft.
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Private Declare PtrSafe Function MakeSureDirectoryPathExists Lib "imagehlp.dll" (ByVal lpPath As String) As Long

Sub extractFontsFromZip()
Dim objShell As Object, objItem As Object
Dim strPath As String, strFile As String
Dim varTempPath As Variant, lngC As Long

On Error GoTo ErrorHandler

With Application.FileDialog(msoFileDialogFolderPicker)
  .InitialFileName = "E:\Forum\"
  .Title = "Ordnerauswahl - ZIP-Dateien mit Schriftart"
  .ButtonName = "Extrahieren"
  .InitialView = msoFileDialogViewList
  If .Show = -1 Then
    strPath = .SelectedItems(1)
    If Right(strPath, 1) <> "\" Then strPath = strPath & "\"
  End If
End With

If Len(strPath) Then
  varTempPath = Environ("USERPROFILE") & "\Desktop\Fonts\"
  
  Call MakeSureDirectoryPathExists(varTempPath)
  
  Set objShell = CreateObject("Shell.Application")
  
  strFile = Dir(strPath & "*.zip", vbNormal)
  
  Do While strFile <> ""
    For Each objItem In objShell.Namespace(strPath & strFile).Items
      Select Case LCase(Right(objItem.Name, 3))
        Case "ttf", "ttc", "fon", "otf"
          lngC = lngC + 1
          objShell.Namespace(varTempPath).CopyHere _
            objShell.Namespace(strPath & strFile).Items.Item(objItem.Name)
          Exit For
        Case Else
      End Select
    Next
    strFile = Dir
  Loop
End If

If lngC > 0 Then
  If MsgBox("Es wurden " & CStr(lngC) & " Schriftarten in den Ordner " & varTempPath & _
    " kopiert!" & vbLf & vbLf & "Solldieser Ordner geöffnet werden?", vbInformation + _
    vbYesNo, "Schriftarten entpacken") = vbYes Then
    Shell "C:\Windows\explorer.exe /e, " & varTempPath, vbNormalFocus
  End If
End If
ErrorHandler:

If Err.Number <> 0 Then
  MsgBox "Fehler in Modul1" & vbLf & vbLf & "Prozedur:" & vbTab & "listFontFromZip" & vbLf & _
    "Nummer:" & vbTab & Err.Number & vbLf & "Meldung:" & vbTab & Err.Description & vbLf & _
    IIf(Erl, "Zeile:" & vbTab & Erl, ""), vbExclamation, "Fehler!"
  Err.Clear
End If

Set objShell = Nothing
End Sub

Gruß Sepp

Anzeige
Guten Abend Sepp, danke nochmals ! -)
24.01.2018 20:21:34
sigrid
Guten Abend Sepp,
tausend Dank für deine Unterstützung.
Habe in Google mal recherchiert und entdeckt wie man
die Schriften über Explorer installiert, alle drin.
Bei deinem Makro wird die erste Zeile ROT angezeigt:
Private Declare PtrSafe Function MakeSureDirectoryPathExists Lib "imagehlp.dll" (ByVal lpPath As String) As Long
Schönen Abend noch,
danke.
gruß
sigrid
AW: Guten Abend Sepp, danke nochmals ! -)
24.01.2018 20:32:43
Sepp
Hallo Sigrid,
dann so.
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

#If VBA7 Then
Private Declare PtrSafe Function MakeSureDirectoryPathExists Lib "imagehlp.dll" (ByVal lpPath As String) As Long
#Else
Private Declare Function MakeSureDirectoryPathExists Lib "imagehlp.dll" (ByVal lpPath As String) As Long
#End If

Sub extractFontsFromZip()
Dim objShell As Object, objItem As Object
Dim strPath As String, strFile As String
Dim varTempPath As Variant, lngC As Long

On Error GoTo ErrorHandler

With Application.FileDialog(msoFileDialogFolderPicker)
  .InitialFileName = "E:\Forum\"
  .Title = "Ordnerauswahl - ZIP-Dateien mit Schriftart"
  .ButtonName = "Extrahieren"
  .InitialView = msoFileDialogViewList
  If .Show = -1 Then
    strPath = .SelectedItems(1)
    If Right(strPath, 1) <> "\" Then strPath = strPath & "\"
  End If
End With

If Len(strPath) Then
  varTempPath = Environ("USERPROFILE") & "\Desktop\Fonts\"
  
  Call MakeSureDirectoryPathExists(varTempPath)
  
  Set objShell = CreateObject("Shell.Application")
  
  strFile = Dir(strPath & "*.zip", vbNormal)
  
  Do While strFile <> ""
    For Each objItem In objShell.Namespace(strPath & strFile).Items
      Select Case LCase(Right(objItem.Name, 3))
        Case "ttf", "ttc", "fon", "otf"
          lngC = lngC + 1
          objShell.Namespace(varTempPath).CopyHere _
            objShell.Namespace(strPath & strFile).Items.Item(objItem.Name)
          Exit For
        Case Else
      End Select
    Next
    strFile = Dir
  Loop
End If

If lngC > 0 Then
  If MsgBox("Es wurden " & CStr(lngC) & " Schriftarten in den Ordner " & varTempPath & _
    " kopiert!" & vbLf & vbLf & "Solldieser Ordner geöffnet werden?", vbInformation + _
    vbYesNo, "Schriftarten entpacken") = vbYes Then
    Shell "C:\Windows\explorer.exe /e, " & varTempPath, vbNormalFocus
  End If
End If
ErrorHandler:

If Err.Number <> 0 Then
  MsgBox "Fehler in Modul1" & vbLf & vbLf & "Prozedur:" & vbTab & "listFontFromZip" & vbLf & _
    "Nummer:" & vbTab & Err.Number & vbLf & "Meldung:" & vbTab & Err.Description & vbLf & _
    IIf(Erl, "Zeile:" & vbTab & Erl, ""), vbExclamation, "Fehler!"
  Err.Clear
End If

Set objShell = Nothing
End Sub

Gruß Sepp

Anzeige
Guten Moprgen Sepp danke ! -) -)
25.01.2018 09:34:30
sigrid

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige