Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema RefEdit
BildScreenshot zu RefEdit RefEdit-Seite mit Beispielarbeitsmappe aufrufen

scripting dictionary -- verschiedene Strings aus Bereich

Betrifft: scripting dictionary -- verschiedene Strings aus Bereich von: Falk
Geschrieben am: 11.02.2020 19:06:59

Hallo Ex(cel)perten,


ich möchte gerne über einen Bereich die verschiedenen Werte in ein Object ablegen. Mein Code bringt eine Fehlermeldung, sobald ein Wert das zweite Mal gefunden wird.

Was muss ich ändern?

Sub RowSumIf()

Dim lc, lz, x, Spalte As Integer
Dim scr

    lz = Worksheets("Einkaufsliste_Lager").Cells(2, 1).End(xlDown).Row
    lc = LastColumn(2)
    Spalte = 4

Set scr = CreateObject("Scripting.Dictionary")

   With Worksheets("Einkaufsliste_Lager")
        For Spalte = 4 To lc - 1 Step 3
            For x = 2 To lz - 1
                If Cells(x, Spalte) <> "" Then
                        scr.Add .Cells(x, Spalte).Value, .Cells(x, Spalte).Value
                End If
            Next x
        Next Spalte
    End With
End Sub

Betrifft: AW: scripting dictionary -- verschiedene Strings aus Bereich
von: Nepumuk
Geschrieben am: 11.02.2020 19:13:48

Hallo Falk,

was soll mit den verschiedenen Werten passieren? Addieren???

Gruß
Nepumuk

Betrifft: AW: scripting dictionary -- verschiedene Strings aus Bereich
von: Falk
Geschrieben am: 11.02.2020 20:26:41

Hi Nepumuk,

nein, für jeden Wert wird im Object ein item angelegt. Anschließend will ich für jedes dieser Items eine bedingte Summe über einen Bereich bilden.
Anbei ein Ausschnitt, der den Teil eines (von mehreren verschiedenen) Bereichen zeigt.
https://www.herber.de/bbs/user/135134.xlsx

Danke für die Hilfe

Betrifft: AW: scripting dictionary -- verschiedene Strings aus Bereich
von: Nepumuk
Geschrieben am: 12.02.2020 09:39:54

Hallo Falk,

ein Dictionary kann nur eindeutige Schlüssel enthalten. In deinem Fall wäre ein normales Array Mitter der Wahl.

Gruß
Nepumuk

Betrifft: AW: scripting dictionary -- verschiedene Strings aus Bereich
von: Sulprobil
Geschrieben am: 13.02.2020 05:24:45

Hallo Falk,

Vielleicht hilft Dir ein Beispiel weiter.
Deine Variablendeklaration würde ich auch ändern.

http://sulprobil.com/Get_it_done/IT/Excel_Fun/Excel_VBA/ListFreq/sbMiniPivot/sbminipivot.html

Viele Grüße,
Bernd P

Betrifft: AW: scripting dictionary -- verschiedene Strings aus Bereich
von: Zwenn
Geschrieben am: 11.02.2020 20:59:59

Hallo Falk,

wenn Du dem Dictionary Items über Add zufügst, musst Du vorher prüfen, ob es den Key schon gibt. Dafür gibt es die Methode Exists(). Es gibt allerdings auch die Möglichkeit sich diese Prüfung zu sparen, da man nicht zwingend Add benutzen muss, um ein Dictionary zu erweitern.

Hier ein Link zu der Seite, von der wahrscheinlich so Mancher von uns vieles über Dictionaries gelernt hat:
https://excelmacromastery.com/vba-dictionary/

Für Dich ist im Moment der Teil ab diesem Abschnitt hilfreich. Lies unbedinngt auch ab Assigning a Value weiter, denn dort erfährst Du, wie man Add umgehen kann (wenns zum Rest Deiner Werte passt):
https://excelmacromastery.com/vba-dictionary/#Adding_Items_to_the_Dictionary

Viele Grüße,

Zwenn

Betrifft: AW: scripting dictionary -- verschiedene Strings aus Bereich
von: Falk
Geschrieben am: 12.02.2020 19:29:06

Danke der Link ist wirklich hilfreich.

Beiträge aus dem Excel-Forum zum Thema "scripting dictionary -- verschiedene Strings aus Bereich"