Microsoft Excel

Herbers Excel/VBA-Archiv

Datentypproblem


Betrifft: Datentypproblem
von: Suzn
Geschrieben am: 16.05.2018 14:23:38

Huhu,
ich habe ein Problem bei den Datentypen (denke ich zumindest). Meine ausgegebene Zeile möchte ich gerne wiederverwenden. Also den Zeilenindex nur. In meinem Set Bereich unten geht das dann aber leider schief. Wie kann ich denn die Schleife oben umschreiben, damit das funktioniert? Ich würde mich sehr über eine Antwort mit kurzer Erklärung freuen. Werde VBA schließlich noch öfter brauchen :)
DANKE!!

For u = .Cells(Rows.Count, 1).End(xlUp).row To 3 Step -1
If .Range("A" & u) <> .Range("A" & u - 1) Then
Wert = .Range("A" & u)
Zeile1 = u - 1
End If

Set Bereich1 = .Range("E2:E" & Zeile1)
Next u

  

Betrifft: AW: Datentypproblem
von: mmat
Geschrieben am: 16.05.2018 14:39:37

Nö, ich glaube das ist eher ein logisches Problem

Zeile1 wird überhaupt nur dann initialisiert, wenn ein Duplikat gefunden wurde, ansonsten ist das 0

Set Bereich wird immer ausgeführt, aber Range("E2:E0") ist eben Murks.


  

Betrifft: AW: Datentypproblem
von: Suzn
Geschrieben am: 16.05.2018 15:03:38

Ahh klar, da hast du natürlich recht. Wenn ich das Set Bereich1 nun in den If-Befehl reinschreibe funktioniert es.
Nun hab ich jedoch ein anderes Problem. Ich möchte nun in diesem Bereich die Werte zählen. Dies mache ich mit folgendem Befehl, in dem ich bei dem For each c1 In Bereich1 nun ein Problem bekomme. Achja und der Befehl steht auch mit in vorheriger Schleife.

Set objDict1 = CreateObject("Scripting.Dictionary")

Dim myValues1, myKeys1
Dim long1 As Long
Dim objDict1, c1

For Each c1 In Bereich1
If Not objDict1.exists(c1.Value) Then
Call objDict1.Add(c1.Value, Application.CountIf(Bereich1, c1))
End If
Next

myKeys1 = objDict1.keys 'Werte
myValues1 = objDict1.Items 'Anzahl

i = 1
For long1 = 0 To objDict1.Count - 2

Sheets("xx").Cells(1 + i, 11).Value = myKeys1(long1)
Sheets("xx").Cells(1 + i, 12).Value = myValues1(long1)

If current_year - myKeys1(long1) + 1 = myValues1(long1) Then
Sheets("DFM Data-Exclusion Übersicht").Cells(1 + i, 13).Value = "JA"
Else: Sheets("DFM Data-Exclusion Übersicht").Cells(1 + i, 13).Value = "Nein"
End If
i = i + 1
Next long1

Set objDict1 = Nothing
Set Bereich1 = Nothing



  

Betrifft: Feierabend!
von: mmat
Geschrieben am: 16.05.2018 16:54:34

Uhm, Sorry, ich hab jetzt Feierabend :-)

Ich setze mal den Haken, vielleicht kann jemand anders mal gucken.


  

Betrifft: AW: Datentypproblem
von: fcs
Geschrieben am: 21.05.2018 01:09:48

Hallo Suzn,

es macht wenig Sinn, wenn du immer nur Schnipsel deines Makros hier postest.
Und "... ein Problem auftritt..." ist nicht sehr aussagekräftigt - es sollte eine Fehlermeldung angezeigt werden, deren Inhalt für potentielle Helfer ggf. schon ein Hinweis auf die Ursache des Problems ist.

Idealer Weise lädst du hier deine Datei mit ein paar repräsentativen Beispieldaten (ggf. anonymisiert) und allen erforderlichen Makros hoch. Dann kann ein Helfer testen und so evtl. das Problem einkreisen/lösen.

Gruß
Franz