Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
744to748
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
744to748
744to748
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Schwierig, schwierig - weiß jemand eine Lösung?

Schwierig, schwierig - weiß jemand eine Lösung?
Pascual
Es geht um eine Selbsgebastelte Kundenverwaltung in Excel. Diese besteht aus etwa 600 identischen Kundendateien, die im gleichen Ordner abgelegt sind und aus einer zentralen Datei, die sich die Kundendaten (z.B. Name, Telefon, etc.) aus den einzelnen Kundendateien holt.
In dieser zentralen Datei gibt es ein Kundendatensatz pro Zeile. Die dritte Spalte (C) beinhaltet dabei ein Kundenkürzel, das aus drei Buchstaben besteht. Genau dieses Kundenkürzel findet sich jeweils im Namen der ca. 600 Kundendateien wieder (die Dateien heißen also z.B. “gio.xls, oder “mar.xls”, etc.).
Um die Neuanlage von Kunden zu vereinfachen, gibt es in der zentralen Datei bereits “Dummy-Zeilen”, die mit einem Dummy-Kunden mit Kundenkürzel “xxx” hinterlegt sind. Gleichzeitig gibt es im Ordner mit den Kundendateien auch Dummy-Dateien, die xxx.xls heißen.
So, und jetzt wirds spannend: Wir benötigen ein Makro, dass man am Anfang jeder Tabellenzeile der zentralen Datei positionieren kann, und dass in der Lage ist, genau die Kundendatei zu öffnen, die dem Kundenkürzel der entsprechenden Zeile entspricht.
Um das Öffnen der Dateien zu ermöglichen, haben wir bereits eine “Hilfsspalte” (Spalte AM) eingerichtet, die den Pfad zu den ca. 600 Kundendateien enthält. Der Dateiname in diesem Pfad lautet bei Neuanlage zunächst immer xxx.xls.
Dieses Makro soll also in die Spalte C gehen, sich das Kudenkürzel herauskopieren und anschliessend in der gesamten Dummy-Zeile den String “xxx” durch das Kudenkürzel ersetzen. Darauf hin soll es den Befehl Datei öffnen wählen und in das Feld “Datei” den Pfad inkl. Dateiname aus der Spalte AM einfügen und die Datei öffnen.
Wir haben bisher zwei getrennte Makros. Das eine ersetzt xxx durch den Inhalt von Spalte C und das andere geht zu Spalte AM und öffnet eine Datei. Das funktioniert gut, hilft uns aber nicht weiter, weil diese Makros natürlich pro Zeile angepasst werden müßen. Wir müßen dem Makro also sagen, in welcher Zeile er sich befindet.
Wir hätten gerne ein Makro, das selbst merkt, in welcher Zeile es ist, und daraufhin in eben dieser Zeile den Ersetzungsvorgang vornimmt und anschliessend die richtig Datei öffnet.
Falls jemand versteht, was mir meinen, würden wir uns (wundern:-) und sehr über einen Tip freuen!
Unsere zwei Makros sehen wie folgt aus:

Sub openfile()
' openfile Makro
' Makro am 17.03.2006 von pcs aufgezeichnet
Workbooks.Open Filename:=Range("AM3"), UpdateLinks:=3
End Sub


Sub changefmname()
' changefmname Makro
' Makro am 17.03.2006 von pcs aufgezeichnet
Range("C4:dd4").Replace What:="xxx", Replacement:=Cells(4, 3).Value, LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Range("C10").Select
Application.CutCopyMode = False
End Sub

AW: Schwierig, schwierig - weiß jemand eine Lösung
Bernd
ein file-upload wäre sehr hilfreich
AW: Schwierig, schwierig - weiß jemand eine Lösung?
ransi
hallo
vieleicht reichen euch ja schon diese 2 zeilen:
Rows(ActiveCell.Row).Replace what:="xxx", replacement:=Cells(ActiveCell.Row, 3)
Workbooks.Open Range("AM" & ActiveCell.Row)
ransi
AW: Schwierig, schwierig - weiß jemand eine Lösung?
Pascual
Hey, Mann, ransi: das ist sowas von Genial!!! Es funktioniert. Extrem vielen Dank :-)))
AW: Schwierig, schwierig - weiß jemand eine Lösung?
Pascual
Hi ransi, noch eine Kleinigkeit:
Kann man beim Ersetzten-Befehl das auch so machen, dass immer die drei Zeichen vor ".xls" durch den Inhalt der dritten Spalte ersetzt wird, statt "xxx"?
Also nicht:
Rows(ActiveCell.Row).Replace what:="xxx", replacement:=Cells(ActiveCell.Row, 3)
Sondern:
Rows(ActiveCell.Row).Replace what:="drei Zeichen vor .xls", replacement:=Cells(ActiveCell.Row, 3)
Vielen Dank, falls Du auch hierfür eine Lösung weißt!
Anzeige
AW: Schwierig, schwierig - weiß jemand eine Lösung?
Jan
Rows(ActiveCell.Row).Replace what:="?.xls", _
replacement:=Cells(ActiveCell.Row, 3)&".xls"
mfg Jan
AW: Schwierig, schwierig - weiß jemand eine Lösung?
Pascual
Hi Jan,
vielen, vielen Dank. Das ist eine Super-Formel und sie funktioniert perfekt!
Ich bräuchte nur noch eine kleine Verbesserung, und zwar hätte ich gerne, dass der Ersetzungsvorgang nicht über alle Spalten der Zeile passiert, sondern nur von Spalte D bis Spalte AM. Kannst Du mir kurz sagen, was man am Makro noch dafür ändern muss?
Rows(ActiveCell.Row).Replace what:="?.xls", _
replacement:=Cells(ActiveCell.Row, 3)&".xls
Vielen Dank
AW: Schwierig, schwierig - weiß jemand eine Lösung?
Pascual
Hi Jan,
vielen, vielen Dank. Das ist eine Super-Formel und sie funktioniert perfekt!
Ich bräuchte nur noch eine kleine Verbesserung, und zwar hätte ich gerne, dass der Ersetzungsvorgang nicht über alle Spalten der Zeile passiert, sondern nur von Spalte D bis Spalte AM. Kannst Du mir kurz sagen, was man am Makro noch dafür ändern muss?
Rows(ActiveCell.Row).Replace what:="?.xls", _
replacement:=Cells(ActiveCell.Row, 3)&".xls
Vielen Dank
Anzeige
AW: Schwierig, schwierig - weiß jemand eine Lösung?
ransi
Hallo
versuch mal...
range("D" & ActiveCell.Row & ":AM" & activecell.row).Replace what:="?.xls", _
replacement:=Cells(ActiveCell.Row, 3)& ".xls
ransi
AW: Schwierig, schwierig - weiß jemand eine Lösung?
Pascual
VOLLTREFFER :-))
Danke ransi - vielleicht kann ich auch mal was für Dich tun.
Viele Grüße
Pascual
AW: Schwierig, schwierig - weiß jemand eine Lösung?
HansHei
Hi Pascual,
zu dem Teil:
"Wir hätten gerne ein Makro, das selbst merkt, in welcher Zeile es ist, und daraufhin in eben dieser Zeile den Ersetzungsvorgang vornimmt".Das kannst Du ihm sagen, indem Du die entsprechenden Zellen markierst.
Sub changefmname2() 'markierte Zellen
    Selection.Replace What:="xxx", Replacement:=Cells(3, 3).Value, LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
    Range("C10").Select
    Application.CutCopyMode = False
End Sub
Gruß
Hans
Anzeige
AW: Schwierig, schwierig - weiß jemand eine Lösung
Reinhard
Hi Pascual,
magste bitte das im Anhang lesen, ist nicht bös gemeint, aber ist so, ich las deine Riesenanfrage und habe erstmal sofort zugemacht.
Der Anhang ist aus einem hier sehr wohl bekannten Forum, aber ich nenne das Forum nicht weil ich da schon feststelle das es überflutet wird und dafür ist es zu schade, hat aber null nix mit dir zu tun.
Okay, das mit dem anderen Forum ist Insidertalk, aber lese bitte den Anhang, danke.
Gruß
Reinhard
Wie stelle ich eine Frage?
Eine Frage gut zu stellen, ist die halbe Miete der Antwort.
Zuerst löst du deine Frage aus deinem Projekt heraus und reduzierst diese auf dein eigentliches Problem.
Bsp.:
Du hast eine Lagerverwaltung, in denen du Tierfutter verwaltest. In dieser werden Berechnungen durchgeführt, wieviel wo was vorhanden ist.
In einem Tabellenblatt Artikelliste hast du in Spalte G die Artikelnummern stehen und in Spalte H die Futtermittelnamen.
Nun möchtest du in einer Tabelle Futterkontrolle bei Eingabe in der Zelle C114 einer Artikelnummer in Zelle D114 den Futternamen haben.
95 % sind überflüssig
Fast alles davon interessiert für das eigentliche Problem überhaupt nicht.
Keinen Menschen interessiert es, wie die Tabellenblätter heißen, wofür du das brauchst und überhaupt.
Dein losgelöstes Problem lautet: Wie finde ich zu der Nummer den Artikel und zwar in einem anderen Tabellenblatt.
Du machst nun ein allgemeinverständliches Beispiel und zwar mit Standardzellpositionen und Standardtabellennamen.
Alles andere läßt du weg, also:
Die Frage:
In Tabelle1 habe ich in Spalte A Nummern und in B daneben Bezeichnungen.
Nun möchte ich gerne in Tabelle2 in Zelle A1 die Nummer eingeben können und in Zelle B1 soll dann die Bezeichnung erscheinen.
Du siehst, ganz einfach und für jeden verständlich.
Anzeige
AW: Schwierig, schwierig - weiß jemand eine Lösung
Pascual
Hi Reinhard,
Ok, alles klar. Dass ich so einen Roman schreibe liegt daran, dass ich das Ganze so kompliziert finde und mir gar nicht vorstellen kann, dass ein anderer das einfach so versteht. Aber ich sehe, hier gibt es richtige Profis, die keine langen Erklärungen brauchen. Ich fasse mich in Zukunft kürzer :-)
Dank für den Tipp jedenfalls !
Pascual

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige