Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA - 2 Werte Suchen und Wert 3 ausgeben

VBA - 2 Werte Suchen und Wert 3 ausgeben
29.07.2015 14:11:59
Benji
Hallo zusammen,
ja ich benötige Hilfe... :-)
Ich habe in Mappe1 folgende Werte:

Plan	      Position   Benennung
99713203	100
99213564	200
99713203	100
99713203	100
99713203	200
99713203	300	

In Mappe 2 stehen dieselben Werte, mit zusätzlichen Spalten, die ich gerne in Mappe 1 hätte. ( _
Mappe 1 enthält normal Werte die nicht in Mappe 2 stehen)

99713203	100	Hund
99713203	200	Katze
99713203	300	Maus
99713206	200	Hase
99723156	100	Laus
99713203	100	Hund2
99713203	100	Hund3

Ich hätte jetzt gern in Mappe 1 die Bennennung bei gleicher Plannummer und Positionsnummer aus _
Mappe 2. Im Excel habe ich das mit Index und Vergleich lösen können. Allerdings treten manche _ Plannummer und Positionsnummer doppelt auf, diese würde ich gerne in eine neue Zeile schreiben:

Plan	Position	Benennung
99713203	100	Hund
Hund1
Hund2
99213564	200
99713203	300	Maus
99713203	200	Katze

Es wäre nett wenn sich das mal jemand anschaut,
https://www.herber.de/bbs/user/99150.xlsx
Evtl. ist dies garnicht mit VBA möglich ?
DANKE !

Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Ist möglich...
31.07.2015 13:13:46
Frank
Hallo,
das geht schon. Ich gehe in meinen Beispielen davon aus, dass in beiden Mappen nur das erste Blatt verwendet wird (da Du ja nur eine Mappe hochgeladen hast).
(1) Letzte Zeile in Mappe 2

lZM2=Workbooks("Mappe2.xls).Sheets(1).Range("A10000").end(xlup)

(2) Plan, Position und Benennung der ersten (Daten-)Zeile Variablen zuweisen
z.B.

PlQ=Workbooks("Mappe2.xls).Sheets(1).cells(2,1).value
PosQ=Workbooks("Mappe2.xls).Sheets(1).cells(2,2).value
BenQ=Workbooks("Mappe2.xls).Sheets(1).cells(2,3).value

(3) Letzte Zeile in Mappe 1 feststellen (s.o.)
(4) Plan und Position der ersten (Daten-)Zeile in Mappe 1Variablen zuweisen (s.o.)
(5) Vergeichen, ob beide identisch

if PlQ=PlZ and PosQ=PosZ then

(6) wenn ja, Benennung vergleichen
(7) ist die leer, dann eintragen

Workbooks("Mappe1.xls).Sheets(1).cells(3,3).value=BenQ

(8) sonst darunter schauen, ob in Spalte 1 eine Plannummer steht

if not isempty(Workbooks("Mappe1.xls).Sheets(1).cells(3,1).value)="" then

(9) wenn ja nächsten Eintrag aus Mappe 2 nehmen
(10) wenn nein, alle Zeilen bis zur nächsten Plannummer prüfen, ob diese Benennung schon vorkommt
(11) wenn ja nächsten Eintrag aus Mappe 2 nehmen
(12) wenn nein, Zeile einfügen, Benennung eintragen

Workbooks("Mappe1.xls).Sheets(1).cells(x,1).Insert Shift:=xlDown
Workbooks("Mappe1.xls).Sheets(1).cells(x,3).value=BenQ

(13) Für alle Zeilen von Mappe 2 wiederholen
Grüsse,
Frank
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige