Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

festes Tabellenende durch loLetzte ersetzen in VBA-Formel
#11
Hallo Ralph,

warum läßt Du den SVERWEIS nicht über die ganze Spalte laufen? Da offensichtlich nach der letzten Zeile keine weiteren Einträge folgen, würde das auch nicht soviel ausmachen.

Ich würde das Ganze etwas verkürzen:


Code:
arRange = Array("C8", "E8", "G8", "C9", "E9", "G9", "I9", "C10", "E10", "G10", "I10", "K10", "C12", "E12", "G12", "I12", "K12", "C14", "E14", "G14", "I14", "K14", "C15", "C16", "E16", "G16", "I16", "C18", "E18", "G18", "I18", "K18", "C19", "E19", "G19", "C21", "E21", "G21", "C23", "E23", "G23", "I23", "C24", "E24", "G24", "I24", "K24")
For loa = LBound(arRange) To UBound(arRange)
    .Range(arRange(loa)) = WorksheetFunction.VLookup(Range("E7"), Worksheets("Datenbank").Range("C:AY"), loa + 2, 0)
Next
.Range("I24") = ""
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Antworten Top
#12
Warum keine Beispieldatei hochgeladen ?
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#13
(17.03.2017, 12:18)BoskoBiati schrieb: warum läßt Du den SVERWEIS nicht über die ganze Spalte laufen? Da offensichtlich nach der letzten Zeile keine weiteren Einträge folgen, würde das auch nicht soviel ausmachen.

Ich würde das Ganze etwas verkürzen:

ich dachte, wenn ich das über die ganzen Spalten laufen lasse, wird das vielleicht auf die Performance gehen.

Leider sind die Zellen in "Eingabe_ELC" nicht in derselben Reihenfolge, wie die Spalten in der Datenbank.
Antworten Top
#14
Hi,


da Excel die Spalte von oben nach unten absucht und beim ersten Treffer aufhört, ist es nur ein Problem, wenn der Suchbegriff nicht vorhanden ist.
Die Reihenfolge der Zellen im Array entspricht der Anordnung in Deiner Tabelle, d.h. das, was Du an Zellbezeichnungen untereinander in Deinen Formeln aufgelistet hast, habe ich hintereinander im Array aufgelistet. Nur bei I24 musst Du am Ende den Wert noch löschen, da Du ihn ja nicht drin haben willst.
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Antworten Top
#15
Hi Edgar,

(17.03.2017, 15:05)BoskoBiati schrieb: Die Reihenfolge der Zellen im Array entspricht der Anordnung in Deiner Tabelle, d.h. das, was Du an Zellbezeichnungen untereinander in Deinen Formeln aufgelistet hast, habe ich hintereinander im Array aufgelistet.

das heißt, ich müßte im Array die Reihenfolge so einstellen, wie die Spalten im Datenbankblatt sind, dann werden die Werte in die richtigen Zellen übernommen.

Werde ich Montag mal testen.
Antworten Top
#16
Hi Ralf,


Zitat:ich müßte im Array die Reihenfolge so einstellen, wie die Spalten im Datenbankblatt sind

nein, Du mußt jede Zelle in der Reihenfolge anordnen, wie sie gefüllt werden soll. Ich habe etwas bei Dir übersehen, hier der korrigierte Code:


Code:
Dim arRange As Variant
Dim loa As Long

arRange = Array("C8", "E8", "G8", "C9", "E9", "G9", "I9", "C10", "E10", "G10", "I10", "K10", "C12", "E12", "G12", "I12", "K12", "C14", "E14", "G14", "I14", "K14", "C15", "C16", "E16", "G16", "I16", "C18", "E18", "G18", "I18", "K18", "C19", "C21", "E21", "C23", "E23", "G23", "I23", "C24", "E24", "E19", "I24", "G24", "G21", "K24", "I24", "G19")
For loa = LBound(arRange) To UBound(arRange)
    Range(arRange(loa)) = WorksheetFunction.VLookup(Range("E7"), Worksheets("Datenbank").Range("C:AY"), loa + 2, 0)
Next
Range("I24") = ""

Hier als Datei mit beiden Varianten:


.xlsb   Ralf_SVERWEIS.xlsb (Größe: 26,96 KB / Downloads: 6)
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
[-] Folgende(r) 1 Nutzer sagt Danke an BoskoBiati für diesen Beitrag:
  • Rabe
Antworten Top
#17
Hallo zusammen,

Edgar, Ralfs anfänglicher Code und Deine Variante unterscheiden sich lediglich am Schreibaufwand, von der Performance sind sie gleich.
Wenn es um Performance geht, dann würde ich immer noch meine Variante nehmen.

Die kann natürlich auch noch auf Deine gezeigte Weise zusammengezogen werden.
Aber hier finde ich es übersichtlicher die Zuordnungen in einzelnen Zeilen zu schreiben.
Man kann dann auch hinter jede Zeile mit einem Kommentar die Zuordnung kennzeichnen.
Gruß Atilla
Antworten Top
#18
Hallo Edgar,

Du hast immer noch falsche Bezüge:

Arbeitsblatt mit dem Namen 'Tabelle3'
 ABCDEFGHI
1  Spalte QuelleZelle Ziel  im Code von Edgar  
2.Range("C8").Value = WorksheetFunction.VLookup(.Range("E7"), Worksheets("Datenbank").Range("C3:AY71"), 2, 0) 2C81 C8WAHR1
3.Range("E8").Value = WorksheetFunction.VLookup(.Range("E7"), Worksheets("Datenbank").Range("C3:AY71"), 3, 0) 3E81 E8WAHR1
4.Range("G8").Value = WorksheetFunction.VLookup(.Range("E7"), Worksheets("Datenbank").Range("C3:AY71"), 4, 0) 4G81 G8WAHR1
5.Range("C9").Value = WorksheetFunction.VLookup(.Range("E7"), Worksheets("Datenbank").Range("C3:AY71"), 5, 0) 5C91 C9WAHR1
6.Range("E9").Value = WorksheetFunction.VLookup(.Range("E7"), Worksheets("Datenbank").Range("C3:AY71"), 6, 0) 6E91 E9WAHR1
7.Range("G9").Value = WorksheetFunction.VLookup(.Range("E7"), Worksheets("Datenbank").Range("C3:AY71"), 7, 0) 7G91 G9WAHR1
8.Range("I9").Value = WorksheetFunction.VLookup(.Range("E7"), Worksheets("Datenbank").Range("C3:AY71"), 8, 0) 8I91 I9WAHR1
9.Range("C10").Value = WorksheetFunction.VLookup(.Range("E7"), Worksheets("Datenbank").Range("C3:AY71"), 9, 0) 9C101 C10WAHR1
10.Range("E10").Value = WorksheetFunction.VLookup(.Range("E7"), Worksheets("Datenbank").Range("C3:AY71"), 10, 0) 10E101 E10WAHR1
11.Range("G10").Value = WorksheetFunction.VLookup(.Range("E7"), Worksheets("Datenbank").Range("C3:AY71"), 11, 0) 11G101 G10WAHR1
12.Range("I10").Value = WorksheetFunction.VLookup(.Range("E7"), Worksheets("Datenbank").Range("C3:AY71"), 12, 0) 12I101 I10WAHR1
13.Range("K10").Value = WorksheetFunction.VLookup(.Range("E7"), Worksheets("Datenbank").Range("C3:AY71"), 13, 0) 13K101 K10WAHR1
14.Range("C12").Value = WorksheetFunction.VLookup(.Range("E7"), Worksheets("Datenbank").Range("C3:AY71"), 14, 0) 14C121 C12WAHR1
15.Range("E12").Value = WorksheetFunction.VLookup(.Range("E7"), Worksheets("Datenbank").Range("C3:AY71"), 15, 0) 15E121 E12WAHR1
16.Range("G12").Value = WorksheetFunction.VLookup(.Range("E7"), Worksheets("Datenbank").Range("C3:AY71"), 16, 0) 16G121 G12WAHR1
17.Range("I12").Value = WorksheetFunction.VLookup(.Range("E7"), Worksheets("Datenbank").Range("C3:AY71"), 17, 0) 17I121 I12WAHR1
18.Range("K12").Value = WorksheetFunction.VLookup(.Range("E7"), Worksheets("Datenbank").Range("C3:AY71"), 18, 0) 18K121 K12WAHR1
19.Range("C14").Value = WorksheetFunction.VLookup(.Range("E7"), Worksheets("Datenbank").Range("C3:AY71"), 19, 0) 19C141 C14WAHR1
20.Range("E14").Value = WorksheetFunction.VLookup(.Range("E7"), Worksheets("Datenbank").Range("C3:AY71"), 20, 0) 20E141 E14WAHR1
21.Range("G14").Value = WorksheetFunction.VLookup(.Range("E7"), Worksheets("Datenbank").Range("C3:AY71"), 21, 0) 21G141 G14WAHR1
22.Range("I14").Value = WorksheetFunction.VLookup(.Range("E7"), Worksheets("Datenbank").Range("C3:AY71"), 22, 0) 22I141 I14WAHR1
23.Range("K14").Value = WorksheetFunction.VLookup(.Range("E7"), Worksheets("Datenbank").Range("C3:AY71"), 23, 0) 23K141 K14WAHR1
24.Range("C15").Value = WorksheetFunction.VLookup(.Range("E7"), Worksheets("Datenbank").Range("C3:AY71"), 24, 0) 24C151 C15WAHR1
25.Range("C16").Value = WorksheetFunction.VLookup(.Range("E7"), Worksheets("Datenbank").Range("C3:AY71"), 25, 0) 25C161 C16WAHR1
26.Range("E16").Value = WorksheetFunction.VLookup(.Range("E7"), Worksheets("Datenbank").Range("C3:AY71"), 26, 0) 26E161 E16WAHR1
27.Range("G16").Value = WorksheetFunction.VLookup(.Range("E7"), Worksheets("Datenbank").Range("C3:AY71"), 27, 0) 27G161 G16WAHR1
28.Range("I16").Value = WorksheetFunction.VLookup(.Range("E7"), Worksheets("Datenbank").Range("C3:AY71"), 28, 0) 28I161 I16WAHR1
29.Range("C18").Value = WorksheetFunction.VLookup(.Range("E7"), Worksheets("Datenbank").Range("C3:AY71"), 29, 0) 29C181 C18WAHR1
30.Range("E18").Value = WorksheetFunction.VLookup(.Range("E7"), Worksheets("Datenbank").Range("C3:AY71"), 30, 0) 30E181 E18WAHR1
31.Range("G18").Value = WorksheetFunction.VLookup(.Range("E7"), Worksheets("Datenbank").Range("C3:AY71"), 31, 0) 31G181 G18WAHR1
32.Range("I18").Value = WorksheetFunction.VLookup(.Range("E7"), Worksheets("Datenbank").Range("C3:AY71"), 32, 0) 32I181 I18WAHR1
33.Range("K18").Value = WorksheetFunction.VLookup(.Range("E7"), Worksheets("Datenbank").Range("C3:AY71"), 33, 0) 33K181 K18WAHR1
34.Range("C19").Value = WorksheetFunction.VLookup(.Range("E7"), Worksheets("Datenbank").Range("C3:AY71"), 34, 0) 34C191 C19WAHR1
35.Range("C21").Value = WorksheetFunction.VLookup(.Range("E7"), Worksheets("Datenbank").Range("C3:AY71"), 35, 0) 35C211 C21WAHR1
36.Range("E21").Value = WorksheetFunction.VLookup(.Range("E7"), Worksheets("Datenbank").Range("C3:AY71"), 36, 0) 36E211 E21WAHR1
37.Range("C23").Value = WorksheetFunction.VLookup(.Range("E7"), Worksheets("Datenbank").Range("C3:AY71"), 37, 0) 37C231 C23WAHR1
38.Range("E23").Value = WorksheetFunction.VLookup(.Range("E7"), Worksheets("Datenbank").Range("C3:AY71"), 38, 0) 38E231 E23WAHR1
39.Range("G23").Value = WorksheetFunction.VLookup(.Range("E7"), Worksheets("Datenbank").Range("C3:AY71"), 39, 0) 39G231 G23WAHR1
40.Range("I23").Value = WorksheetFunction.VLookup(.Range("E7"), Worksheets("Datenbank").Range("C3:AY71"), 40, 0) 40I231 I23WAHR1
41.Range("C24").Value = WorksheetFunction.VLookup(.Range("E7"), Worksheets("Datenbank").Range("C3:AY71"), 41, 0) 41C241 C24WAHR1
42.Range("E24").Value = WorksheetFunction.VLookup(.Range("E7"), Worksheets("Datenbank").Range("C3:AY71"), 42, 0) 42E241 E24WAHR1
43.Range("E19").Value = WorksheetFunction.VLookup(.Range("E7"), Worksheets("Datenbank").Range("C3:AY71"), 43, 0) 43E191 E19WAHR1
44.Range("G24").Value = WorksheetFunction.VLookup(.Range("E7"), Worksheets("Datenbank").Range("C3:AY71"), 45, 0) 45G241 I24FALSCH2
45.Range("G21").Value = WorksheetFunction.VLookup(.Range("E7"), Worksheets("Datenbank").Range("C3:AY71"), 46, 0) 46G211 G24FALSCH1
46.Range("K24").Value = WorksheetFunction.VLookup(.Range("E7"), Worksheets("Datenbank").Range("C3:AY71"), 47, 0) 47K241 G21FALSCH1
47.Range("G19").Value = WorksheetFunction.VLookup(.Range("E7"), Worksheets("Datenbank").Range("C3:AY71"), 49, 0) 49G191 K24FALSCH1
48.Range("I24").Value = ""  I241 I24WAHR2
49      G19FALSCH1
Diese Tabelle wurde mit Tab2Html (v2.4.1) erstellt. ©Gerd alias Bamberg


Spalte C und D habe ich aus Ralfs Code kopiert und mit Text in Spalten herausgefiltert und sortiert nach D
Zum Ende hin scheint die Konzentration nachgelassen zu haben, als Opa nur verständlich..... :19:
Gruß Atilla
Antworten Top
#19
in Bosko's Datei:


Code:
Sub M_snb()
  sn = Sheets("Datenbank").Cells(3, 3).CurrentRegion
  sp = Sheets("Tabelle3").Range("C8:K24")
  x = Sheets("Tabelle3").Cells(7, 5)
    
  y = 2
  For j = 1 To UBound(sp)
    Select Case j
    Case 1, 2, 3, 5, 7, 8, 9, 11, 12, 14, 16, 17
      For jj = 1 To UBound(sp, 2) Step 2
        sp(j, jj) = sn(Asc(x) - 96, y)
        y = y + 1
        Select Case j
        Case 8
          If jj = 1 Then Exit For
        Case 1, 12, 14
          If jj = 5 Then Exit For
        Case 2, 9, 16
          If jj = 7 Then Exit For
        End Select
      Next
    End Select
  Next
    
  Sheets("Tabelle3").Range("C8:K24").Offset(22) = sp
End Sub
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#20
Hi atilla,

was glaubst Du, warum die Zahlen in Tabelle 3 (die mit Ralfs Code erzeugt sind!) alle gelb hinterlegt sind?
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste