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

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 !

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

322 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige