Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
520to524
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
520to524
520to524
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

VBA sprachabhängig?

VBA sprachabhängig?
26.11.2004 12:08:27
Jan
Mit einem Arbeitskollegen, haben wir ein VBA Script geschrieben, das eine Liste abarbeitet und pdf-Files aus Excel-Blättern erstellt. Nun wollten wir das Programm anderen Mitarbeitern weitergeben und stellten fest, dass es bei deutschsprachigem Excel nicht funktioniert.
Bisher dachte ich immer, dass VBA sprachunabhängig ist.
Kann mir jemand weiterhelfen?

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA sprachabhängig?
26.11.2004 12:37:01
Galenzo
Hallo jan,
Ich kann dir zunächst mal mit der Beitrags-Syntax für dieses Forum helfen:
Hallo/Anrede - Problembeschreibung - Formeln/VBA-Code/Datei - Danke/Gruß
Das verbessert die Chancen auf eine qualifizierte Antwort ungemein!
Und wiegesagt - ohne Beispiels-Code kann man nur vermuten...
mfg
AW: VBA sprachabhängig?
26.11.2004 12:48:57
Jan
Hallo Galenzo
Mir scheint als ob Du heute mit dem falschen Bein aufgestanden bist. Gut ich habe ein "hallo" vergessen, aber ansonsten habe ich mein Problem geschildert und auch eine Frage dazu. Aber ansonsten versuche ich es einfach nochmals:

FRAGE: Spielt es eine Rolle, ob ich einen VBA-Script auf einem englischsprachigen oder deutschsprachigen Excel laufen lasse? Bisher dachte ich immer, dass VBA sprachunabhängig ist.
Danke für eine allfällige Antwort.
Anzeige
AW: VBA sprachabhängig?
26.11.2004 12:53:04
Ulf
Poste einfach mal den relevanten Code.
Ulf
Code
26.11.2004 12:59:01
Jan

Sub PDF_printing()
i = 2
Do Until IsEmpty(Cells(i, 2).Value)
Dim strFileName As String
Dim strOriginPath As String
Dim strTargetPath As String
Dim strSubPath As String
strFileName = Cells(i, 2).Value & Cells(i, 3).Value
strOriginPath = "K:\BBA\BBAR\REPO\REPOSAVE\"
strTargetPath = "K:\BBA\BBAR\REPO\REPOSAVE\"
f1_JahresIndex = Right(strFileName, 6)
JahresIndex = Left(f1_JahresIndex, 2)
LängeSTRFILENAME = Len(strFileName)
'MsgBox LängeSTRFILENAME
If LängeSTRFILENAME = 11 Then
Monatsindex = Mid(strFileName, 5, 1)
ElseIf LängeSTRFILENAME = 12 Then
Monatsindex = Mid(strFileName, 5, 2)
End If
'MsgBox Monatsindex & JahresIndex
If Monatsindex = 1 Then
Monat = "01 Januar"
ElseIf Monatsindex = 2 Then
Monat = "02 Februar"
ElseIf Monatsindex = 3 Then
Monat = "03 März"
ElseIf Monatsindex = 4 Then
Monat = "04 April"
ElseIf Monatsindex = 5 Then
Monat = "05 Mai"
ElseIf Monatsindex = 6 Then
Monat = "06 Juni"
ElseIf Monatsindex = 7 Then
Monat = "07 Juli"
ElseIf Monatsindex = 8 Then
Monat = "08 August"
ElseIf Monatsindex = 9 Then
Monat = "09 September"
ElseIf Monatsindex = 10 Then
Monat = "10 Oktober"
ElseIf Monatsindex = 11 Then
Monat = "11 November"
ElseIf Monatsindex = 12 Then
Monat = "12 Dezember"
End If
'MsgBox Monat
If JahresIndex = 0 Then
Jahr = "2000 Reposave"
ElseIf JahresIndex = 1 Then
Jahr = "2001 Reposave"
ElseIf JahresIndex = 2 Then
Jahr = "2002 Reposave"
ElseIf JahresIndex = 3 Then
Jahr = "2003 Reposave"
ElseIf JahresIndex = 4 Then
Jahr = "2004 Reposave"
ElseIf JahresIndex = 5 Then
Jahr = "2005 Reposave"
End If
'MsgBox Jahr
strSubPath = strTargetPath & Jahr & "\" & Monat & "\"
'MsgBox strSubPath
Workbooks.Open Filename:= _
"K:\BBA\BBAR\REPO\REPOSAVE\" & strFileName, _
UpdateLinks:=0
Dim objDistiller As New ACRODISTXLib.PdfDistiller6
Dim OldPname As String
Dim TempPname As String
OldPname = Application.ActivePrinter
For J = 0 To 99
On Error Resume Next
If J < 10 Then
TempPname = "Adobe PDF on Ne0" & J & ":"
Application.ActivePrinter = TempPname
ElseIf J >= 10 Then
TempPname = "Adobe PDF on Ne" & J & ":"
Application.ActivePrinter = TempPname
End If
If Application.ActivePrinter = TempPname Then
Exit For
End If
Next J
Application.ActivePrinter = "TempPname"
objDistiller.bShowWindow = False
ActiveWindow.SelectedSheets.PrintOut , printtofile:=True, _
Collate:=True, prtofilename:=strOriginPath & strFileName & ".ps"
objDistiller.FileToPDF strOriginPath & strFileName & ".ps", strSubPath & strFileName & ".pdf", ""
Kill strOriginPath & strFileName & ".ps"
Set objDistiller = Nothing
Workbooks(strFileName).Activate
Application.Wait TimeSerial(Hour(Now), Minute(Now), Second(Now) + 1)
ActiveWindow.Close SaveChanges:=False
Kill strSubPath & strFileName & ".log"
On Error Resume Next
i = i + 1
Loop
End Sub


Sub Auswahl_drucken()
ScreenUpdate = False
i = 2
Application.Dialogs(xlDialogPrinterSetup).Show
Do Until IsEmpty(Cells(i, 1).Value)
ZR = Cells(i, 2).Value
ANZ_KOP = Cells(i, 1).Value
BERICHTSMONAT = Cells(i, 3).Value
ChDir "K:\BBA\BBAR\REPO\REPOSAVE\"
Workbooks.Open Filename:= _
"K:\BBA\BBAR\REPO\REPOSAVE\" & ZR & BERICHTSMONAT, _
UpdateLinks:=0
ActiveWindow.SelectedSheets.PrintOut Copies:=ANZ_KOP, Collate:=True
ActiveWindow.Close SaveChanges:=False
On Error Resume Next
i = i + 1
Loop
ScreenUpdate = True
End Sub

Anzeige
Falsche Syntax
26.11.2004 13:06:42
Kurt
application.screenupdating=false
anstatt
ScreenUpdate = False
ScreenUpdate = True
dito
AW: Falsche Syntax
26.11.2004 13:31:13
Jan
Danke Kurt für Deinen Input, aber leider brachte die Syntax Aenderungen nicht den gewünschten Erfolg. Nach wie vor ist es nicht möglich auf einem deutschsprachigen Excel ein .pdf-File zu erstellen, direkt einen Drucker ansteuern geht. Mit der englischsprachigen Version kann ich sowohl .pdf-Files erstellen, wie auch den Drucker direkt ansteuern.
AW: Falsche Syntax
26.11.2004 13:50:22
Galenzo
mal checken: Verweis auf die Bibliothek "ACRODISTXLib.PdfDistiller6" gesetzt?
ist entsprechende DLL installiert?
AW: Falsche Syntax
26.11.2004 14:19:05
Jan
Galenzo, kann es sein, dass Verweise/DLLs "verloren" gehen, wenn ich mein Excel von Englisch auf Deutsch setzte. Ich habe hier im Büro eine Multilanguage-Version und kann zwischen Deutsch und Englisch umschalten.
Anzeige
AW: Falsche Syntax
26.11.2004 14:25:08
Galenzo
DLL's gehen eigentlich nicht verloren, außer man löscht diese.
Die entsprechende DLL muss natürlich auf dem 2. Rechner vorhanden sein und auch korrrekt registriert sein (regsvr32...)
Wenn der Verweis nicht paßt, gibt's einen Fehler "Objekt nicht definiert oder nicht gefunden.." sowas in der Art.
mfg
AW: Falsche Syntax
26.11.2004 14:29:06
Jan
Demnach kann es nicht an den Verweisen/DLLs liegen, weil bei mir das Script im "englischen" Excel tadellos funktioniert und sobald ich auf deutsch umschalten, funktioniert nur das .pdf-Erstellen nicht mehr. Drucken geht nach wie vor.
AW: Falsche Syntax
26.11.2004 14:38:49
Galenzo
Noch ein paar Möglichkeiten zur Fehlersuche:
1. setzt du mal 'nen Haltepunkt so bei der Zeile
Dim objDistiller As New ACRODISTXLib.PdfDistiller6
dann siehst du schonmal, ob die entsprechenden Datei überhaupt geöffnet wird.
2. objDistiller.bShowWindow = False auf TRUE setzen, dann sollte das PDF-Fenster angezeigt werden, wenn alles klappt.
Ich vermute aber weiterhin die Objektbibliothek als Ursache..
Schönes Wochenende dann...
Anzeige
AW: Falsche Syntax
27.11.2004 14:00:22
andre
Hallo Jan,
wo bleibts denn überhaupt hängen?
Erstelle mal eine neue Mappe, dann die alte öffnen, das nötige Blatt rüberkopieren, und dann den code reinkopieren - nicht das ganze Modul rüberschieben! Dann gehts eventuell.
AW: Falsche Syntax
26.11.2004 14:22:15
Heini
Hallo Galenzo,
was verstehst Du unter der entsprechenden DLL? D.h. wie heisst diese? Betr. es Excel selbst oder VBA? Ist evtl. die Bibliothek ACRODISTXLib6 anders aufgebaut als die herkömmliche?
Gruss,
Heini
Anzeige
AW: Falsche Syntax
26.11.2004 14:28:49
Galenzo
Hallo Heini,
keine Ahnung wie die heißt.. :-)
Allerdings müßte sie nach korrekter Installation und Registrierung im VBA unter "Extras/Verweise" zu finden sein. Ohne die installierte Objektbibliothek können natürlich auch die dort enthaltenen Objekte, Eigenschaften und Methoden nicht genutzt werden.
mfg

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige