Anzeige
Archiv - Navigation
260to264
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
260to264
260to264
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

schließen

schließen
25.05.2003 14:33:54
RoWeigert@aol.com
Hallo,

ich habe neulich diese Anweisung

Public Wb1 As String
Public Wb2 As String
Wb1 = Application.GetOpenFilename(.....
... weitere Befehle
Wb2 = Application.GetOpenFilename(.....
Workbooks(Wb1).Close
Wb1 = Wb2

bekommen, um bei 2 geöffneten Arbeitsblättern die erste (mit veränderlichem Dateiname) zu schließen.

Jetzt sind folgende Probleme aufgetreten.

1. Der Debugger markiert "Public" und bringt "Ungültiges Attribut in Sub oder Funktion.

2. Außerdem möchte ich wissen was ich bei ... eintragen müßte.

Danke

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: schließen
25.05.2003 14:54:24
WAlterk

Hallo RoWeigert!
Die Anweisung Public ist nur außerhalb einer Prozedur gültig und sorgt dafür das die Variable auch außerhalb des Moduls gültig ist.
Ich empfehle Dir Dim zu nehmen.

zu 2. nach der Klammer kommt der Dateiname in Anführungszeichen, oder eine String-Variable

Gruß WalterK

Re: schließen
25.05.2003 15:02:09
Roweigert

Wie sieht die String-Variable denn aus, wenn sich ich die Dateinamen erst aus den 2 geöffneten Arbeitsmappen entnehmen möchte?

Re: schließen
25.05.2003 15:04:05
Ramses

Hallo,

...er sollte vielleicht dazu schreiben, für was er es braucht ;-).
Wäre schon hilfreich ;-))

https://www.herber.de/forum/messages/259906.html

Gruss rainer

Anzeige
Re: schließen
25.05.2003 15:07:36
roweigert

Hallo Ramses,

du mußt mich immer kritisieren :-).

Also nochmals zu meinen Mahnungen.

Ich möchte aus einer Liste eine Datei auswählen. Diese wird geöffnet. Dann soll die vorhergehende Arbeitsmappe (aus welche ich die nächste gestartet habe) geschlossen werden. Daher weiß ich beim Programieren des Makros nicht, welche Dateinamen die alte und neue Arbeitsmappe hat.

Re: schließen
25.05.2003 15:13:26
Ramses

Hallo

Ich kritisiere dich nicht immer,... aber es ist halt schon hilfreich wenn man etwas mehr als einen Brocken hingeworfen bekommt.

Ausserdem halte ich mich zurück. Konntest du dein Problem im anderen Forum nicht lösen ?

Gruss Rainer

Anzeige
Re: schließen
25.05.2003 15:17:24
RoWeigert

Das ist aber nicht schön, daß hier alle so sensiebel sind. Ich bin in das andere Forum gegangen, da zu diesem Zeitpunkt irgendwie ein Eintrag in diesem nicht möglich war. Ich konnte meine Anfrage nicht abschicken.

Ich weiß aber nun auch nicht mehr weiter. Ich versuche mein Problem so gut wie möglich zu erklären. Weiß aber nicht wie ichs noch anders machen soll.

Na gut Danke trotzdem. Hast mir auf jeden Fall schon ein Stück weitergeholfen.

Re: schließen
25.05.2003 15:29:26
Roweigert

So sieht das Makro jetzt aus:

Sub Öffnen()

Dim Wb1 As String
Dim Wb2 As String
Wb1 = Application.GetOpenFilename(Range("B1") & ".xls")
Wb2 = Application.GetOpenFilename(Range("B1") & ".xls")
Workbooks(Wb1).Close
Wb1 = Wb2

End Sub

funktioniert aber nicht.

Anzeige
Re: schließen
25.05.2003 16:07:27
Ramses

Hallo,

hier ist niemand, fast niemand ;-), sensibel.

Aber warum soll ich mir hier die Arbeit machen, wenn sie woanders, und davon habe ich zu diesem Zeitpunkt keine Ahnung, bereits erledigt ist.

Public WB1 as String
Public WB2 As String

Sub Dein_Start_Makro()
Wb1 = Application.GetOpenFilename(Range("B1") & ".xls")
.... Deine weiteren Befehle was du mit der Datei machen willst
End Sub

Sub Dein_Weiter_Makro()
Wb1 = Application.GetOpenFilename(Range("B1") & ".xls")
Workbooks(Wb1).Close
Wb1 = Wb2
.... Deine Weiteren Befehle
End Sub

Die Anweisungen "Public...." müssen in der ersten Zeile deines Modules stehen, noch vor deinem ersten Makro.


Gruss Rainer

Anzeige
Re: schließen
25.05.2003 17:42:16
roweigert

Danke nochmals Ramses,

wird nicht wieder vorkommen.

Aber jetzt kommt der Fehler "Methode mit GetOpenFilename für das Objekt_Application ist fehlgeschlagen"

Was kann ich da falsch gemacht haben.

Kann ich weiterhin den Dateiname

(Range("B1") & ".xls")

direkt aus den geööfneten Dateien ermitteln in die Anweisung

´WB1 bzw WB2 = Application.GetOpenFilename(Range("B1") & ".xls")´

übernehmen (Abfragen)?

Danke


Re: schließen
25.05.2003 18:01:44
Ramses

Hallo,

In der Online-Hilfe ist der Befehl syntaktisch recht gut erklärt, allerdings muss er für deine Bedürfnisse angepasst werden:

WB1 = Application.GetOpenFilename("Excel Files (*.xls)," & Range("B1").Value & ".xls")

Gruss Rainer

Anzeige
Re: schließen
25.05.2003 18:12:51
roweigert

Ich weiß ich nerve tierisch.

Hier nochmal ddas Makro mit Erläuterung, was es machen soll und den Fehlern, die es bei Ausführung bringt:


Public WB1 As String
Public WB2 As String

Sub Dein_Start_Makro()

'WB1 = ´Name der geöffneten Datei (variabel)

'WB2 = Application.GetOpenFilename("C:\Mahnung\" & Range("B1") & ".xls")
'öffnet die Datei aus dem festen Pfad, welche unter ´B1´ eingegeben wird.
'bringt einen Fehler, er kann mit der Angabe welche Datei geöffnet werden soll,
'nichts anfangen

Workbooks(WB1).Close 'bringt Fehler ´Typen unverträglich
'hier soll Arbeitsblatt geschlossen werden, aus welchem Makro gestartet wurde

WB1 = WB2
'.... Deine Weiteren Befehle


End Sub


Anzeige
Re: schließen
25.05.2003 18:24:03
Ramses

Hallo,

Wenn du nicht im richtigen Pfad oder auf dem richtigen Laufwerk bist, zeigt er dir die Datei natürlich nicht an.
Da deine Daten fest sind, verwende folgendes:

Gruss Rainer

Re: schließen
25.05.2003 21:44:43
Roweigert

Danke Ramses,

ich möchte mich für Deine Geduld bedanken.

Habs jetzt hinbekommen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige