Clever-Excel-Forum

Normale Version: Excel2010 - Daten aus Matrix auswählen und in neuen Zeilen einfügen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,

Ich habe ein Problem, an dem ich mir momentan die Zähne ausbeiße. Leider bin ich nicht sonderlich erfahren im Umgang mit VBA und hoffe, dass ihr vielleicht den einen oder anderen Tipp für mich habt.

Ich habe eine Liste (Angefügte EXCEL Datei – Tabellenblatt „Liste“). In diesem Blatt sind diverse Bauteile aufgeführt (Spalte D – MD (Drehstrommotor); MDR (Rollgangsmotor); BBB (Technologisches Messgerät 1); BBZ (Technologisches Messgerät 2)).

Ich möchte den Bauteilen automatisch Kabel und Leitungen zuordnen. Eine Kabelauswertung habe ich bereits fertiggestellt. Ich muss in die INPUT-Liste zusätzlichen Informationen einbringen, um diese im zweiten Schritt in meine Auswertung übertragen zu können. Dafür soll die Liste (Angefügte EXCEL Datei – Tabellenblatt „Liste“) mit Hilfe einer Matrix (Angefügte EXCEL Datei – Tabellenblatt „Matrix“) ergänzt werden.
Beispiel:
Input:
A B C D E F G H …
1 H 02 EA019 MD 113 … …

EXCEL soll den Wert aus Spalte D nehmen, diesen in der Datenbank (Matrix) suchen, und zusätzliche Werte unterhalb der Originalzeile ausgeben. Der gefundene Wert soll wieder in Spalte D stehen. die übrigen Zellen sollen aus der Originalzeile übernommen werden.

In dem Beispiel bedeutet das folgendes:

EXCEL findet in Spalte D das Bauteil „MD“. Dieses Bauteil findet EXCEL in der Matrix, prüft in der Matrix ob unterhalb noch zusätzliche Bauteile benötigt werden, und gibt diese in der Zeile / den Zeilen unterhalb der eingelesenen Zeile aus.

Im angegebenen Beispiel, sowie in der angefügten EXCEL Mappe, müsste EXCEL ein weiteres Bauteil (Kabel) mit der Bezeichnung „PE“ finden. Dieses soll eingefügt und der Rest der Liste entsprechend nach unten verschoben werden.

Stehe hier vor einem, für mich, riesigen Problem. Bin für Anregungen und Vorschläge wirklich dankbar.

Gruß Jens
Hallo Jens

ich hoffe du hast einen guten Zahnarzt.  Vielleicht sollten wir die Aufgabe lösen, ist besser für die Zähne.
Vom Material her sind mir Drehstrommotote und Messgeraete bekannt, (die drehen sich um die eigene Achse)     Rheinischer Humor

In der Output Liste ist mir noch einiges unklar, weiss nicht ob das wirklich so richtig ist??  Frage lieber mal nach ...
Im Prinzip sehe ich das die grauen Zeilen bis auf Spalte D mit dem Text in den weissen Zellen 1:1 identisch sind.  Ist das so richtig??  Dann ist es ein einfaches Kopier Programm. Nur mit Unterschied eines anderen Textes in Spalte D

Andere Frage:  wo soll der Output hingeschrieben werden??  Denn wenn man ihn direkt unter Input schreibt überschreibt man sich ja mit den neuen Inputs irgendwann die eigenen Output Daten.  Gibt es dafür eine extra Tabelle, oder wie ist das gedacht??  Output daneben in Spalte L/M schreiben??

mfg  Gast 123
Hallo,

Danke für die Antwort!

"Im Prinzip sehe ich das die grauen Zeilen bis auf Spalte D mit dem Text in den weissen Zellen 1:1 identisch sind.  Ist das so richtig??  Dann ist es ein einfaches Kopier Programm. Nur mit Unterschied eines anderen Textes in Spalte D"

--> Das ist richtig. Die Zeile soll im Prinzip kopiert werden. In Spalte D soll die Info aus der Matrix ausgegeben werden (PE, CC oder DP).  

"Andere Frage:  wo soll der Output hingeschrieben werden??  Denn wenn man ihn direkt unter Input schreibt überschreibt man sich ja mit den neuen Inputs irgendwann die eigenen Output Daten.  Gibt es dafür eine extra Tabelle, oder wie ist das gedacht??  Output daneben in Spalte L/M schreiben??"

--> Die Zellen sollen in der gleichen Mappe eingefügt werden. Die darunterliegenden Zeilen sollen entsprechend nach unten geschoben werden.
Habe schon mal so etwas ähnliches geschafft, allerdings war da kein bezug zu einem anderen Tabellenblatt.

Mein Ansatz dafür ware sowas wie:

                Rows(i + 1).Select
                Selection.Insert shift:=xlDown
                Range(Cells(i, 1), Cells(i, 10)).Copy
                Cells(i + 1, 1).Select
                ActiveSheet.Paste
Hallo,

habe versucht mit konventionellen EXCEL Methoden der Sache Herr zu werden.... erfolgsfrei...

Hier muss wohl oder übel ein Makro her.

Leider sind meine VBA Erfahrungen dezent unterirdisch.

... aber aufgeben ist keine Option! :17:

Bin weiterhin für Hilfe dankbar, melde mich, wenn ich was ereicht habe.
Hallo Tret

Zitat:Leider sind meine VBA Erfahrungen dezent unterirdisch....   aber aufgeben ist keine Option!    Der zweite Satz gefaellt mir sehr!!

wer unterirdisch arbeitet sollte eine helle Lampe mitnehmen.  Vielleicht bringt mein Makro etwas Licht ins Dunkel!!??   Würde mich freuen.

Obwohl es eine xlsx Datei ist enthaelt sie "deaktivierte Makros"  Als Text in der Info Tabelle und im Modulblatt für Tabelle "Liste"  Dort siehst du das Makro mit vorgestelletem " '* " Zeichen. Dieses Zeichen einfach mit Suchen und Ersetzen durch Nichts = "" löschen. Damit ist das Makro wieder aktiv! Die " '* " Zeichen Kombi ist notwendig weil man das normale " ' " Zeichen vor einem Kommentar nicht weglöschen darf!!

Nach dem aktivieren des Makros einfach in die Liste eingeben und dort wo etwas eingefügt werden soll in Spalte "D" einen Doppelklick auf das Wort "BBZ" machen.  Sehen und staunen, den Rest macht das Makro.  Kein Button oder sonstige Klimmzüge.  Der Doppelklick ist nur in Spalte D aktiv!!

Ist das eine Lösung mit der du arbeiten kannst??

mfg Gast 123
Hallo Gast 123,

Vielen Dank für deine Hilfe! mit "Suchen und Ersetzen" hatte ich keinen Erfolg. Habe den Code im VBA-Editor eingefügt und zum laufen gebracht.

Deine Lösung, dass die eingefügten Zeilen unter dem Bauteil grau werden, und so nicht doppelt eingefügt werden können, ist super!

Hat mich einen großen Schritt weiter gebracht.

Danke!