Hi Freunde,
ich möchte aus einer Excel Tabelle mit ca 6000 Artikelnummern (in Spalte 1) das entsprechende Pedant (Artikelbeschreibung in Spalte 2) per Code einfügen.
Praktisch gesehen so: Ich schreibe in einer Tabellenvorlage in die Zellen A1 bis A30 jeweils eine Arikelnummer. Die Prozedur ist unter dem UfterUpdate Ereignis so geschrieben, daß in die Zellen B1 bis B30 die zutreffende Artikelbeschreibung per Code eingefügt wird.
Nur mit If-Then ist das eine Lebensaufgabe und mit Select-Case erscheint es mir ähnlich umfangreich.
Hoffentlich hat hier in diesem Forum jemand eine bessere Idee und kann mir diese, eventuell auch per E-Mail, falls ich eine Rückfrage haben sollte, mit einem Beispiel aufzeigen.
Nur glaube ich muß man auch darauf achten, daß die Prozedur nicht zu umfangreich wird, denn ich habe schon mal beim Programmieren unter VBA bei einer sehr großen Prozedur die Grenze von 64 KB erreicht und da sagte MS, das wäre die Obergrenze pro Prozedur, und weiter ging nichts.
Besten Dank im voraus
Harry
Programmieren - alles kontrollieren 4.941 Themen, 20.708 Beiträge
Hallo,
habe eine Möglichkeit, die Du an Deine Gegebenheiten anpassen mußt.
Eventuell mußt Du auch noch ein paar Fehler beseitigen (soll nur ein Beispiel sein):
' Alte Zelle
Private OldTarget As Excel.Range
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
' Speicher reservieren
Dim Zelle As Excel.Range
' Ist eine alte Zelle definiert gewesen?
If (TypeName(OldTarget) <> "Nothing") Then
' steht in der alten Zelle eine Zahl drin?
If IsNumeric(OldTarget) Then
' entsprechende Zelle suchen
Set Zelle = Worksheets("Tabelle2").Range("A1:A5").Find(What:=OldTarget, LookIn:=xlValues, LookAt:=xlWhole)
' Wurde Zelle gefunden?
If (TypeName(Zelle) <> "Nothing") Then
Worksheets("Tabelle1").Cells(OldTarget.Row, OldTarget.Column + 1).Value = _
Worksheets("Tabelle2").Cells(Zelle.Row, Zelle.Column + 1).Value
End If
End If
End If
' Neue Zelle zuweisen
Set OldTarget = Target
End Sub