Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
24.04.2024 17:19:09
Anzeige
Archiv - Navigation
868to872
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
868to872
868to872
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Probleme mit Verweis auf Open?

Probleme mit Verweis auf Open?
10.05.2007 15:41:36
Swen

Hallo an alle,
ich habe folgende funktion.


Sub TabellezuCad(strName As String)
'am 20.02.2007 überarbeitet
Dim smsg As String, spath As String
Dim iCol As Integer, iRow As Long, strTmp As String
On Error GoTo Fehler:
'Prüfen ob das Sheet vorhanden ist
If Worksheet_suchen("cad") = True Then
'Wenn ja,... auswählen
Worksheets("cad").Select
'Frage nach Speicherort
smsg = "Wo soll die Datei abgelegt werden ?"
'Das verstehe ich auch nicht
'scheint aber irgendwie zu funktionieren
spath = ordner(smsg)
'Prüfen ob die Variable "sPath" eine Inhalt hat
'Warum dazu einen neue Variable ist mir allerdings schleierhaft
If spath <> "" Then strTempFolder = spath
'** Es wird eine Tabelle in eine cad/txt Datei gespeichert
'Datei virtuell öffnen
Open strTempFolder & strName & ".cad" For Output As #1
'Bezugnehmen auf das Sheet damit die Befehle kürzer geschrieben werden können
'dazu müssen die Verweise mit einem Punkt vorangesetzt werden
With ActiveWorkbook.Sheets("cad")
'Festlegen der Zeile mit dem letzten Eintrag
For iRow = 1 To .Cells(Rows.Count, 1).End(xlUp).Row
'Variable leer stellen
strTmp = ""
'festlegen der letzten beschriebenen Spalte in Zeile "iRow"
For iCol = 1 To .Cells(iRow, Columns.Count).End(xlToLeft).Column
'Zusammensetzen der Werte der einzelnen Zellen
strTmp = .Cells(iRow, iCol) & ","
Next iCol
'Schreiben des Strings ohne das letzte Komma
strTmp = Left(strTmp, Len(strTmp) - 1)
'Schreiben in die virtuelle Datei
Print #1, strTmp
Next iRow
End With
'Virtuelle Datei schliessen
Close #1
End If
Exit Sub
Fehler:
strLetzteFehlerArt = Err.Description
strLetzteFehlerNummer = Err.Number
frmFehlerInfoAnSwen.Show
Exit Sub
End Sub


bekomme jetzt auf einem PC mit Excel 2000 das Problem das er folgende Zeile nicht kann,
Open strTempFolder & strName & ".cad" For Output As #1
Dieses liegt wahrscheinlich dadran das ich nicht genau auf die Funktion Open verweise,
kann mir jemand sagen welches Open hier verwendet ist kommt dieses aus Excel, Vba, oder
aus einer anderen Lib.!
danke!
gruß
swen

17
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Probleme mit Verweis auf Open?
10.05.2007 18:39:50
Erich G.
Hallo Swen,
das sieht deinem Left-Problem doch recht ähnlich...
Hast du meinen Vorschlag in
https://www.herber.de/forum/archiv/864to868/t867063.htm#867621
mal ausprobiert?
Zu Open:
Welcher Fehler kommt? Wie lautet der Fehlerhinweis?
Hast du mal den Cursor auf Open gestellt und dann F1 gedrückt?
Da werden drei Einträge angeboten: VBA, Excel und Office.
Wenn du dir die drei anschaust und mit deiner Anweisung vergleichst - dann muss es wohl VBA sein.
(Open ist ein schon recht alter BASIC-Befehl.)
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: Probleme mit Verweis auf Open?
10.05.2007 22:02:27
Swen
Hallo Erich,
vielen dank, für deine hilfe,
als feedback nochmal das mit dem left klappt trotzdem nicht.!!!
aber jetzt zu meinem eigentlichen problem derzeit,
wenn ich
vba.Open strTempFolder & strName & ".cad" For Output As #1
excel.Open strTempFolder & strName & ".cad" For Output As #1
office.Open strTempFolder & strName & ".cad" For Output As #1
eingebe.
Nimmt der Editor diesen befehl nicht er schreibt dann sytax fehler.
Hast du eine idee was ich falsch mache!
Oder weist du wie sonst mein cad file erstellen kann.
gruß
swen
gruß
swen

Anzeige
AW: Probleme mit Verweis auf Open?
10.05.2007 22:07:20
Swen
sorry der beitrag ist noch offen.

AW: Probleme mit Verweis auf Open?
10.05.2007 22:02:35
Swen
Hallo Erich,
vielen dank, für deine hilfe,
als feedback nochmal das mit dem left klappt trotzdem nicht.!!!
aber jetzt zu meinem eigentlichen problem derzeit,
wenn ich
vba.Open strTempFolder & strName & ".cad" For Output As #1
excel.Open strTempFolder & strName & ".cad" For Output As #1
office.Open strTempFolder & strName & ".cad" For Output As #1
eingebe.
Nimmt der Editor diesen befehl nicht er schreibt dann sytax fehler.
Hast du eine idee was ich falsch mache!
Oder weist du wie sonst mein cad file erstellen kann.
gruß
swen
gruß
swen

Anzeige
AW: Probleme mit Verweis auf Open?
10.05.2007 22:45:20
Erich G.
Hallo Swen,
es gibt keine Anweisung vba.open, auch nicht mit excel oder office.
Ich vermute den Fehler nicht in der Anweisung Open, sondern im Parameter (Pfad&Dateiname).
Schreib mal über die Zeile
Open strTempFolder & strName & ".cad" For Output As #1
eine neue Zeile
msgbox strTempFolder & strName & ".cad"
Ist das der Name der Datei, die du erstellen willst?
Stehen da vielleicht Leerzeichen drin?
Steht zwischen Verzeichnis und Dateiname der übliche Rückwärts-Schrägstrich?
Wenn Leerzeichen drinstehen, dann probier mal (hab ich jetzt nicht ausprobiert):
Open "'" & strTempFolder & strName & ".cad" & "'" For Output As #1
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: Probleme mit Verweis auf Open?
10.05.2007 23:13:49
Swen
Hallo Erich,
das seltsame ist wieder das ich dieses nur auf den Rechnern mit excel 2000 habe und nicht bei den mit 2003 wenn ich die zeile von dir rein tue
klappt es bei 2003 nicht mehr (was bei 2000 passiert kann ich leider morgen erst schauen).
ich habe mal direkt auf c gespeichert, dann steht in de msg box drin
c:\123.cad
mal abgesehen das open an dieser stelle nicht funtzt , gibt es evtl noch eine andere
möglichkeit die cad datei zu ertellen?
gruß
swen

AW: Probleme mit Verweis auf Open?
11.05.2007 00:34:08
Erich G.
Hallo Swen,
noch mal ganz von vorn:
In deinem ersten Beitrag hast du geschrieben:


bekomme jetzt auf einem PC mit Excel 2000 das Problem das er folgende Zeile nicht kann,
Open strTempFolder & strName & ".cad" For Output As #1

Was meint "er kann nicht"?
Wenn der Code bis zu dieser Zeile läuft, sagt das schon aus, dass der VBA-(Pre)Compiler den Befehl Open erkannt hat.
Sonst gäbe es vorher schon einen Kompilierungsfehler.
Vielleicht hat der Fehler ja mit eingeschränkten Rechten zu tun.
Ich habe mir als normalem Benutzer (nicht Admin) auf meinem Rechner nicht erlaubt,
ins Rootverzeichnis C:\ schreiben.
Open "c:\xxx.txt" for output as #1 führt zum Laufzeitfehler 75 - Fehler beim Zugriff auf Pfad/Datei.
Welcher Fehler tritt bei dir in der Open-Zeile auf? Wie lautet die Fehlermeldung?
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: Probleme mit Verweis auf Open?
11.05.2007 23:16:10
Swen
Hallo Errich ich danke dir für deine Hilfe ich werde den Fehler am Montag testen und mich dann wieder melden! (Montag da ich das nur in der Firma testen kann.)
Mit den entsprechenden Infos Fehlernummer und Fehlertext!
Gruß
Swen

AW: Probleme mit Verweis auf Open?
12.05.2007 12:47:56
schauan
Hallo Sven,
in Deinem ersten code steht auch
spath = ordner(smsg)
Was ist denn ordner für eine Funktion?
Prüfe den Inhalt der Variablen ob da alles korrekt ist. Stimmt der Pfad und der Dateiname, sind die Backslash korrekt gesetzt?
#1 gibt Probleme wenn Du testest und Dateien dabei nicht korrekt geschlossen oder geöffnet werden.
Besser wäre wenn Du die Nummer ermittelst. Schaue dazu mal in die Hilfe zu FreeFile und das entsprechende Beispiel ..
Hoffe geholfen zu haben Grüße von André aus Gera - Excel-97-2003

Anzeige
AW: Probleme mit Verweis auf Open?
12.05.2007 13:20:36
Swen
Hallo Andre,
danke! das werde ich auch Monatg mal mir ansehen!
Hallo an alle,
hat evtl. jemand eine idee wie ich schauen könnte
(siehe letzten Beitrag von Errich) Das nicht ausreichend
Rechte auf dem ausgewählten laufwerk/ordner vorhanden sind!
so das ich dieses abfragen könnte und eine msgbox zeigen könnte
wo ich dann drauf hinweise das die userrechte nicht ausreichen.
und er einen anderen ordner wählen soll!
würde mich über eine musterlösung zur abfrage der schreibrechte
(ja/nein : false/true) freuen die ich dann einbauen würde!
verspreche diese dann auch hier ins forum zulegen!
gruß
swen

Anzeige
AW: Probleme mit Verweis auf Open?
12.05.2007 19:54:56
schauan
Hallo Sven,
Ob eine Benutzer Rechte hat kannst Du wahrscheinlich eher nicht sehen. In einem ordentlichen Netz werden die Rechte in der Regel über Gruppen verwaltet, und da siehst Du mit vba nicht, wer drin ist.
Am einfachsten ist zu testen, ob Du eine Datei dort los wirst. Wenn es einen Fehler gibt, dann nicht.
Im Prinzip so:
On error resume next
... Textfile Speichern
If err.Number <> 0 Then
MsgBox "Werde die Datei nicht los"
Exit Sub
End if
Wenn Du genauer wissen willst was los ist müsstest DU die Fehlernummern auswerten. Könnte ja auch sein, dass das Laufwerk nicht vorhanden oder voll ist ...
Hoffe geholfen zu haben Grüße von André aus Gera - Excel-97-2003

Anzeige
AW: Probleme mit Verweis auf Open?
13.05.2007 01:21:13
Erich G.
Hallo Swen,
so kannst du ermitteln, ob (für den jeweiligen User) Schreibrechte bestehen, und einige weitere Infos
über ein Verzeichnis:


Option Explicit
' nach  AW: Schreibrechte in Ordner - von Nepumuk  am 23.07.2003 12:59:52
' www.herber.de/forum/archiv/284to288/t284315.htm#284508
Sub ShowFolderInfo()
Dim FSyObjekt As Object, FoObjekt As Object, intE As Integer, strE As String
Set FSyObjekt = CreateObject("Scripting.FileSystemObject")
Set FoObjekt = FSyObjekt.GetFolder("c:\programme")               ' anpassen
MsgBox FoObjekt.Attributes
intE = FoObjekt.Attributes
If intE Mod 2 > 0 Then strE = "schreibgeschützt" & " "
intE = intE \ 2
If intE Mod 2 > 0 Then strE = strE & "verborgen" & " "
intE = intE \ 2
If intE Mod 2 > 0 Then strE = strE & "Systemdatei" & " "
intE = intE \ 2
If intE Mod 2 > 0 Then strE = strE & "Datenträgerbezeichnung" & " "
intE = intE \ 2
If intE Mod 2 > 0 Then strE = strE & "Verzeichnis" & " "
intE = intE \ 2
If intE Mod 2 > 0 Then strE = strE & "geändert" & " "
intE = intE \ 2
If intE Mod 2 > 0 Then strE = strE & "Verknüpfung" & " "
intE = intE \ 2
If intE Mod 2 > 0 Then strE = strE & "komprimiert"
MsgBox strE
End Sub
'  0 Normale Datei
'  1 Schreibgeschützte Datei
'  2 Verborgene Datei
'  4 Systemdatei
'  8 Datenträgerbezeichnung des Laufwerks
' 16 Ordner oder Verzeichnis
' 32 Die Datei hat sich seit der letzten Sicherung geändert
' 64 Verknüpfung
'128 Komprimierte Datei

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: Probleme mit Verweis auf Open?
13.05.2007 06:42:07
schauan
Hallo allerseits,
ich möchte nur noch mal meinen Hinweis mit den Gruppenrechten betonen.
Hoffe geholfen zu haben Grüße von André aus Gera - Excel-97-2003

@ André
13.05.2007 10:49:59
Erich G.
Hallo André,
spielt den in diesem Zusammenhang wirklich eine Rolle, wie die Benutzerrechte verwaltet werden,
ob einzeln oder als Gruppenrechte?
Für Swen ist doch nur das Ergebnis - er darf oder darf nicht - interessant.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

AW: @ André
13.05.2007 17:16:42
schauan
Hallo Erich,
in dem Moment wo Du nur über die Gruppenrechte Schreiben darfst bekommtst Du mit Deinem code das Verzeichnis als Schreibgeschützt angezeigt.
Kannst Du auch zu Hause testen falls Du ausreichend Benutzer und XP hast. Vergleiche mal das Ergebnis zwischen einem eingeschränkten Benutzer, einem eingeschränkten mit Zugehörigkeit zu den Hauptbenutzern und einem Admin. Der eingeschränkte Hauptbenutzer darf in C:\Programme was einschreiben, das Verzeichnis wird aber mit Deinem code als schreibgeschützt angezeigt.
Hoffe geholfen zu haben Grüße von André aus Gera - Stadt der Buga 2007 - Excel-97-2003

AW: @ André
14.05.2007 17:06:23
Swen
Hallo Andre Hall Errich,
ich bekomme den Fehler 54 - Falscher Dateimodus zurück!
könnt ihr mir das mit den gruppenrechten nochmal erklären, das verstehe ich noch nicht ganz!
danke!
gruß
swen

AW: @ André
14.05.2007 20:05:43
schauan
Hallo Swen,
wenn Du Dir die Rechte in einem Verzeichnis anschaust kann es sein, dass Du dort die Namen von usern findest, aber auch Angaben wie Jeder, Benutzer, Hauptbenutzer, System, Administratoren und andere. Wer nun in so einer Gruppe drin steckt siehst Du nicht gleich und das Makro von Erich sieht es gar nicht.
Du kannst Dir die user zum Beispiel die lokalen Gruppen Deines PC über Start | Systemsteuerung | Leistung und Wartung | Verwaltung | Computerverwaltung | Lokale Benutzer und Gruppen anschauen.
Die Mitglieder von usergruppen im Netz findet man unter XP etwas schwieriger, am Besten, man lässt sie sich von seinem Admin listen.
Ansonsten konnte man unter NT4 bei der Vergabe von Rechten auf dem lokalen PC an Netzwerkgruppen die Mitglieder von Netzwerkgruppen anschauen.
Hoffe geholfen zu haben Grüße von André aus Gera - Stadt der Buga 2007 - Excel-97-2003

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige