Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1128to1132
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 - Sverweis

VBA - Sverweis
Helge
Immer wieder Sonntags ;) Morgen alle zusammen,
Ich hab ein kleines Problem, wo ich keine normale excelformel benutzen kann. Ich habe in Spalte B Produktnummer stehen und in den Spalten G bis S die description.
Wenn ich nun eine neue produktnummer am ende der spalte hinzufuege, soll das makro pruefen, ob die nummer in der Spalte A schonmal vorgekommen ist. Falls ja soll er die Spalte G bis S kopieren/uebernehmen. Falls nein, soll er die Spalte G bis S leer lassen.
Ich hab schonmal mit einer aehnlichen Formel gearbeitet, jedoch bekomme ich es nicht hin. Hier mein Ansatz:

Sub sverweis()
Dim i As Long
Dim lRowA As Long, lRowB As Long
lRowB = Cells(Rows.Count, 8).End(xlUp).Row
X = Range("B4:G" & lRowB).Address
If Range("G" & i)  "" Then
Range("G4") = "=VLOOKUP(B4, " & X & " ,2,0)"
With Range("G4:G" & lRowB)
.FillDown
End With
End If
End Sub


Ich glaube das ich den Ansatz nicht verwenden kann ...

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: VBA - Sverweis
10.01.2010 08:03:44
BoskoBiati
Hallo Helge,
irgendwie kann ich dem Ganzen nicht folgen. Das was Du hier als Makro angedeutet hast, soll (machts wohl nicht) in die Spalte G eine SVERWEIS-Formel von Zeile 4 bis zum Ende einfügen.
Kann nicht so richtig Sinn machen, wenn Du Spalte G auf die letzte Zeile abfragst und dann in leere Zellen eine Formel eintragen willst. Hat auch mit Deinem Ansinnen, Spalte G bis S zu kopieren nicht zu tun.
Wenn ich das richtig verstehe, willst Du in Ax einen Wert eintragen. Sollte der schon einmal in Spalte A vorhanden sein, dann nimm die Werte aus Gy bis Sy und trage sie in Gx bis Sx ein. Habe ich das so richtig verstanden?
Anzeige
AW: VBA - Sverweis
10.01.2010 08:17:58
Helge
Morgen, genau so will ich das. Ich hab schon einiges versucht, aber ich komme zu keiner loesung. Der QT soll nur meinen ansatz zeigen. ich weiss nicht wie man ganze bereiche kopiert. Darum nur G. Ich haetten den QT dann so oft hingeschrieben, das alle spalten einbezogen sind. Erst g, dann H, usw.
Aber deine zusammenfassung trifft extrakt was ich will. Ist der sverweis der richtige ansatz ?
AW: VBA - Sverweis
10.01.2010 09:30:51
fcs
Hallo Helge,
mit Suchen statt SVerweis kommt man hier schneller zum Ziel.
Wenn du den Check immer manuell start willst, dann lässt du den Teil unter dem Tabellenblatt-Modul weg.
Gruß
Franz
'Prozedur unter dem Tabellenblatt-Modul
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 2 And Target.Row = Cells(Rows.Count, 2).End(xlUp).Row Then
Call CheckProduktNr
End If
End Sub
'Prozedur in einem allgemeinen Modul
Sub CheckProduktNr()
' CheckProduktNr
Dim ProduktNr, Zeile, ZellePNr As Range, wks As Worksheet
Set wks = ActiveSheet
With wks
'Spalte 2 (B) Prüfen
Zeile = .Cells(.Rows.Count, 2).End(xlUp).Row
If Zeile > 2 Then
ProduktNr = .Cells(.Rows.Count, 2).End(xlUp).Value
Set ZellePNr = .Range(.Cells(1, 2), .Cells(Zeile - 1, 2)).Find(What:=ProduktNr, _
LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False)
If ZellePNr Is Nothing Then
'do nothing
Else
'Spalte 7(G) bis 19(S) in letzte Zeile kopieren
.Range(.Cells(ZellePNr.Row, 7), .Cells(ZellePNr.Row, 19)).Copy _
Destination:=.Cells(Zeile, 7)
End If
End If
End With
End Sub

Anzeige
AW: VBA - Sverweis
10.01.2010 10:27:59
Helge
Hi Franz,
danke fuer die Antwort und die Loesung. Es laeuft soweit ohne Fehlermeldung, jedoch gibt es keiner Ausgabe. Sprich B300 und B340 haben den selben inhalt (eine Zahl) und der Inhalt aus G300-S300 wird nicht in G340-S340 uebertragen. Kann es Probleme geben, wenn vorher schon doppelte zellen aufgetaucht sind ?
AW: VBA - Sverweis
10.01.2010 11:08:13
fcs
Hallo Helge,
das Makro beginnt ab der Zelle B1 nach unten mit der Suche. An der 1. Fundstelle wird die Suche gestoppt und die Werte aus G:S in die letzte Zeile kopiert. Mehrfache Einträge spielen dabei keine Rolle.
Hast du das Makro "CheckProduktNr" im Schrittmodus mal getestet? Bei mir funktioniert es einwandfrei.
Gruß
Franz
Anzeige
AW: VBA - Sverweis
10.01.2010 11:33:46
Helge
Hab das ganz mal in einer simplen Tabelle aus probiert, da klappt es super. Danke Franz ! Jetzt muss ich nur noch den Verursacher in der maintabelle finden. Trotzdem riesen Dank fuer die Hilfe ! Wenn ich die Loesung hab werde ich sie posten. Wuensche noch einen schoenen Sonntag.
AW: VBA - Sverweis
10.01.2010 12:16:35
Helge
Hey endlich hab ich es. Ich musste nur die Spalte B als Zahl formatieren. THX nochmal, jetzt hab ich auch sonntag :)
AW: VBA - Sverweis
10.01.2010 12:32:02
Helge
Formatierung war es doch nicht! Es lag daran, dass A3:S5000 als liste formatiert waren. Mit der Liste klappt es nicht. Zellenformatierung ist egal.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige