Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
24.04.2024 17:19:09
Anzeige
Archiv - Navigation
704to708
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
704to708
704to708
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

SVWERWEIS mit VBA

SVWERWEIS mit VBA
07.12.2005 08:25:28
Markus
Hallo liebe Excel Gemeinde.
Volgendes Problem.
Ich möchte aus einer Tabelle (in der Demodatei "Grunddaten") Daten bei einer bestimmten Eintragung in Spalte A in Tabelle (Filterdaten) Eintragen. Dies ist zwar mit dem normalen Befehl SVERWEIS möglich, aber leider geht das dann nicht untereinander, sondern immer nur Zeilenbezogen.
Es ist so, das ich wenn in der Spalte A der Grunddaten einen Begriff mit "HID" stehen habe die Daten die in Tabelle Filterdaten stehen dort eingetragen haben möchte und zwar untereinander weg. Sollte sich der Begriff in Spalte A in ein Wort ohne "HID" ändern, soll auch die Zeile in der Tabelle Filterdaten verschwinden (allerdings mit rückfrage ob wirklich gelöscht werden darf).

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

Betreff
Datum
Anwender
Anzeige
AW: SVWERWEIS mit VBA
07.12.2005 08:34:36
Aton
Hallo
Warum benutzt du nicht den autofilter mit benutzer-definiert.
da brauchst nichts löschen und kannst dir anzeigen lassen was du willst.
Gruß Aton
AW: SVWERWEIS mit VBA
07.12.2005 09:22:23
Markus
Hi Aton,
ich muß in der neuen Tabelle noch weitere Daten hinzufügen.
Gruß Markus
AW: SVWERWEIS mit VBA
07.12.2005 10:02:38
Erich
Hallo Markus,
wie ich das verstehe, möchtest du so etwas:
Du hast "Grunddaten" und "Filterdaten", jeweils mit irgendwelchen Einträgen. Nach Vorgabe eines Suchbegriffs möchtest du
1. die Einträge in "Filterdaten", bei denen der Suchbegriff nicht in A vorkommt, nach Rückfrage löschen
2. "Grunddaten"-Werte aus den Zeilen, in denen der Suchbegriff in A vorkommt, an die "Filterdaten" anhängen (am Ende?)
Habe ich das richtig verstanden?
Zusatzfrage:
Steht der Suchbegriff in einer Zelle (der "Filterdaten"?), oder wird er eingegeben, oder woher soll er sonst kommen?
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: SVWERWEIS mit VBA
07.12.2005 11:00:31
Markus
Hallo Erich, erstmal schon mal danke für die schnelle response.
Wenn in den Grunddaten in Spalte A "HID" auftaucht, soll dies automatisch in die Filtertabelle übernommen werden inklusive der ausgewählten felder in einer von mir vorgegebenen reihenfolge. (Wie in der Beispieldatei (Filtertabelle) angegeben)
zu 1. in Spalte A steht die Abkürzung für einen Ort. Wenn jetzt jemand im Ort HID (HID = Platzhalter) lebt wird das in die Filtertabelle übernommen. Sollte aber Irgendwann dieser welcher nach Marl ziehen, muß die Zeile aus der Filtertabelle gelöscht werden.
zu 2. von links nach rechts anhängen, aber in einer Reihenfolge die ich bestimmen kann.
zu. Zusatzfrage Steht in Grunddaten Spalte A
Danke schon mal
Anzeige
AW: SVWERWEIS mit VBA
07.12.2005 11:53:46
Erich
Hallo Markus,
so ganz haben wir uns noch nicht verstanden.
Bei der Zusatzfrage war schon klar, dass in Spalte A der Grunddaten nach dem Suchbegriff gesucht werden soll. Aber woher soll Excel/VBA wissen, nach welchem Begriff gesucht werden soll? (In deinem Beispiel hast du "HID" als Platzhalter bezeichnet. Dieser Platzhalter muss mit einem Wert gefüllt werden - nicht immer nur mit "HID".)
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
AW: SVWERWEIS mit VBA
07.12.2005 12:19:26
Markus
Hi nochmal,
HID ist ein teil des Wortes.
es kann sein HID-L HID-W HID-E HID-G usw.
und all diese sollen gefiltert werden.
d.h. alle einträge in denen HID vorkommt, sollen gefiltert werden.
Anzeige
AW: SVWERWEIS mit VBA
07.12.2005 12:45:31
Erich
Hallo Markus,
das war klar.
Möchtest du wirklich ein Programm haben, das nur nach "HID" sucht? Willst du das Programm ändern, wenn du mal nach "MAD" suchen willst? Irgendwoher muss Excel/VBA doch wissen, WONACH gesucht werden soll, ob nach HID oder nach MAD oder ...
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
AW: SVWERWEIS mit VBA
07.12.2005 12:58:24
Markus
Wenn da mal nach etwas anderem gesucht wird kann ich mir das Skript anpassen.
Ich denke das bekomme ich dann hin.
AW: SVWERWEIS mit VBA
07.12.2005 13:54:22
Erich
Hallo Markus,
versuchs bitte mal mit

Option Explicit
Sub Kopie_spezial()
Const strSuch = "HID"
Dim wsGr As Worksheet, zz As Long, lngLast As Long
Set wsGr = Sheets("Grunddaten")
Sheets("Filterdaten").Activate
For zz = Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1
If InStr(Cells(zz, 1), strSuch) = 0 Then
Application.Goto Cells(zz, 1), scroll:=True
If MsgBox("Satz löschen?", vbYesNoCancel + vbQuestion, "Filtern") _
= vbYes Then Rows(zz).Delete
End If
Next zz
lngLast = Cells(Rows.Count, 1).End(xlUp).Row
For zz = 2 To wsGr.Cells(Rows.Count, 1).End(xlUp).Row
If InStr(wsGr.Cells(zz, 1), strSuch) > 0 Then
lngLast = lngLast + 1
wsGr.Cells(zz, 1).Copy Cells(lngLast, 1)
wsGr.Cells(zz, 3).Copy Cells(lngLast, 2)
wsGr.Cells(zz, 4).Copy Cells(lngLast, 3)
wsGr.Cells(zz, 6).Copy Cells(lngLast, 4)
wsGr.Cells(zz, 8).Copy Cells(lngLast, 5)
End If
Next zz
Set wsGr = Nothing
End Sub

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: SVWERWEIS mit VBA
07.12.2005 14:40:37
Markus
Funktioniert leider garnicht...:-(
AW: Funktioniert doch!
07.12.2005 16:32:44
Erich
Hallo Markus, (Anrede)
da ich die Prozedur vor dem Posten getestet habe, weiß ich, dass sie funktioniert.
Vielleicht hilft dir dir hochgeladene Mappe - ich habe noch einen Button auf die Tabelle gelegt, mit dem du die Prozedur starten kannst.
https://www.herber.de/bbs/user/29031.xls
Grüße von Erich aus Kamp-Lintfort (Gruß)
AW: Funktioniert doch!
08.12.2005 13:00:37
Markus
Hi, ja klar, habe nicht als Button konfiguriert gehabt.
Sorry. Danke, hat mir geholfen.
Gruß Markus
AW: Funktioniert doch!
08.12.2005 13:29:29
Markus
Eine Frage hab ich noch, wie kann ich dem VBA Skript klarmachen, das es bestehende Daten nicht hinten an die Tabelle anhängen darf ?:-)
Anzeige
AW: Funktioniert doch!
08.12.2005 16:24:15
Erich
Hallo Markus, (Dies ist eine Anrede.)
eine Rückfrage: Können im Quellblatt doppelte Datensätze vorkommen?
Wenn ja:
Soll dann ein solcher Satz im Zielblatt nur ein Mal oder in der gleichen Anzahl wie im Quellblatt erscheinen?
noch eine Rückfrage:
Gibt es eine Spaltenauswahl, anhand deren doppelte Datensätze erkennbar sind oder müssen alle Spalten verglichen werden?
Grüße von Erich aus Kamp-Lintfort (Dies ist ein Gruß.)
AW: Funktioniert doch!
09.12.2005 09:08:30
Markus
Hi Erich,
es müßten wohl alle Spalten auf doppelte Einträge kontrolliert werden.
Gruß Markus
AW: Funktioniert doch!
09.12.2005 11:47:10
Erich
Hallo Markus,
meine erste Rückfrage habe ich mir selbst jetzt so beantwortet:
Ein Quelldaten-Satz wird nicht in die Filterdaten übernommen, wenn er dort schon steht - unabhängig davon, wie oft er in den Quelldaten vorkommt.
Das macht folgende Prozedur:

Sub Kopie_spezial2()
Const strSuch = "HID"
Dim wsGr As Worksheet, zz As Long, lngLast As Long, vv As Long
Set wsGr = Sheets("Grunddaten")
Sheets("Filterdaten").Activate
For zz = Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1
If InStr(Cells(zz, 1), strSuch) = 0 Then
Application.Goto Cells(zz, 1), scroll:=True
If MsgBox("Satz löschen?", vbYesNoCancel + vbQuestion, "Filtern") _
= vbYes Then Rows(zz).Delete
End If
Next zz
lngLast = Cells(Rows.Count, 1).End(xlUp).Row
For zz = 2 To wsGr.Cells(Rows.Count, 1).End(xlUp).Row
If InStr(wsGr.Cells(zz, 1), strSuch) > 0 Then
For vv = 2 To lngLast
If Cells(vv, 1) & "§$" & Cells(vv, 2) & "§$" _
& Cells(vv, 3) & "§$" & Cells(vv, 4) & "§$" _
& Cells(vv, 5) = _
wsGr.Cells(zz, 1) & "§$" & wsGr.Cells(zz, 3) & "§$" _
& wsGr.Cells(zz, 4) & "§$" & wsGr.Cells(zz, 6) & "§$" _
& wsGr.Cells(zz, 8) Then Exit For
Next vv
If vv > lngLast Then
lngLast = lngLast + 1
wsGr.Cells(zz, 1).Copy Cells(lngLast, 1)
wsGr.Cells(zz, 3).Copy Cells(lngLast, 2)
wsGr.Cells(zz, 4).Copy Cells(lngLast, 3)
wsGr.Cells(zz, 6).Copy Cells(lngLast, 4)
wsGr.Cells(zz, 8).Copy Cells(lngLast, 5)
End If
End If
Next zz
Set wsGr = Nothing
End Sub

Bereits in den Filterdaten vorhandene Dubletten werden NICHT gelöscht. Die kannst du nach
http://www.excelformeln.de/formeln.html?welcher=80
ei9nmalig herausfinden und per Hand löschen.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
P.S.: Ist es denn wirklich so schwer, zwei Fragen zu beantworten? ;-)
Anzeige
AW: Funktioniert doch!
09.12.2005 12:27:00
Markus
Hallo Erich,
vielen vielen Dank.
Ausgezeichnete Arbeit.
Gruß Markus

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige