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

Makros, Symbolleisten und Arbeitsmappen...

Makros, Symbolleisten und Arbeitsmappen...
18.01.2006 10:00:33
Michelle
guten morgen!
ich habe zwei fragen und hoffe, dass mir jemand helfen kann.
1. zuerst mal das wahrscheinlich sehr banalae: ich hab ein makro, in dessen verlauf eine arbeitsmappe geöffnet werden soll. nun möchte ich den laufzeitfehler abfangen, der sich meldet, wenn dieses file nicht existiert.
bisher sieht mein code (dank sepp) so aus:
If WorkbookOpened(varWorkbookStats) = True Then
Windows(varWorkbookStats).Activate
Else
Workbooks.Open Filename:=ActiveWorkbook.Path & "\" & varWorkbookStats, ReadOnly:=False
End If
gibt's da ne art "if exists" schleife oder so was?
2. jetzt wird's kompliziert, zumindest die erklärung des problems. die lösung ist hoffentlich einfach...
die situation ist die, dass ich eine arbeitsmappe habe mit datensätzen, die laufend aktualisiert bzw. neu hinzugefügt werden. genaugenommen habe ich mehrere dieser identisch aufgebauten arbeitsmappen - eins pro land. die heissen dann z.b. Datasets_DE.xls für deutschland, Datasets_CH.xls für die Schweiz, etc.
dann hab ich ebenfalls pro land eine arbeitsmappe mit auswertungen. die heissen dann z.b. Datasets_DE_Statistics.xls, etc.
und dann hatte ich bisher noch eine arbeitsmappe mit den benötigten makros (sagen wir, die heisst makro.xls). dort ist auch ne symbolleiste drin, über deren buttons man die makros aufrufen kann. eigentlich wollte ich diese makro.xls im XLSTARTUP ordner speichern, damit die jederzeit zur verfügung steht.
klappt hier bei mir auch alles einwandfrei, aber sobald die files auf die computer der anderen benutzer übertragen werden, gibt's probleme. die verknüpfungen der symbole stimmen nicht mehr und dauernd kommt die meldung, dass das makro-file nicht gefunden werden kann. und dann geht's wieder und dann wieder nicht... echt eigenartig, hat aber vielleicht mit dem profil-management zu tun.
naja, jedenfalls dachte ich mir jetzt, dass ich die makros und die symbolleiste auch direkt im Datasets_xy.xls einbinden kann. Dann wär das Problem mit dem XLSTARTUP gelöst. also hab ich die makros in das Datasets_DE.xls kopiert, die symbolleiste neu erstellt (mit verweisen auf die makros in der selben arbeitsmappe) und die symbolleiste an die arbeitsmappe angefügt. so weit, so gut.
aber wenn ich nun dieses Datasets_DE.xls kopiere, um daraus z.B. das Datasets_CH.xls zu erstellen, funktioniert die symbolleiste wieder nicht, weil sie auf die makros im anderen file zugreifen möchte.
hm... war das verständlich? also nochmals kurz auf den punkt gebracht: wenn z.b. das file Datasets_DE.xls geöffnet wurde, muss eine symbolleiste inkl. makros zur verfügung stehen. wenn ich das file Datasets_CH.xls geöffnet habe, müssen symbolleiste und makros ebenfalls zur verfügung stehen. bei einigen benutzern wird nur eine Datasets_xy.xls vorhanden sein (z.b. nur DE), während bei anderen benutzern ca. 10 verschiedene files vorhanden sind (DE, CH, etc.).
wenn so ein Datasets_xy.xls kopiert und unter anderem ländercode abgespeichert wird, sollten die makros ebenfalls funktionieren.
wenn kein Datasets_xy.xls geöffnet ist, muss die symbolleiste nicht angezeigt werden.
tut mir leid, das war eine lange und komplizierte erklärung. wusste nicht, wie ich's kürzer halten sollte. ich hoffe, mir kann jemand helfen!
vielen dank und lg, michelle

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makros, Symbolleisten und Arbeitsmappen...
18.01.2006 10:45:30
Klaus-Dieter
Hallo Michelle,
wenn mehr als ein Benutzer auf die Daten zugreifen soll, ist es besser, das Projekt in Access zu realisieren.
Viele Grüße Klaus-Dieter

Online-Excel
AW: Makros, Symbolleisten und Arbeitsmappen...
18.01.2006 10:47:52
Eugen
hi michelle
zu 1.
Dim fs As Object
Set fs = CreateObject("Scripting.FileSystemObject")
' hats geklappt ?
If fs Is Nothing Then Exit Sub
If fs.fileexists(ActiveWorkbook.Path + "\" + varWorkbookStats) Then
Workbooks.Open Filename:=ActiveWorkbook.Path & "\" & varWorkbookStats, ReadOnly:=False
End If
Set fs = Nothing
zu 2
muss mir noch was überlegen, kommt gleich
mfg
Anzeige
AW: Makros, Symbolleisten und Arbeitsmappen...
18.01.2006 11:33:14
Eugen
hi nochmal
ich hab dir mal zwei routinen angehängt,
die vba code im- bzw. exportieren.
du solltest nach dem erfolgreichen öffnen einer
deiner dateien checken, ob die anzahl der code module
der geöffneten datei mit der erwarteten anzahl über einstimmt.
wenn nicht, aus dem aktuellen workbook exportieren und
im neuen workbook importieren. dann ist sichergestellt, dass alle
den gleichen stand haben.
mfg
Public

Sub CExport()
Dim szFile As String
For i = 1 To ActiveWorkbook.VBProject.VBComponents.Count
szFile = CStr(Date) + ActiveWorkbook.VBProject.VBComponents(i).Name + ".bas"
ActiveWorkbook.VBProject.VBComponents(i).Export (szFile)
Next
MsgBox "Export ausgeführt !", vbOKOnly, "Code exportieren"
End Sub

Public

Sub CImport()
Dim szFile As String, szModule As String
Dim vbC As Object, szModul As String
' complete
szFile = Application.GetOpenFilename
If szFile <> "Falsch" Then
szModul = Mid(szFile, InStrRev(szFile, "\") + 1)
szModul = Mid(szModul, 11, 30)
szModul = Mid(szModul, 1, InStr(szModul, ".") - 1)
For xx = ActiveWorkbook.VBProject.VBComponents.Count To 1 Step -1
If szModul = ActiveWorkbook.VBProject.VBComponents(xx).Name Then
nAnswer = MsgBox("Das Modul " + szModul + " wird ersetzt !", vbYesNo, "Modulimport")
If nAnswer = vbNo Then Exit Sub
ActiveWorkbook.VBProject.VBComponents.Remove ActiveWorkbook.VBProject.VBComponents(xx)
Exit For
End If
Next
Set vbC = ActiveWorkbook.VBProject.VBComponents.import(szFile)
Select Case vbC.Type
Case 1
szModule = "Standard Modul "
Case 2
szModule = "Klassen Modul "
Case 3
szModule = "MSForms Form "
End Select
MsgBox "Code für " + szModule + " " + vbC.Name + " wurde eingefügt !", vbOKOnly, "Code importieren"
End If
End Sub

Anzeige
AW: Makros, Symbolleisten und Arbeitsmappen...
18.01.2006 22:18:42
Michelle
guten abend
@klaus-dieter: ja, das weiss ich, aber für eine access-lösung fehlt das geld.
@eugen: vielen dank für deine hilfe!
1. ich hab das nicht genau 1:1 so zum laufen gebracht, aber mit hilfe deines codes hat's geklappt. danke!
2. hm... das mit dem im- und exportieren... das ist mir im moment zu hoch. dass schau ich mir in ruhe an.
nochmals danke und lg, michèle

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige