Thema Datum  Von Nutzer Rating
Antwort
Rot Daten Vergleichen und entsprechend Summen bilden
19.10.2015 11:56:41 123Neuling
Solved

Ansicht des Beitrags:
Von:
123Neuling
Datum:
19.10.2015 11:56:41
Views:
1017
Rating: Antwort:
 Nein
Thema:
Daten Vergleichen und entsprechend Summen bilden

Hallo,

Ich bin noch vba-Anfänger und leider mit meinem Latein am Ende. Mein Code lässt sich zwar problemlos kompilieren, macht aber leider nicht das was ich von ihm möchte.

Folgende Aufgabenstellung:
In Spalte B (2 bis vorerst 100) stehen Daten, deren "Monat" ich mit dem Monat aus Datum1 vergleichen möchte.

In Spalte P (ab Zelle 2) habe ich die Monatsnamen beginnend bei dem von "Datum1" stehen,  ComboBox 1 * 12 gibt an, wie viele das sind. (geplant sind bis zu 36 Monate)

( d.h. P2: September, P3: Oktober, ... P6:Januar,...)

Nun möchte ich gerne in Spalte Q (auch ab Zelle 2), dass das Programm immer, wenn in Spalte B ein Eintrag mit dem passenden Monat gefunden wurde, den Wert in der dem Monat entsprechenden Zelle um 1 erhöht. (Also die Einträge pro Monat in Spalte B zählt)

Mein Code hat aber momentan (Mein Datum 1 ist der 29.9., in Spalte P schreibe ich 12 Monate) das Ergebnis, dass neben "Dezember", wo eigentlich "2" stehen sollte, "98" steht, bei Februar, wo eigentlich "2" stehen sollte, ist die Zelle leer.
Anscheinend findet der in den leeren Zellen auch irgendwas (Wenn ich nur B2 bis B4 auslese, die auch alle befüllt sind, dann erhalte ich richtigerweise bei Dezember 2, Februar aber trotzdem leer), habe auch schon versucht mit "While Not IsEmpty" nur die befüllten Zeilen auslesen zu lassen, das hat aber eine Endlosschleife produziert.

Ich hoffe das Problem ist einigermaßen verständlich erklärt und jemand kann mir helfen :)

Mein Code:

For k = 0 To (Auswertung.ComboBox1 * 12 - 1)
    
    If (Month(Datum1) + k) < 13 Then
        For j = 1 To 100
            If (Month(ActiveSheet.Range("B" & (j + 1)))) = (Month(Datum1) + k) Then
            ActiveSheet.Range("Q" & (k + 2)) = ActiveSheet.Range("Q" & (k + 2)) + 1
            End If
        Next j
    End If
   
                   
    If (Month(Datum1) + k) > 12 And (Month(Datum1) + k) < 25 Then
        For m = 1 To 100
            If (Month(ActiveSheet.Range("B" & (m + 1)))) = l Then
            ActiveSheet.Range("Q" & (k + 2)) = ActiveSheet.Range("Q" & (k + 2)) + 1
            End If
        Next m
    End If
                           
                        
      If (Month(Datum1) + k) > 24 Then
            For l = 1 To 4
                If (Month(ActiveSheet.Range("B" & (l + 1)))) = l Then
                ActiveSheet.Range("Q" & (k + 2)) = ActiveSheet.Range("Q" & (k + 2)) + 1
                End If
            Next l
    End If
   
Next k

Vielen Dank im Voraus!

Grüße


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Daten Vergleichen und entsprechend Summen bilden
19.10.2015 11:56:41 123Neuling
Solved