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

Neuer Thread: Pfad in andere Mappe eintragen

Neuer Thread: Pfad in andere Mappe eintragen
18.08.2005 20:53:51
Alex
Hallo,
ich habe folgendes Problem: Eine Arbeitsmappe "xy". In dieser steht der betreffende Code. (Ich nenne Sie "xy", da der Dateiname vom Benutzer erst beim Arbeiten festgelegt wird.) In dieser Mappe "xy" befindet sich u.a. Tabellenblatt "Übersicht", "Grundrezept". Die Zelle "I35" in "Grundrezept" enthält einen Wert, der in eine andere Arbeitsmappe "# Rohstoffliste.xls" an das Ende einer fortlaufende Tabelle übertragen werden soll. Dieser Wert soll jedoch so übertragen werden, dass bei jeder Änderung in "xy" der Wert in "# Rohstoffliste.xls" auch geändert wird. Demnach soll in der Zelle in "# Rohsoffliste.xls" stehen:
='C:\[Grundrezept xy.xls]Grundrezept'!I35
Jetzt komme ich zu dem schwierigen Teil: Denn diese Zeile setzt sich aus verschieden Teilen zusammen. Zur besseren Übersicht folgen die Teile untereinander:
='
Sheets("Übersicht").Range("B70").Value
[Grundrezept_
TextBox1.Value
.xls]Grundrezept'!I35
Wenn ich nun aber den Code dafür schreibe, hängt er immer an dieser langen Zeile und gibt Fehlermeldung. Ich habe dann versucht den Code nach und nach aufzubauen.
1. "='" funktioniert nicht
2. "=" funktioniert
3. ("'") funktioniert
4. "=" & "("'") funktioniert nicht.
schon da komme ich nicht weiter. Was mache ich falsch? Bitte helft mir.
Hier der Code:
Workbooks.open("# Rohstoffliste.xls")
Dim z As Range
With Workbooks("# rohstoffliste.xls")
Set z = Range("b65536").End(xlUp).Offset(1, 1)
z.Offset(0, -2) = "GR " & TextBox1.Value
z.Offset(0, 1) = "='" & Sheets("Übersicht").Range("B70").Value & "[Grundrezept " & TextBox1.Value & ".xls]Grundrezept'!I35"
Set z = Nothing
End With
Vielen Dank und Grüße
Alex

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Neuer Thread: Pfad in andere Mappe eintragen
18.08.2005 21:34:55
gordon
Steht in B70 eine Pfadangabe ?
Datei wenn geschlossen mit vollständiger Pfadangabe angeben UND z.offset(0,1).FORMULA zuweisen.
Beispiel:
z.Offset(0, 1).Formula = "='C:\Temp\[mappe1.xls]Tabelle1'!$A$1"
Das sollte dann gehen...
Gruß
gordon
AW: Neuer Thread: Pfad in andere Mappe eintragen
18.08.2005 21:47:46
Alex
Hallo Gordon,
vielen Dank für die Antwort.
Also: Ja, in B70 steht ein Pfad, dieser ist aber variabel. z.B. C:\Kalkulation\ oder d:\Archiv\Herr Meyer\
Du sagt ich soll "Formula" zuweisen. Also nach "z.offset(0,1)" ".Formula" einfügen.
Habe ich jetzt gemacht. Aber noch keine Besserung.
Dann sagst Du, ich soll wenn Datei geschlossen vollständigen Pfad angeben.
Diesen Pfad und auch den Namen der Datei weiß ich aber noch nicht, da dies ja variabel bleibt. Was ich aber weiß, dass sich der Pfad so zusammensetzt:
"='" & Sheets("Übersicht").Range("B70").Value & "[Grundrezept " & TextBox1.Value & ".xls]Grundrezept'!I35"
Code sieht nun so aus:
Workbooks.open("# Rohstoffliste.xls")
Dim z As Range
With Workbooks("# rohstoffliste.xls")
Set z = Range("b65536").End(xlUp).Offset(1, 1)
z.Offset(0, -2) = "GR " & TextBox1.Value
z.Offset(0, 1).Formula = "='" & Sheets("Übersicht").Range("B70").Value & "[Grundrezept " & TextBox1.Value & ".xls]Grundrezept'!I35"
Set z = Nothing
End With
Was soll ich jetzt tun?
Viele Grüße
Alex
Anzeige
AW: Neuer Thread: Pfad in andere Mappe eintragen
18.08.2005 22:08:16
gordon
Wenn das geht, kann es eigentlich nur ein Syntax-Problem sein.
Mal eine String variable nehmen
dim aString as String
...
aString = "='" & Sheets("Übersicht").Range("B70").Value & "[Grundrezept " & TextBox1.Value & ".xls]Grundrezept'!I35"
vor
...Formula=...
einfügen und Dir zur Laufzeit z.B. im Überwachungsfenster oder via msgBox anschauen , was wirklich zusammengesetzt wird. Backslash alle vorhanden etc.
Wenn das alles nicht fruchtet, gehen mir langsam aber sicher die Ratschläge aus.
Gruß
gordon
Pfad in andere Mappe eintragen Hilfe!!
18.08.2005 22:15:40
Alex
Hallo nochmal Gordon,
um es mal zu vereinfachen: Auch wenn die betreffende Zeile nur so aussieht, gibt er mir dort Fehlermeldung "Index außerhalb des gültigen Bereiches":
z.Offset(0, 1).Formula = Sheets("Übersicht").Range("B70").Value
Was mach ich nur?
Alex
Anzeige
AW: Pfad in andere Mappe eintragen Hilfe!!
18.08.2005 22:26:53
Alex
Hallo nochmal,
also bei der letzten Formel bin ich inzwischen weiter:
z.Offset(0, 1).Formula = Sheets("Übersicht").Range("B70").Value
Mit "ThisWorkbook." funktioniert es:
z.Offset(0, 1).Formula = ThisWorkbook.Sheets("Übersicht").Range("B70").Value
C:\Kalkulation\
Wenn ich nun aber versuche den Code weiter aufzubauen:
z.Offset(0, 1).Formula = "=" & ThisWorkbook.Sheets("Übersicht").Range("B70").Value
=C:\Kalkulation\
funktioniert es noch. Wenn nun aber ein dritter Ausdruck hinzukommt oder ich ihn anders schreibe, kommt sofort die Fehlermeldung:
z.Offset(0, 1).Formula = "='" & ThisWorkbook.Sheets("Übersicht").Range("B70").Value
z.Offset(0, 1).Formula = "=" & ("'") & ThisWorkbook.Sheets("Übersicht").Range("B70").Value
Beides funktioniert nicht. Waran kann das nur liegen?
Alex
Anzeige
AW: Pfad in andere Mappe eintragen Hilfe!!
18.08.2005 22:55:17
gordon
Hi Alex,
(sorry, war weg, bin es auch gleich wieder ;-))
so leid es mir tut, Ramses hat völlig recht.
bei den beiden Zeilen fehlt z.B. das jeweils beendende einfache Hochkomma _ ' _, es sei denn, es ist in B70 enthalten.
Also, nicht aufgeben
Gruß
gordon
Problem gefunden
18.08.2005 23:19:40
Alex
Hallo an alle,
es funktioniert jetzt.
Ich habe den Code so wie er war als Variable geschrieben, also nicht direkt hinter z.offset gesetzt. Und nun funktioniert es.
Der Code war also in Ordnung nur musste es über eine Variable gehen.
Trotzdem danke an alle.
Alex
AW: Neuer Thread: Pfad in andere Mappe eintragen
18.08.2005 22:30:54
Ramses
Hallo
Das ist die Vorgabe
 
 ABCD
1C:\Temp\Mappe2.xlsTabelle1 
2    
3Vorgabex  
4VBA Formelx  
5    
Formeln der Tabelle
B3 : ='C:\Temp\[Mappe2.xls]Tabelle1'!$A$1
B4 : ='C:\Temp\[Mappe2.xls]Tabelle1'!A1
 

und das ist der VBA Code für Zelle B4
Option Explicit

Sub demo()
Dim str As String
str = "='" & Range("A1") & "[" & Range("B1") & "]" & Range("C1") & "'!A1 "
Range("B4").Formula = str
End Sub

Diese Variante funktioniert.
Hast du einen Index-Fehler, deutet es in 99,99999% der fälle auf einen Schreibfehler hin.
Leerzeichen sind eben auch Zeichen :-)
Alle weiteren Diskussionen sind eigentlich überflüssig.
Gruss Rainer
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige