Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1376to1380
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
Inhaltsverzeichnis

Wie Range Bezug in andere xls Datei

Wie Range Bezug in andere xls Datei
18.08.2014 01:09:59
AStis
Hallo, vielleich kann mir jemand von euch helfen.
Mit folgendem Code befülle ich eine Datenmaske im Arbeitsblatt "Drucken" und drucke diese entsprechend aus.
Wie kann ich nun diesen Code verändern, um auf eine ander Datei(Namen.xlsx) zugreifen zu können? (Das Tabellenblatt dort lautet 119)
Aus ActiveCell.Value = "=Datenblatt!R[" & z - 1 & "]C[0]" habe ich jetzt mal
ActiveCell.FormulaR1C1 = "='[Namen.xlsx]119'!R[" & z - 1 & "]C[6]" gemacht.
Als Ergebnis bekomme ich aber nun nicht den Zellinhalt aus Namen.xlsx sondern nur die Formel in die Zelle geschrieben... :-(
- So sieht der laufende gesamt Code aus... -
Sub Drucken()
Dim z As Long
For z = 1 To Worksheets("Datenblatt").Range("a65536").End(xlUp).Row
Worksheets("Vorbereitung").Select
Range("A1").Select 'Vorname
ActiveCell.Value = "=Datenblatt!R[" & z - 1 & "]C[0]"
Range("b1").Select 'Nachname
ActiveCell.Value = "=Datenblatt!R[" & z - 1 & "]C[0]"
Range("c1").Select 'Strasse
ActiveCell.Value = "=Datenblatt!R[" & z - 1 & "]C[1]"
Range("d1").Select 'PLZ
ActiveCell.Value = "=Datenblatt!R[" & z - 1 & "]C[5]"
Range("e1").Select 'Ort
ActiveCell.Value = "=Datenblatt!R[" & z - 1 & "]C[9]"
Worksheets("Druckbild").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1
Next z
End Sub
Vielen Dank

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Das ist ja auch klar, denn du hast ja auch ...
18.08.2014 02:13:30
Luc:-?
…einen FmlText dem ZellWert (.Value) zugewiesen, AStis;
willst du Werte direkt eintragen (keine FernBezugsFmln), geht das prinzipiell so:
Range("A1") = Workbooks("Namen.xlsx").Sheets("119").Cells(z - 1, 6)
Allerdings ist hier die reale ZellNummerierung (Zeile, Spalte) zu verwenden. Außerdem kannst du dir die Selectiererei sparen und dafür besser alles sauber referenzieren. Für die ZielZelle kannst du auch einen Zyklus verwenden.
Morrn, Luc :-?

AW: Das ist ja auch klar, denn du hast ja auch ...
18.08.2014 06:27:47
astis
Hallo und besten Dank für die Hilfe. Ich werde das gleich mal probieren. Allerdings verstehe ich nicht richtig wieso es innerhalb der einen tabelle geklappt hat dann nicht mehr funzt sobald ich mich auf eine andere datei beziehe. Vermutlich fehlt mir noch einiges an Grundwissen.

Anzeige
Formel oder Wert, andere Mappe
18.08.2014 08:43:51
Erich
Hi,
einige Bemerkungen/Fragen:
a)
Was soll eigentlich nachher in den Zielzeilen stehen?
Sollen da Formeln stehen (deren Werte sich später ändern können, wenn sich Quelldaten ändern)?
Oder sollen feste Werte in den Zielzellen geschrieben werden?
b)
Oben im Text deines Beitrags schreibst du "ActiveCell.FormulaR1C1",
im Code verwendest du weiter nur "ActiveCell.Value".
Warum?
c)
"Als Ergebnis bekomme ich aber nun nicht den Zellinhalt aus Namen.xlsx sondern nur die Formel in die Zelle geschrieben."
Die Ursache kann sein, dass die Zielzellen das Zahlenformat "Text" ("@") haben.
Dann wird eine Formel nicht als Text erkannt, sondern als irgend ein Text in die Zelle geschrieben.
Ist per Hand genauso.
d)
Statt
Range("A1").Select
ActiveCell.Value = ...
ist sicherer, kürzer, übersichtlicher, besser...:
Range("A1").Value = ...
Zum Spielen auf einem neuen Tabellenblatt:

Option Explicit
Sub Formeltext()           ' In [Namen.xlsx]119!B2 sollte ein Wert stehen.
Dim z As Long
z = 1
Cells(2, 1).FormulaR1C1 = "='[Namen.xlsx]119'!R[" & z - 1 & "]C[1]"
Cells(3, 1).FormulaR1C1 = "='[Namen.xlsx]119'!R[-1]C[1]"
Cells(4, 1).Value = "='[Namen.xlsx]119'!R[-2]C[1]"    ' nicht zu empfehlen
Cells(5, 1).FormulaR1C1 = "='[Namen.xlsx]119'!R2C2"
Cells(5, 2) = Workbooks("Namen.xlsx").Sheets("119").Cells(2, 2) ' keine Formel
Rows(8).NumberFormat = "@"
Cells(8, 1).Value = "='[Namen.xlsx]119'!R2C2"         ' nicht zu empfehlen
Cells(8, 2).FormulaR1C1 = "='[Namen.xlsx]119'!R2C2"
Rows(9).NumberFormat = "General"
Cells(9, 1).Value = "='[Namen.xlsx]119'!R2C2"         ' nicht zu empfehlen
Cells(9, 2).FormulaR1C1 = "='[Namen.xlsx]119'!R2C2"
Cells(11, 1).Value = 17 + 4
Cells(12, 1).Value = "=17+4"                    ' eine Formel als Value...
End Sub
@Luc:
Auch mit .Value kann man eine Formel in eine Zelle schreiben. Schrecklich, aber es geht!
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich

Anzeige
Das weiß ich, Erich, sie wird nur nicht immer ...
18.08.2014 15:53:48
Luc:-?
…sofort wirksam und ggf als einfacher Text behandelt, was unter den von dir genannten Bedingungen aber auch passiert, wenn man sie in .Formula[R1C1] schreibt, denn auch hier kann man Werte eintragen, was dann weniger „schrecklich“ als mitunter sinnvoll ist. ;-)
Gruß, Luc :-?

AW: Formel oder Wert, andere Mappe
19.08.2014 22:17:20
Astis
a)
also wie gesagt ich habe eine "Quelldatei" in der Kundennamen, Adressen etc. stehen.
Diese sollen von prinzip einfach nur übertragen werden. Es kann sein dass in einer
anderen Quelldatei mal die selben Daten (Name, Anschrift etc.) in einer anderen Spalte stehen.
b)
hmmm keine Ahnung warum ich das so schreibe... ich lerne VBA Quasi aus dem was mir der Makrorecorder
ausspuckt und reime mir dann so bissel was zusammen. Klingt sicherlich schrecklich, ist aber leider so :-(
c)das mit dem Format ist mir auch aufgefallen, irgendwie steht tatsächlich immer Text als Format,
auch wenn ich es vorher auf "Standart" formatiere. Nach Programmdurchlauf eben wieder Text... ?
d)
Statt
Range("A1").Select
ActiveCell.Value = ...
ist sicherer, kürzer, übersichtlicher, besser...:
Range("A1").Value =
Hmmm ja klingt logisch... scheinbar heisst Programmiersprache Programmiersprache weil man ein und das selbe in unterschiedlicher Weise sagen kann? Mein VBA Wissen reicht sichlich nicht mal aus mir damit ien Bier zu bestellen... :-(
Anzeige

307 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige