Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
968to972
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
968to972
968to972
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Anpassung von Stammverzeichnis der derzeit offenen

Anpassung von Stammverzeichnis der derzeit offenen
22.04.2008 20:41:00
Stammverzeichnis
Hallo liebe Excel-Freunde,
Wie konnte ich dies richtig anpassen; Habe zwei Mappen in einen Ordner. In MappeA befindet sich der Makro "ArtikelNummerEintragen" und nach Mappe B werden die Artikel Nummer eingetragen, Das funktioniert alles super.
So jetzt will ich den Makro "ArtikelNummerEintragen" ins MappeB einbauen(d.h. er soll die Artikel Nummer aus bestimmte MappeXY in MappeB holen) und bin ich es mir nicht sicher wie kann ich es mir den Stamverzeichnis richtig anpassen.
" Workbooks.Open ThisWorkbook.Path & "\" & Range("Zieldatei").Value iRow = 2"
ich wüder es nur probieren zum beschreiben:
" Hole mir die Artikel Nummer aus MappeXY.xlsx nach MappeB.xlsm wo sich nämlich diese Makro befindet"
Hier das orginale;

Sub ArtikelNummerEintragen()
Dim wks As Worksheet
Dim vRow As Variant
Dim iRow As Integer
Set wks = ActiveSheet
Application.ScreenUpdating = False
On Error GoTo ERRORHANDLER
Workbooks.Open ThisWorkbook.Path & "\" & Range("Zieldatei").Value
iRow = 2
Do Until IsEmpty(wks.Cells(iRow, 1))
vRow = Application.Match(wks.Cells(iRow, 1).Value, Columns(1), 0)
If Not IsError(vRow) Then
Cells(vRow, 6).Value = Cells(vRow, 6).Value + wks.Cells(iRow, 3). _
Value
End If
iRow = iRow + 1
Loop
ActiveWorkbook.Close savechanges:=True
ERRORHANDLER:
Application.ScreenUpdating = True
End Sub


Ich Danke Euch für Euer Mühen
Freue mich über jeden Hinweis!
Netten Gruß
Becker

18
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Anpassung von Stammverzeichnis der derzeit
22.04.2008 22:16:00
Stammverzeichnis
Hi,
ich steig nicht wirklich 100%ig dahinter, aber ich würde tippen, Du kopierst das Makro so wie es ist in Deine MappeB und gibst in dieser Mappe einer Zelle den Namen "Zieldatei". In diese Zelle trägst Du dann den Namen Deiner Zieldatei (MappeXY.xlsx) ein. Dann KÖNNTE es klappen!?
Gruß
Uwe
(:o)

AW: Anpassung von Stammverzeichnis der derzeit
22.04.2008 23:24:59
Stammverzeichnis
Hallo Uwe,
Danke sehr für Dein netten Hinweis das werde ich dann gleich ausprobieren, drauf bin ich überhaupt nicht gekommen.
Gruß
Becker

AW: Anpassung von Stammverzeichnis der derzeit
22.04.2008 23:40:00
Stammverzeichnis
Hallo Uwe,
habe gerade probiert, passiert leider nichts, keine Fahelr Meldung gar nicht.
Normalerweise beim Übertragung aus MappeA nach Ziel MappeB musste immer die MappeB geschlossen sein dann sind die Anzahl der Artikel nach Artilel Nummer ins MappeB rüberkopiret worden. Da es jetzt umgekehrt ist weiß ich es auch leider nicht wie holle ich mir die Daten aus offene MappeB ins Ziel MappeXY.
Vielleicht hat noch jemand eine Idee.
Danke in voraus für jeden Hinweis
Gruß
Becker

Anzeige
AW: Anpassung von Stammverzeichnis der derzeit
23.04.2008 00:49:00
Stammverzeichnis
Hallo Vorname(?),
probiers mal ohne "ScreenUpdating = False" und ohne "On Error GoTo", dafür mit MsgBox-Infos.
Dann siehst du eher, was so passiert. Die MsgBox-Zeilen kannst du ja später löschen.

Sub ArtikelNummerEintragen()
Dim wks As Worksheet, vRow As Variant, iRow As Integer
'   Application.ScreenUpdating = False    ' nach dem Test aktivieren
'   On Error GoTo ERRORHANDLER            ' evtl. nach dem Test aktivieren
Set wks = ActiveSheet
Workbooks.Open ThisWorkbook.Path & "\" & Range("Zieldatei").Value
iRow = 2
Do Until IsEmpty(wks.Cells(iRow, 1))
vRow = Application.Match(wks.Cells(iRow, 1).Value, Columns(1), 0)
If Not IsError(vRow) Then
MsgBox "Zeile " & vRow & " in Mappe " & ActiveWorkbook.Name & " wird bearbeitet."
MsgBox wks.Cells(iRow, 3).Value & " wird zu " & Cells(vRow, 6) & " addiert."
Cells(vRow, 6).Value = Cells(vRow, 6).Value + wks.Cells(iRow, 3).Value
End If
iRow = iRow + 1
Loop
ActiveWorkbook.Close savechanges:=True
ERRORHANDLER:
Application.ScreenUpdating = True
End Sub

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

Anzeige
AW: Anpassung von Stammverzeichnis der derzeit
23.04.2008 01:26:00
Stammverzeichnis
Hallo Erich,
Vielen Dank für Deine Hilfe. Fehler bekomme ich in;
"Workbooks.Open ThisWorkbook.Path & "\" & Range("Zieldatei").Value"
Laufzeitfehler 1004, Die Methode Range, für das Objekt Global ist Fehlgeschlagen.
Da bin ich jetzt leider nicht so fit in VBA aber ich vermute das ist eben das was ich am Anfang Angesprochen habe und zwar das Befehl / hole die Artikel Anzahl aus Zieldatei MappeB und füge die ins diese MappeXY nach die Artikel Nummer/
Ich dankr Dir Erich für Dein netten Hinweise.
Hoffe und danke für alle kommende Hilfe
Gruß
Daniel

Anzeige
AW: Anpassung von Stammverzeichnis der derzeit
23.04.2008 02:09:00
Stammverzeichnis
Hi Daniel,

Sub tt()
MsgBox thisworkbook.Names("Zieldatei").RefersToLocal
MsgBox Range("Zieldatei").Value
End Sub


was passiert wenn du das startest bzw die 2 Befehle in den Code vor dem Open Befehl einbaust?
Gruß
Reinhard

AW: Anpassung von Stammverzeichnis der derzeit
23.04.2008 11:16:22
Stammverzeichnis
Hallo Reinhard,
ganz am Anfang bekomme ich hier "MsgBox ThisWorkbook.Names("Zieldatei").RefersToLocal" die Fehler Meldung Laufzeutfehler 1004, Anwendugs oder objektdefienierte Fehler.
Bin leider kein Fachmann aber ich schätze das man in Dim Anweisungen defienieren muss das er sich die Daten holt aus bestimmte Mappe "Workbooks.Open ThisWorkbook.Path & "\" & Range("Zieldatei").Value
iRow = 2" der rest ist der gleiche.
In orginalen Code überträgt er die Daten aus MappeA nach MappeB un die zwei müssen in einen Ordner sein. Mein Zile wäre das ich den Code in MappeB habe und aus vordefienierten MappeB holt er sich die Artikel Nummer.
Reinhard ich danke Dir für Deine nette Hilfe und hoffe das mir jemamd helfen kann.
Gruß
Daniel

Anzeige
AW: Mappenname in benannter Zelle
23.04.2008 12:18:02
Erich
Hi Daniel,
vielleicht wäre es einfacher, du würdest nicht von MappeA, MappeB oder MappeXY sprechen,
sondern mit deinen wirklichen Mappennamen, also so etwas wie Daten.xls oder Quelle.xlsm
Nach der Fehlermeldung ist fast sicher, dass es in deiner Mappe (MappeB) keine Zelle gibt,
die den Namen Zieldatei hat.
Mit Einfügen - Namen kannst du einen solchen Namen für eine Zelle vergeben.
In diese Zelle schreibst du den Namen der Mappe, in der Daten geändert werden sollen,
ohne Schrägstriche und Gänsefüßchen, also einfach so etwas wie Daten.xls
Du schreibst: "Mein Zile wäre das ich den Code in MappeB habe".
Ich hoffe, du hast den Code inzwischen in MappeB, oder?
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: Mappenname in benannter Zelle
23.04.2008 13:59:00
Becker
Hallo Erich,
Ok habe verstanden, die Daten.xlsm(ist die MappeB) und die Quelldaten.xlsm(ist die MappeA).
Wahnsinn Du bist der richtige VBA Kenner und hast sofort das richtige geahnt.
Ach stimmt Du hast ja recht mein Fehler war das ich in NamensFeld die Mappen Name "Quelldaten" reingeschrieben habe aber der NamensFeld heißt eigentlich die "Zieldatei". Ok soweit so gut.
Hier zum Problemm Details;
das funktionier richtig nur wenn der Code in Daten.xlsm
Cells(vRow, 6).Value = Cells(vRow, 6).Value + wks.Cells(iRow, 3).Value
-hier holt er aus Spalte "C" von Daten.xlsm nach Quelldaten.xlsm die Spalte Spalte "F" die Artikel Menge.
Was richtig und in Ordnung ist.
Sobald der Code in Quelldaten.xlsm ist dan schreibt er (addiert er) mir immer in Daten.xlsm in "F" Spalte die Inhalte aus Spalte "C" der Quelldaten.xlsm das sollte er nähmlich in Quelldaten.xlsm machen.
Da habe ich probiert mit Zieldatei oder Quelldatei in NamensFeld zu befehlen von wo er sich die Daten holen soll.
Meine Meinung nach vor diesen Befhel /Cells(vRow, 6).Value = Cells(vRow, 6).Value + wks.Cells(iRow, 3).Value/ sollte die Zuweisung stehen wo und welche Mappe es ist (Daten.xlsm).
Trotzdem vielen Dank an Deinen Geduld und Deine Mühe.
Gruß
Daniel

Anzeige
AW: Anpassung von Stammverzeichnis der derzeit
23.04.2008 11:23:02
Stammverzeichnis
Hi Daniel,
aufgrund dieser Fehlermeldung würde ich tippen:
Du hast in der Mappe in der das Makro steht keine Zelle die den Namen Zieldatei hat!!?
Du musst für eine Zelle diesen Namen vergeben und dann in diese Zelle MappeXY.xls oder so schreiben.
Hilft das?
Gruß
Uwe
(:o)

AW: Anpassung von Stammverzeichnis der derzeit
23.04.2008 11:36:00
Stammverzeichnis
Hallo Uwe,
Danke Dir für Deine nette Anwesung Uwe. Doch doch das habe ich gemacht in
"M1 S steht /Zieldatei:/" un in "N1 stehet /MappeXY.xlsm/" in N1 habe ich sogar in den NamenFeld MappeXY.xlsm eingetragen.
Wie gesagt der orginale Code mit Übertragung von MappeA nach MappeB funktioniert nur wenn alle 2 Mappen in einen Ordner sind und wenn der Makro aus MappeA ausgeführt wird muss die MappeB zu sein. Jetzt möchte ich es umgekehrt haben d.h. der Makro sist in MappeB und die Quell Datei will ich dann anpassen, das wird immer z.B. eine bestimmte MappeA sein.
Vielen Dank für Deine und kommende Bemühungen.
Gruß
Daniel

Anzeige
AW: Anpassung von Stammverzeichnis der derzeit
23.04.2008 17:42:18
Stammverzeichnis
Hi Daniel,
ich glaube wir reden da aneinander vorbei. Vielleicht weißt Du nicht was der Name einer Zelle ist (wenn doch, sorry, ich will Dich nicht beleidigen), deshalb Step by Step:
in N1 schreibst Du: MappeXY.xlsm (ohne Schrägstirche!)
Lass die Zelle N1 aktiv und klicke dann in der Menüleiste auf Einfügen/ Name/ Definieren ...
Bei Namen in der Arbeitsmappe: trägst Du ein:
Zieldatei
(Links oben neben der Bearbeitungsleiste steht dann auch Zieldatei)
Dann teste Dein Makro. Zumindest sollte dann eine andere Fehlermeldung kommen?!
Gruß
Uwe
(:o)

Anzeige
Anpassung von Stammverz. mit Beipiels Mappen
23.04.2008 19:50:00
Stammverz.
Hallo Uwe,
Noch mal 10000000 male Dank für Deine nette Hilfe.
Ich habe Dich verstanden
in N1 schreibst Du: MappeXY.xlsm (ohne Schrägstirche!)
-habe ich gemacht ohne Schrägstriche.
Lass die Zelle N1 aktiv und klicke dann in der Menüleiste auf Einfügen/ Name/ Definieren ...
Bei Namen in der Arbeitsmappe: trägst Du ein:
Zieldatei
(Links oben neben der Bearbeitungsleiste steht dann auch Zieldatei)

-das erste mal habe ich statt Zieldatei Mappen Name "Quelldaten" mit und ohen ".xlsm" ausprobiert danach habe ich es gelöscht und den Namen nach "Zieldatei" bennant.
Dann teste Dein Makro. Zumindest sollte dann eine andere Fehlermeldung kommen?!
-es kommt keine Fehler Meldung mehr sondern dannach wenn der Makro in "Quelldaten.xlsm" ist es kommen leider immer die Artikel Anzahl in "Daten.xlsm" in Spalte "F".
Am besten hier sind meine zwei Mappen.
In Quelldaten.xlsm sind die Artikel die verbraucht worden sind die sollen ab Spalte "B2" in Ziel Tabelle.xlsm
übertragen werden und der Code müßte in Ziel Tabelle.xlsm sein.
Die Ziel Tabelle.xlsm holt sich die Daten aus Quelldaten.xlsm ab Spalte"b2" ins Ziel Tabellen Blatt in Spalte "F" quasi ab "F2".
Ich danke Dir Uwe für Deine großzügige Hilfe, bin Dir auch nicht böse wenn ich was nicht verstanden habe.
Gruß
Daniel

Anzeige
AW: Anpass-Stammverz. mit Beipiels Mappen
23.04.2008 21:28:00
Uwe
Hi Daniel,
ich habe leider nur Office 10 und kann daher Deine *.xlsm Dateien nicht öffen.
Ich setze die Frage auf offen und hoffe es kann Dir jemand anderes aus dem Forum helfen.
Ich schau wahrscheinlich morgen auf der Arbeit noch mal 'rein ob Dir geholfen wurde. Sonst müsstest Du evtl die Dateien nochmal als *.xls hochladen.
Gruß
Uwe
(:o)

AW: Anpass-Stammverz. mit Beipiels Mappen
24.04.2008 15:00:00
Uwe
Hi Daniel,
also... -- irgendwie bin ich hinter Deinen Code nicht wirklich hintergestiegen. Ich habe einfach mal den Code so wie ich ihn schreiben würde in das Modul Deiner Zieldatei (51813) eingearbeitet und Deinen Code teilweise auskommentiert. Das sieht dann so aus:

Sub ArtikelNummerEintragen()
Dim wks As Worksheet, vRow As Range, iRow As Integer
Dim Suchen As String
'wenn ich hier aus Ziel Tabelle.xlsm das abrufe
'dann überträgt er mir die Daten in gleiche Tabelle
'und zwar das ist die Queldaten.xlsm
'Set wks = ActiveSheet
Workbooks.Open ThisWorkbook.Path & "\" & Range("Quelldatei").Value
iRow = 2
Do Until IsEmpty(Cells(iRow, 1))
Suchen = ActiveSheet.Cells(iRow, 1)
Set vRow = ThisWorkbook.Sheets("Ziel Tabelle").Range("A:A"). _
Find(What:=Suchen, LookIn:=xlValues, _
LookAt:=xlWhole, SearchOrder:=xlByColumns)
If Not vRow Is Nothing Then _
vRow.Offset(0, 5).Value = ActiveSheet.Cells(iRow, 3)
'vRow = Application.Match(wks.Cells(iRow, 1).Value, Columns(1), 0)
'If Not IsError(vRow) Then
'MsgBox "Zeile " & vRow & " in Mappe " & ActiveWorkbook.Name & " wird bearbeitet."
'MsgBox wks.Cells(iRow, 3).Value & " wird zu " & Cells(vRow, 6) & " addiert."
'wks.Cells(vRow, 6).Value = Cells(vRow, 3).Value + wks.Cells(iRow, 6).Value
'End If
iRow = iRow + 1
Loop
ActiveWorkbook.Close savechanges:=True
ERRORHANDLER:
Application.ScreenUpdating = True
End Sub


Jetzt passiert das, was Du in Deinen Kommentaren erklärt hast:
Die Werte aus der Quelldatei (also die von Heute) werden in die entsprechenden Zeilen der Zieldatei (also Lagerbestand) in die Spalte "Heute" eingetragen.
Soweit sollte das klappen. Jetzt erkläre mir, was weiter noch passieren soll, und das kriegen wir dann auch noch hin (:-))
Gruß
Uwe
(:o)

AW: Anpass-Stammverz. mit Beipiels Mappen
24.04.2008 20:19:56
Becker
Hallo mein Meiter Uwe,
Du bist ein wahnnnnnsssssiiiiiinnnn. Ech Respekt Uwe für Deine nette Hilfe.
Ich glaube tausend male Danke zu schreiben ist zu wenig daher 100000000000000000 Danke.
Du hast es alles richtig umgebaut. Meines Wissens nach dachte ich man solle nur die Ziel Datei umgekerht
benennen und die Spalten anpassen aber dahinter steckte mehr.
Dank Dir und Deine nette Hilfe ist es alles richtig aufgelöst.
Mein Respekt, vielen viel Dank.
Gruß
Daniel

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige