Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1260to1264
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
Worksheetübergabe an anderes Workbook
Elke
Liebe Excelgemeinde,
mit dem Problem hatte ich mich schonmal gemeldet und es lief auch wieder eine ganze Weile reibungslos. Nun passiert es wieder, daß auf 2 bestimmten Rechner unter Win 7 unten stehende eigentlich triviale Prozedur nicht ausgeführt wird.
Es soll ein Worksheet "Fall_X" in eine andere auch XL2010 Anwendung eingeschoben werden. Bei ein und derselben Datenstruktur funktioniert es auf dem einen Rechner und auf dem anderen nicht. Der andere ist leider der Hauptrechner in der Abteilung und Chef ist sauer!
Der Rechner führt die kritische Zeile zwar aus, nur es passiert nicht, das Tabellenblatt wird nicht übertragen. Bei jedem anderen Rechner, auch im Netz, wird der Befehl einwandfrei ausgeführt.
.........
Application.Windows(v_ThisWb).Activate
ActiveWorkbook.Sheets(Fall_X).Select
ActiveWorkbook.Sheets(Fall_X).Move After:=Workbooks(v_DateiName).Sheets(1) '-- Kritisch
Workbooks(v_DateiName).Activate
ActiveWorkbook.Sheets(Fall_X).Activate
.......
Ich muß dazusagen, daß ich diese Dinge notgedrungen fernmündlich warte und die eigentliche Operation vom 'Chef' ausgeführt wird. Ich habe aber hier ein und dieselben Daten, das gleiche VBA-Programm etc.
Hat irgendjemand eine Idee? oder vielleicht ähnliche Erfahrung mit XL2010? Das Programm lief auf besagtem Rechner unter WinXP und XL2003 lange, zuverlässig und ohne Probleme.
LG
Elke
tja, fernmündlich...
15.05.2012 21:00:05
Sheldon
Hi Elke,
...ist das schwierig zu lösen. Ich rate mal drauf los, die Variable v_DateiName ist entweder gar nicht gefüllt oder das gewünschte Workbook ist nicht geöffnet. Oder noch schlimmer: Es ist geöffnet, aber in einem anderen Pfad gespeichert als in die Variable geschrieben. Oder mit anderen Worten: kein Fehler zu sehen so ohne vollständigen Code und Beispielmappe... :-(
Gruß
Sheldon
AW: tja, fernmündlich...
15.05.2012 21:12:03
Uduuh
Hallo,
Oder noch schlimmer: Es ist geöffnet, aber in einem anderen Pfad gespeichert als in die Variable geschrieben.
?
Wenn es geöffnet ist, spielt doch nur der Name eine Rolle. Der Pfad ist wurscht.
Gruß aus’m Pott
Udo

Anzeige
Eben, aber weißt du, was die Variable enthält? orT
15.05.2012 21:14:18
Luc:-?
;-> Gruß Luc :-?
AW: tja, fernmündlich...
15.05.2012 21:19:00
Elke
Hallo Sheldon,
ja es ist schwierig, der Code ist ellenlang, mit diversen Subs, der zitierte Code läuft selbst auch in einem Sub und die Variablen kommen aus einem fernen Teil des gesamten Projekts. Im Einzelschrittverfahren bei mir auf dem Rechner sind die Dinge alle so wie sie sein sollen. Beim selben Code auf anderem Rechner sind die Variablen auch gefüllt, der Pfad ist (Lokalfenster gecheckt) auch identisch nur die Zeile wird einfach ignoriert. Auch wenn "on error goto 0" gezielt vorher und sicherheitshalber eingesetzt wurde. Ich bin nun nicht der VBA-Profi, habe aber schon etliche Progrämmchen geschrieben, nur wie gesagt unter XL2003. Dies längere auch, stehe aber hier vor einem Rätsel. Den ganzen Code kann und darf ich nicht raufladen. Vielleicht fällt einem noch was zum checken ein.
Ich sehe das aber genau wie Du ........ fernmündlich .... ist schwierig, geht aber "per Ordre Mufti" leider nicht anders.
Grüße
Elke
Anzeige
AW: tja, fernmündlich...
15.05.2012 22:23:50
Matze,Matthias
Hallo Zusammen,
ich Tippe genau wie Sheldon darauf, das die zu öffnende Datei entweder:
- nicht geöffnet ist
- nicht richtig deklariert ist (Variablen namen)
- oder sogar die Falsche Endung hat anstelle wie du schreibst xlsx , eine xlsm oder xls
prüfe doch vorher ob das stimmt.
Im Netzwerk - StandardModule: Modul1
Sub TestFileOpen()
Dim iOpen As Integer
Dim sFile As String
sFile = InputBox("Path and Filename:", , "c:\test\test.xls") 'ANPASSEN
If sFile = "" Then Exit Sub
iOpen = TestOpen(sFile)
Select Case iOpen
Case 0: MsgBox "Datei " & sFile & " ist frei"
Case 1: MsgBox "Datei " & sFile & " ist geöffnet"
Case 2: MsgBox "Datei " & sFile & " wurde nicht gefunden"
End Select
End Sub
Private Function TestOpen(sPath As String) As Integer
If Dir(sPath) = "" Then
TestOpen = 2
Else
On Error GoTo ERRORHANDLER
Open sPath For Random Access Read Lock Read Write As #1
Close #1
End If
ERRORHANDLER:
If Err = 70 Then TestOpen = 1
End Function
Oder auf Lokalem Rechner reicht:
Function IstOffen(fn As String) As Boolean
Dim wb As Workbook
For Each wb In Workbooks
If UCase(wb.Name) = UCase(fn) Then
IstOffen = True
Exit For
End If
Next wb
End Function
Gruß Matze
Anzeige
AW: tja, fernmündlich...
16.05.2012 09:30:30
Elke
Hallo Matze,
die Dateien sind vorhanden, geöffnet und der Pfad stimmt auch. ich forsche jetzt nochmal in Richtung Variablendeklaration. Da könnte noch etwas versteckt sein. Wenn´s überhaupt am Programm liegt und nicht an externen Bedingungen. Auf den meisten Rechner läuft das Tool ja einwandfrei.
LG und auch noch mal ein Danke für die Anregungen
Elke
AW: Worksheetübergabe an anderes Workbook
15.05.2012 21:07:44
Uduuh
Hallo,
das geht besser ohne Selet und Activate.
Anstatt deinem Code einfach
Workbooks(v_ThisWb).Sheets(Fall_X).Move After:=Workbooks(v_DateiName).Sheets(1)
Sind die Ausdrücke in den Klammern alles Variablen? Falls Fall_X der Name des Sheets ist und keine Var, gehört der in "". Dann kann das aber noch nie funktioniert haben.
Gruß aus’m Pott
Udo

Anzeige
...Eben, also wdn das wohl Variablen sein! ;-] owT
15.05.2012 21:16:57
Luc:-?
:-?
der Grund für die FRage
15.05.2012 21:26:00
Uduuh
Hallo,
Es soll ein Worksheet "Fall_X" in eine andere
Gruß
Udo
Das war wohl nur 1 unglückl Hervorhebung! owT
15.05.2012 22:37:42
Luc:-?
:-?
AW: Worksheetübergabe an anderes Workbook
15.05.2012 21:35:22
Elke
ja, das sind alles Variablen, der Code läuft auch ohne Mucken ohne Veränderung auf diversen Rechnern und die Variablen und Pfade sind alle sauber vorhanden.
Das gesamte Tool läuft mit den Dateien (28 St.) ca. 40 Minuten. Diverse Schleifen werden gefahren und 26 separate *xls-Dateien werden angelegt ABER nicht gefüllt. Es ist auch schon sehr zeitaufwendig eine Programmmodifikation erstellt worden, welche nur noch unter XL2010 läuft, also NICHT mehr im Kompatibilitätsmodus. Die Dateien sind dann alle XLSX-Dateien, das Programm läuft natürlich unter XLSM.
Das selbe Ergebnis, auf einigen Rechern läuft´s einwandfrei, auf bisher 2 nicht.
Kann es sein, daß im Netzwerk irgendo ein Server permantent Sicherheitsabfragen macht und wenn bestimmte Rechner im Netz (Firmennetz, kein Internetzugriff) irgendwas an Daten verschieben wollen, wird das unterbunden? .... obwohl, dann müßte das Programm meckern.
Elke
Anzeige
AW: Worksheetübergabe an anderes Workbook
15.05.2012 22:49:34
Nepumuk
Hallo,
ist v_DateiName ein Variant? Dann versuch es mal so:
Workbooks(CStr(v_DateiName)).....
Ich hatte das auch schon mal, allerdings unter Excel 2000. Obwohl in der Variablen das richtige stand. Da sie aber vom Typ Variant-Untertyp String war wollte das Programm dass ich sie explizit in einen String konvertiere. Dann ging es.
Gruß
Nepumuk
AW: Worksheetübergabe an anderes Workbook
16.05.2012 09:13:07
Nepumuk
Hallo,
jetzt ist mir gerade noch etwas eingefallen. Steht in der Variablen "Workbookname" oder "Workbookname.xls" ?
Gruß
Nepumuk
AW: Worksheetübergabe an anderes Workbook
16.05.2012 09:25:10
Elke
Hallo Nepumuk,
die Variable ist in einer Variablenliste, ich hab´s jetzt nicht leider hier vor mir liegen, so in der Art gefüllt:
Dim xyz As String
xyz = "RotweinIstFein" 'Name des Worksheets
das Gleiche gilt für die Workbooks:
Dim blubb As String
blubb = "NochEinWorkbook.xls"
bzw. in der anderen spez. XL2010 Datei
Dim blubbx As String
blubbx= "NochEinWorkbook.xlsx"
LG
Elke
Anzeige
AW: Worksheetübergabe an anderes Workbook
16.05.2012 09:13:47
Elke
Guten Morgen zusammen,
danke für die vielen Anregungen. Ich werde die in den nächsten Tagen mal alle einzelnd als Ideengrundlage ins Programm einbringen.
Das mit der Variablendeklaration wäre noch ein Weg, die fraglichen Variablen sind zwar als String deklariert aber vielleicht muß hier was verändert werden.
Falls noch was an Ideen auftaucht, nur her damit. Ich bin wirklich für jeden Tipp dankbar.
Grüße und danke nochmal
Elke
AW: Worksheetübergabe an anderes Workbook
16.05.2012 09:58:18
guentherh
Hallo Elke,
Also bei der anfänglichen Aussage, es läuft auf allen Rechnern, nur auf einem (oder zweien) nicht, würde ich intensiv nach Unterschieden in den Einstellungen suchen - Ich gehe davon aus, dass die Rechner auf denen das Makro funktioniert die gleichen Office- und Windows-Versionen nutzen.
Beim Umstieg von 2003 auf 2010 gibt es ausser dem kaum funktionierenden Kompatibilitätsmodus noch das Thema Sicherheit.
Sind die Sicherheitseinstellungen auf den Rechnern gleich?
Beispiel: Mich nervt, dass Excel anhand irgendeiner Dateihistorie entscheidet, ob es die Bearbeitung zulässt. Den dazugehörigen gelben Rand, auf den ich zur Bearbeitung klicken muss, übersehe ich regelmäßig solange bis ich bemerke, dass keine Eingaben angenommen werden.
Ich kann mir gut vorstellen, dass kein move möglich ist, wenn Deine Quelle nicht als sicher eingestuft wird, und das ist abhängig von den perönlichen Einstellungen.
Ich wünsche eine erfogreiche Suche,
Günther
Anzeige

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige