Diskussionsgruppe: Tabellenkalkulation
Hallo,
ich lade aus einer Excell Tabelle eine Liste von Arbeitsanweisungen. In den Zellen rechts daneben habe ich die entsprechenden Links gelegt.Die Namen werden in der ComboBox Angezeigt und beim Anwählen der verschieden Namen werden auch die richtigen Links Aktiviert. Das heißt die Excel Dateien die hinter den Links stehen werden geöffnet.
Soweit so gut. Aber der Bediener soll so viele Links öffnen wie er will (soviele wie in der ComboBox verfügbar sind) und so offt er will. Dazu müssen die Datein aber vorher geschlossen werden und das bekomme ich nicht hin. Zum öffnen nehme ich folgenden befehl *Workbooks.Open (ActiveCell.Offset(0, 1))*
Das funktioniert. Zum schließen wollte ich *Workbooks().Close* benutzen. Und das was in die Klammern gehört finde ich nicht. Ich habe alles mögliche ausprobiert nöscht klappte.
Dann hätte ich noch ein Problem:
das ganze müsste ich auch mit Worddokumenten machen. Also in der Combobox stehen nicht nur Excel Dateien sondern auch Worddokumente mit denen ich genau so verfahren müsste.
Wenn mir bei den Problemen geholfen werden könnte wäre das super!!
Antwort 1
von achim_13086 vom 18.09.2006, 21:26
Guten Abend Pillager,
meines Wissen lautet der Befehl " ActiveWorkbook.Close " .
Das setzt allerdings voraus, dass die zuschließende Tabelle tatsächlich im Vordergrung ist.
Für Word müßte der Befehl so lauten: " ActiveDocument.Close ".
Ich hoffe, ich konnte Dir hiermit helfen.
Gruß Joachim
Antwort 2
von Pillager vom 18.09.2006, 21:55
hallo Joachim,
super danke teil 1 hat gefunzt. Workbooks (Excel) konnte ich schließen SUPER!
Das zeite Probleme habe ich vielleicht nicht ganz richtig vormuliert. mit word dokumenten komme ich gar nicht weiter. weil ein word dokument wohl kein excel workbook ist kommt die fehlermeldung *ungültiges dateiformat* der tip zum schließen, von dir könnte klappen wenn ich excel übereden kann das dokument zu öffnen das fehlt mir noch.
Antwort 3
von achim_13086 vom 18.09.2006, 23:32
Hi Pillager,
mir fällt im Moment auch keine Lösung ein, wie Excel dazu gebracht werden kann, ein Worddokument zu öffnen.
Im umgekehrten Fall ist es möglich, eine Exceltabelle in ein Worddokument einzubinden.
Eventuell hilft Dir die Funktion der Sammelmappe.
Leider fällt mir im Moment keine andere Lösung ein.
Einen netten Gruß noch, Joachim
Antwort 4
von JoeKe vom 19.09.2006, 08:07
Moin Pillager,
um aus Excel herraus mit einem Word-Dokument zu arbeiten, musst du zunächst ein Word-Objekt erzeugen. Danach kannst du mit Word VBA-Befehlen arbeiten.
Option Explicit
Sub Word() Dim objWord As Object Rem Erzeugt ein Word Objekt Set objWord = CreateObject("Word.Application") With objWord Rem Word Befehle .Documents.Open Filename:="C:\Dokumente und Einstellungen\user\Desktop\Endstellen.doc" .Visible = True .Activate End With Rem hier die anderen Anweisungen
Rem das Word muss wieder geschlossen werden objWord.Application.Quit Rem löscht den Verweis auf das Word Objekt Set objWord = Nothing End Sub
Gruß
JöKe
Antwort 5
von Pillager vom 19.09.2006, 19:08
Hallo Jöke,
hört sich gut an. Ich weiß aber nicht wo was hin soll. es stehen in der ComboBox z.B. Excel und Word Dokumente wild ducheinander. Wenn ich auf den einen link tippe geht ein excel sheet auf und wenn ich auf den word link tippe soll das word dokument aufgehen. ich habe ein wenig experimentiert aber irgendeine fehlermeldung kommt immer.
ich öffne keine direkten dateien sondern links wo die dateien hinter stehen. So wie unter 2 steht, geht es mit den worksheets. wenn es nicht wie unter 1. mit den dokumenten geht weiß ich nicht wie ich die links ansprechen soll.
1. Ducuments.Open (ActiveCell.Offset(0, 1))
2. Workbooks.Open (ActiveCell.Offset(0, 1))
Antwort 6
von JoeKe vom 20.09.2006, 07:40
Hallo Pillager,
um dir weiter helfen zu können müsste ich zumindest deinen bisherigen Code kennen und um was für eine ComboBox es sich handelt.
MfG
JöKe
Antwort 7
von Pillager vom 20.09.2006, 18:12
Hallo JöKe,
"Private Sub ComboBox1_Change() Worksheets("Arbeitsanweisungen").Activate On Error GoTo Errorhandler Dim strSuchen As Variant strSuchen1 = ComboBox1.Value Cells.Find(What:=strSuchen1).Activate Workbooks.Open (ActiveCell.Offset(0, 1)) MsgBox ("Datei ist offen !") ActiveWorkbook.Close MsgBox ("Datei ist wieder geschlossen !") Exit Sub Errorhandler: MsgBox "Arbeitsanweisung wählen" End Sub"
Das ist der Code den ich in die "normale" VBA Combobox integriert habe. Es funzt einwandfrei. Nur leider nicht mit Word dateien.
Hier noch der Code der im dazu gehörigen UserForm steht.
Private Sub UserForm_Initialize()
ActiveSheet.Cells.Offset(0, 0).Select Dim c As Range For Each c In Worksheets("Arbeitsanweisungen").Range("A01:A14") ComboBox1.AddItem c Next c Im Sheet Arbeitsanweisungen in den A Zellen stehen freiwählbare Namen und in den B Zellen die dazu gehörigen links auf Servern ect. Angezeigt werden die A Zellen und bein anwählen werden die B zellen aktiviert. Wie schon gesagt das funktioniert. Nur nicht mit Word dokumenten. Nur leider sind hier im Haus die meisten Arbeitsanweisungen in Word verfasst (was auch Sinn macht für mich aber jetzt schlecht ist).
Wenn du mir helfen könntest wäre das super!
Antwort 8
von JoeKe vom 21.09.2006, 12:13
Moin Pillager,
versuch es mal so:
Option Explicit
Private Sub ComboBox1_Change() On Error GoTo Errorhandler Dim strSuchen As String, objWord As Object, rngVergleich As Range, datei As String strSuchen = ComboBox1.Value For Each rngVergleich In Worksheets("Arbeitsanweisungen").Range("A1:A14") If rngVergleich = strSuchen Then datei = Cells(rngVergleich.Row, rngVergleich.Column + 1) End If Next If Right(datei, 4) = ".doc" Then Set objWord = CreateObject("Word.Application") With objWord .Documents.Open Filename:=datei .Visible = True ´.Activate End With MsgBox ("Datei ist offen !") objWord.Application.Quit Set objWord = Nothing MsgBox ("Datei ist wieder geschlossen !") Exit Sub Else Workbooks.Open Filename:=datei MsgBox ("Datei ist offen !") ActiveWorkbook.Close MsgBox ("Datei ist wieder geschlossen !") Exit Sub End If Errorhandler: MsgBox "Arbeitsanweisung wählen" End Sub
Gruß
JöKe
Antwort 9
von Pillager vom 21.09.2006, 22:32
Hallo JöKe
Klasse
Ich muste noch
Worksheets("Arbeitsanweisungen").Activate
über deinen Text schreiben. Dann habe ich die folgende Zeilen geändert.
.Documents.Open Filename:=datei in: .Documents.Open (ActiveCell.Offset(0, 1)) und Workbooks.Open Filename:=datei in: Workbooks.Open (ActiveCell.Offset(0, 1))
so ließ sich auch das Word Dokument öffnen.
Super, danke!!!!
Gruß Pillager
Antwort 10
von JoeKe vom 22.09.2006, 07:17
Moin Pillager,
da nich für ;o)
Gruß
JöKe
|
|