Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1836to1840
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

Speichern in Datei eines Unterordners

Speichern in Datei eines Unterordners
30.06.2021 16:45:39
Bastian
liebe Helfer,
ich habe
C:\ Liste.xls und
C:\NrListe.xls und die mithilfe von Liste.xls erzeugten Dateien
C.\Dateien\Datei-1.xls,Datei-2.xls, usw.
Wenn ich eine der Dateien (z.B. der Nr x) per Doppelklick aufrufe, öffnet sich auch Liste.xls im Hintergrund.
Wie kann ich sicherstellen, dass ich die aus der NrListe.xls geholte Nr x tatsächlich in Datei-x schreibt, z.B. in Zelle A1?
So wie ich das jetzt mache schreibt er immer in Liste.xls Zelle A1.
Danke Bastian

16
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Speichern in Datei eines Unterordners
30.06.2021 17:40:47
onur
Sorry, aber meine Kristallkugel ist in der Werkstatt.
AW: Speichern in Datei eines Unterordners
30.06.2021 18:16:31
Bastian
meine Frage reduziert sich auf:
wie lese ich die Nummer x der aktuell aufgerufenen Datei-x.xls aus, x = 0, 1 , 2, usw, aus?
AW: Speichern in Datei eines Unterordners
30.06.2021 18:24:14
onur
Woher soll ich das wissen, wenn ich deine Datei nicht habe und nicht weiss, was Nummer x sein soll ?
AW: Speichern in Datei eines Unterordners
30.06.2021 20:27:09
Bastian
Ich will damit nur sagen, die xls-Dateien (Probe....) sind unterschiedlich, beliebiger Name, sie werden mit einer Excel-Quelldatei genannt AlleProben erzeugt
ich stelle mir vor:
eine xls-Probe..... beliebigen Namens wird aufgerufen, in einen String wird deren genauer Dateiname (ohne die letzten 4 Stellen .xls) gespeichert,
aus der Probe..... Datei beliebigen Namens heraus werden Makros der Quelldatei AlleProben aufgerufen, um die Datei zu editieren, das ist meisten nötig
eine ganze Zahl wird aus einer Probennummernliste.xls geholt und in eine Variable geschrieben, die sowas wie "global" ist,
diese ganze Zahl wird nun in Zelle A5 der Probe.... Datei beliebigen Namens übergeben,
dieses übergeben klappt nicht,
das ist mein Problem,
Anzeige
AW: Speichern in Datei eines Unterordners
30.06.2021 18:40:29
Bastian
ich glaube ich habe es früher schon mal gelöst mit euerer Hilfe:
Dim dName$
Dim DatName As String
'in F20 gespeicherter neuer DateiName wird in Variable DatName geschrieben:
DatName = ActiveWorkbook.Worksheets(1).Range("F20")
'bestimmt aktuell zu benutzenden Namen aus Zelle F20
strN = ActiveWorkbook.Worksheets(1).Range("F20")
'in F20 steht Malte oder Lola... oder...
strP = ThisWorkbook.Path & "\Rechnungen\"
lngZ = 1
Do 'zählt die Versionsnummern hoch ein und derselben Datei (aus Herber-Excel-Forum)
If Dir(strP & strN & "(" & lngZ & ").xls") = "" Then
Exit Do
Else
lngZ = lngZ + 1
End If
Loop
ActiveSheet.Copy
ActiveWorkbook.SaveAs strP & strN & "(" & lngZ & ").xls"
ActiveWorkbook.Close Savechanges:=False 'False = speichert nicht auf Datenträger
Range("A6").Value = Range("F20") & "." 'fügt Punkt an in Zelle A6
ActiveWorkbook.Save
ActiveWorkbook.Close Savechanges:=False 'auch nach oben ?
Application.DisplayAlerts = False
Application.Quit
Anzeige
AW: Speichern in Datei eines Unterordners
01.07.2021 07:07:10
Oberschlumpf
Hi Bastian,
was der andere Helfer mit "Kristallkugel" und seinen anderen Hinweisen meint, ist:
Du müsstest uns mindestens von Liste.xls, NrListe.xls und Datei-1.xls,Datei-2.xls Beispiel-Dateien per Upload zeigen, damit wir vielleicht helfen können.
Nur allein deine Beschreibungen helfen diesmal leider nicht.
Ciao
Thorsten
AW: Speichern in Datei eines Unterordners
01.07.2021 18:00:14
Yal
Hallo Bastian,
Zitat: "meine Frage reduziert sich auf: wie lese ich die Nummer x der aktuell aufgerufenen Datei-x.xls aus, x = 0, 1 , 2, usw, aus?"
da deine Datei -anscheinend- immer ein festen Namensanteil hat, sollte es kein Problem, diese zu "radieren". Es bleibt dann die Nummer übrig.

Sub test()
Dim w As Workbook
Const cFesteTeil = "Probe_"
For Each w In Workbooks
Debug.Print w.Name, Replace(Replace(w.Name, ".xlsx", ""), cFesteTeil, "")
Next
End Sub
VG
Yal
Anzeige
AW: Speichern in Datei eines Unterordners
01.07.2021 22:12:30
Bastian
Vielen Dank für Eure Geduld,
was ist w, ist w eine beliebige andere Excel-Datei im selben Ordner?
Was ist brauche ist ein Befehl, mit dem ich eine ganze Zahl aus einer Excel Datei in eine andere übertragen kann,
das gelingt mir - aber nur in die Excel-Mutterdatei, mit der ich die vielen Unterdateien erzeugt habe, nicht aber in eine der Unterdateien selber, die sich im einem Unterordner befindet.
Kann man nicht den Copy and Paste Buffer dazu benutzen?
AW: Speichern in Datei eines Unterordners
01.07.2021 22:54:25
Oberschlumpf
und das mit der Bitte, uns per Upload Bsp-Dateien zu zeigen hast du nicht verstanden?
ok, ich mag auch nicht weiterhelfen...
Anzeige
so weit sind wir noch nicht
01.07.2021 23:13:37
Yal
Hallo Thorsten,
ich glaube, bei Bastian muss man mit den Basics anfangen...
Sein Anliegen ist sehr einfach, aber er schafft es noch nicht, es zu beschreiben. Wir arbeiten dran.
So viel habe ich verstanden: es gibt in einem Verzeichnis viele Dateien, diese müssen einzel geöffnet werden, um den Name der Datei und eine Werte in der Datei auf einer Übersichtblatt zu sammeln.
@Bastian: Du korrigierst, falls ich falsch liege.
Gute Nacht!
Yal
AW: so weit sind wir noch nicht
04.07.2021 09:24:03
Bastian
liebe Leute,
im Regal bei mir hatte ich noch "VBA Excel" , Markt und Technik, 2005 gefunden, unbenutztes Exemplar aus den Restposten von "Bücher billiger.de", passt wunderbar zu meinem excel 2002.Tolles Buch, erklärt immmer mit Beispielen, sodass der Code seinen Schrecken verliert. Und irgendwie habe ich meine Programmierung nun hinbekommen.
Vielen Dank nochmals für Eure Mühe!!!
Gruß Bastian
Anzeige
AW: Speichern in Datei eines Unterordners
01.07.2021 23:03:01
Yal
Hallo Bastian,
ja, es erfordert ein minimum an Wisssen, um das gesamt zu verstehen.
W ist eine Variable.
Jede Variable hat einen Typ. W ist auf dem Typ Workbook "dimensioniert" (diese Begriff existiert nicht, hilft aber den "Dim" zu erklären)
Also W kann jede Wert annehmen, solang diese Wert ein Workbook darstellt (eigentlich die Adresse vom Workbook. Diese sieht man nie, wird aber stets verwendet, um den gewünschten Workbook anzusprechen).
Danach geht es in Schleifen über die Auflistung alle Workbooks. Auflistungen haben immer einen "s" am Ende. Workbooks ist die Auflistung alle einzelne Workbook, also alle in Excel geöffnete Arbeitsmappen, seien Sie als Datei gespeichert oder noch nicht.
Diese Workbook sind Objekte. Objekte haben Eigenschaften. In dem Fall "Name". Diese Eigenschaften sind auch Variablen. Nur nicht lose Variable, sondern an einem Objekt gebunden. Name von Workbook 1 ist nicht Name von Workbook 2.
In dem Fall ist Name vom Typ String. Daher kann man auf einem String ein Replace machen.
Anschliessend Debug.Print: das Ergebnis des Gesamtes wird in der Direkt-Fenster (Ansicht, Direkt-Fenster oder Strg+g) herausgegeben.
Da dieses Coding nichts bewirkt, ausser Ergebnisse im Direkt-Fenster auszugeben, kannst Du ruhig laufen lassen und sehen, was dabei rauskommt.
Es gibt den Name des in der Schleife adressierte Workbook und das Ergebnis nach zwei Ersetzen auf dem Namen des Workbook (genetiv sollte ein s bekommen, sört aber ide Erklärung, weil da nicht die Auflistung gemeint ist).
Copy paste über der Zwischenablage: genau wie Zwenn vor kurzem in einem guten Beitrag erklärt hat: Programmieren bedeutet dem Computer sagen, was er zu tun hat. Aber er kann es nur auf seinem Art machen. Also wird die Lösung nicht "wie ein Mensch es gemacht hätte" sondern "wie ein Computer es nur machen kann".
Du muss daher lernen, wie ein Computer zu denken. Aber das lernt man am besten bei Programmieren (Genau wie schwimmen lernen und Wasser zusammengehören).
Werte, die hier gelesen und dort übergeben werden, werden über Variablen "transportiert". Zwischenablage ist nur für der Mensch, der vor dem Computer sitzt (Zwischenablage ist eigentlich auch eine Variable, aber eine komplizierte.)
Folgende Code macht das gleich wie vorher, nur das man die Anzahl von Workbook in der Auflistung Workbooks ermittelt (Eigenschaft "Count" von Objekt Workbooks) und in Schleife von 1 bis Anzahl die einzelnen Workbook aufruft.
da ich festgestellt habe, dass nicht nur xlsx sonder auch xlsm und xls geben kann, mache ich den Replace mit eine Schleife über aufgelisteten Werte.
Im Schrittmodus kannst Du sehen, wie bei jedem Durchlauf der Schleife der Inahlt der Variable WName sich ändert (oder nicht).

Sub Test2()
Dim i As Integer
Dim S
Dim WName As String
Const cFesteTeil = "Probe_"
For i = 1 To Workbooks.Count
WName = Workbooks(i).Name
For Each S In Array(cFesteTeil, ".xlsx", ".xlsm", ".xls")
WName = Replace(WName, S, "")
Next
Debug.Print Workbooks(i).Name, WName
Next
End Sub
VG
Yal
Anzeige
AW: Speichern in Datei eines Unterordners
01.07.2021 22:58:51
Bastian
Liebe Leute, ich habe was im Archiv gefunden, das könnte passen,
es reicht mir,
von einer festen Zelle von Datei A in eine andere feste Zelle im Datei B zu übergeben,
wobei die Datei1 in einerm Unterordner von Datei2 ist:
_________________________________
Geschrieben am: 04.08.2008 10:10:57 von Eimer
ich möchte gerne Über 2 Dateien mit Hilfe von VBA einen Bereich kopieren und einfügen.
Das ist mein Code, funktioniert toll bei einer aktiven Datei, jedoch nicht bei 2 Dateien.
Es kommt immer der Fehler: Laufzeitfehler '9' Index außerhalb des gültigen Bereichs.
Allerdings ist doch der Bereich der gleiche. A1=A1, wo liegt hier der Fehler

Sub kopieren()
Windows("Peter.xls").Activate
Workbooks("Peter.xls").Worksheets("Tabelle1").Range("A1").Copy
Windows("Lustig.xls").Activate         Workbooks("Lustig.xls").Worksheets("Tabelle2").Range("A1").PasteSpecial Paste:= xlPasteValues, _
Operation:=xlNone, SkipBlanks:=False, Transpose:=False
End Sub
Probier mal...
Workbooks("Lustig.xls").Worksheets("Tabelle2").Range("A1") = Workbooks("Peter.xls").Worksheets("Tabelle1").Range("A1").Value
Achte auf mögliche Schreibfehler in den Mappen-/Tabellenbezeichnungen.
Gruss Chris
Hi,
das funktioniert, solange ich keinen Variablen Bereich angebe.
------------------------------------------------------------------------------
Wie mache ich das nun mit den Pfadangaben?
Danke für eure Hilfe!
Anzeige
AW: Speichern in Datei eines Unterordners
01.07.2021 23:08:05
Yal
Hallo Bastian,
wenn Du eine Zelle in einer Datei lesen möchte, kommst Du nicht drum, diese Datei zu öffnen. Dann ist es nicht mehr eine "Datei" sondern einen "Workbook" (siehe mein anderen Beitrag).
Öffne eine Datei unter Verwendung des Makrorecorders und schau dir anschliessend den Code (vergiss nicht den Makrorecorder zu stoppen).
Daraus kannst Du ableiten, wie diese Code in Schleifen laufen muss, um alle Dateien in einem Verzeichnis durchzugehen (naja. Du meldest Dich dann :-)
VG
Yal
AW: Speichern in Datei eines Unterordners
02.07.2021 19:21:19
Bastian
Danke für Eure riesige Mühe und den Tipp, hier mein Resultat,
ich muss aber noch die indirekte Adressierung der Quelldatei statt eines festen Pfads einbauen
UND
mir zuerst der Namen der PrDatei merken, in die ich die Zahl aus Zelle A5 übertrage, wieder in Zelle A5.
Was fehlt sonst noch oder ist zuviel?

Sub Makro2()
' Makro kopiere Zelle A5 und schreibe Inhalt in Zelle einer anderen Datei
' die Quelldatei ist bereits geöffnet, dahinein in Zelle A5 steht bereits die zu übertragende Zahl, ' soweit bin ich bereits gekommen
Range("A5").Select 						   '1
Selection.Copy						           '2
ChDir "E:\alte-Desktops\Desktop\PrDateien"          '3
Workbooks.Open Filename:= _
"E:\alte-Desktops\Desktop\PrDateien \PrDatei-Nr_(1).xls", UpdateLinks:=3   '4
Range("A5").Select					           '5
ActiveSheet.Paste						   '6
ChDir "E:\alte-Desktops\Desktop"			   '7
Windows("Quelldatei.xls").Activate			   '8
Range("A3").Select					           '9
End Sub

Anzeige
AW: Speichern in Datei eines Unterordners
04.07.2021 09:26:04
Bastian
liebe Leute,
im Regal bei mir hatte ich noch "VBA Excel" , Markt und Technik, 2005 gefunden, unbenutztes Exemplar aus den Restposten von "Bücher billiger.de", passt wunderbar zu meinem excel 2002.Tolles Buch, erklärt immmer mit Beispielen, sodass der Code seinen Schrecken verliert. Und irgendwie habe ich meine Programmierung nun hinbekommen.
Vielen Dank nochmals für Eure Mühe!!!
Gruß Bastian

303 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige