536 Aufrufe
Gefragt in Tabellenkalkulation von vernichter Mitglied (261 Punkte)

Hallo zusammen,

nehmen wir einmal an das wir 4 User haben:

User 1 geht in Ecke 1 schaut sich die Artikel an und schreibt sich zu diesen das passende MHD samt Anzahl auf überträgt es in eine Tabelle und fertig, genau das selbe tut auch User 2 aber eben in Ecke 2.

Das ganze übergibt man dann User 3 der sich ewig damit aufhält das ganze geordnet abzutippen und eventuell bei selben Artikel mit selben MHD die Anzahl zusammenzurechnen und das MHD auch noch in ordentlicher Reihenfolge zu bringen. User 4 denkt sich Nope geht garnicht dauert alles viel zu lange.

Es befindet sich alles in der selben Datei später dann auch in verschiedenen Tabellen aber immer in der selben Datei und der Aufbau ist immer der selbe, soll quasi zusammengeführt werden und ich blick da nicht mehr durch.

User 4 ist jetzt hier und benötigt dringend eure Hilfe. :-)

Im Anhang die Datei der 4 User:

https://www.dropbox.com/s/olm0deg61zh9rtg/Mappe1.xlsx?dl=0

Vielleicht hat jemand von euch einen Tipp oder Ansatz wie ich hier weiter komme

Grüße

energun

17 Antworten

0 Punkte
Beantwortet von vernichter Mitglied (261 Punkte)

Hallo M.O.

des muss ich mir mal am WE in Ruhe anschauen. Denn die erste Berechnung wenn schon Daten vorhanden sind wird richtig angezeigt.Nehme ich aus einer Zelle zum Bespiel den 19.10.2018 raus und schreibe 20.10.2018 rein bleibt der 19.10.2018 stehen. Die Summenformel dahinter bekommt das schon mit und verschwindet. Erst wenn ich in die Formel reinklicke und Enter drücke passiert etwas.

Die Funktionen Blatt berechnen oder neu berechnen haben keine Auswirkung bei mir.

Ich hab Excel 2010 NOCH! vielleicht hat es etwas damit zutun?

http://supportnet.de/forum/?qa=blob&qa_blobid=18424439808354252620

Gruß

energun

+1 Punkt
Beantwortet von m-o Profi (22.7k Punkte)

Hallo energun,

ich habe die Funktion jetzt so nachgebessert, dass sich die Werte bei Änderungen auch gleich neuberechnen:

Public Function MHD(rngUeberschrift As Range, rngBereich As Range, lngRang As Long) As Variant
'benutzerdefinierte Funktion zur Ermittlung von Daten des MHD
'rngÜeberschrift = Bereich in dem die Überschriften stehen
'rngBereich = Bereich, in dem die Daten stehen, notwendig, damit sich die Formel bei Änderungen aktualisiert
'lngRang = Rang des Datums; 1 = kleinstes Datum
'Aufruf mit =MHD($B$1:$O$1;B2:O2;1)

Dim i As Long
Dim z As Long
Dim lngZaehler As Long
Dim varFeld As Variant
Dim lngAnzahl As Long
Dim bExists As Boolean
Dim lngZeile As Long
Dim varWerte As Variant
Dim rngZelle As Range
Dim lngFZaehler As Long

Application.Volatile

'Zeile aus der die Funtion aufgerufen wird
lngZeile = Application.Caller.Row

ReDim varWerte(rngUeberschrift.Columns.Count)

'Daten des MHD einlesen
For Each rngZelle In rngUeberschrift
  If Left(rngZelle, 3) = "MHD" Then
    If Cells(lngZeile, rngZelle.Column) <> "" Then
      lngZaehler = lngZaehler + 1
      varWerte(lngZaehler) = Cells(lngZeile, rngZelle.Column)
    End If
  End If
Next rngZelle

ReDim varFeld(lngZaehler)
varFeld(1) = varWerte(1)
lngFZaehler = 1

For i = 2 To lngZaehler
 bExists = False
 For z = LBound(varFeld) To UBound(varFeld)
   If varFeld(z) = varWerte(i) Then
     bExists = True
     Exit For
   End If
 Next z
 If bExists = False Then
  lngFZaehler = lngFZaehler + 1
  varFeld(lngFZaehler) = varWerte(i)
 End If

Next i

'Sortieren
For z = lngFZaehler - 1 To LBound(varFeld) Step -1
        For i = LBound(varFeld) To z
            If varFeld(i) > varFeld(i + 1) Then
                varWert = varFeld(i)
                varFeld(i) = varFeld(i + 1)
                varFeld(i + 1) = varWert
            End If
        Next i
    Next z

MHD = varFeld(lngRang)

End Function

Gruß

M.O.

0 Punkte
Beantwortet von vernichter Mitglied (261 Punkte)

Hallo M.O.

aktualisieren funzt wunderbar. yes Hab da noch so eine kleine kosmetische Anfrage und habe hierfür 3 Beispiele angelegt.

1 Beispiel grün:

sieht super aus.

2. Beispiel blau:

hier lösche ich einfach mal beim User 2 - in Spalte L19 das Datum 19.10.2018. In Spalte X19 erscheint nun 00.01.1900. Heißt, wenn es nur 3 MHD's gibt würde es halt im 4. Feld diese Ausgabe machen. Hier rot markiert.

3. Beispiel orange:

auch hier sind die Fehler rot markiert. Auch hier lösche ich beim User 2 - in Spalte L34 das Datum 19.10.2018. Zusätzlich lösche ich noch in Spalte D34 das Datum 16.10.2018 und es entstehen koriose Dinge. :-)  Ob solche Konstellationen mal entstehen bin ich mir noch nicht so sicher aber man muss ja jeden Fehler der begangen werden könnte unter die Lupe nehmen.

Gruß

energun

http://supportnet.de/forum/?qa=blob&qa_blobid=15623876033995705855

+1 Punkt
Beantwortet von m-o Profi (22.7k Punkte)
ausgewählt von vernichter
 
Beste Antwort

Hallo energun,

ersetze im Code die Zeile

MHD = varFeld(lngRang)

wie folgt:

If lngRang > lngFZaehler Then
   MHD = CVErr(xlErrNA)
 Else
   MHD = varFeld(lngRang)
End If

Damit wird ein Fehlerwert ausgegeben, wenn der Rang größer ist, als die Anzahl der Daten. Dieser Fehler kann dann mit der WENNFEHLER-Formel abgefangen werden.

Löschst du die Daten, lässt aber die Zahlen stehen, so summiert Summewenn dann die Zahlen, vor denen Felder mit "" stehen.

Ändere deine Formel wie folgt:

=WENNFEHLER(MHD($B$1:$O$1;B34:O34;3);" ")

Damit sollten die "kosmetischen" Probleme gelöst sein smiley.

Gruß

M.O.

0 Punkte
Beantwortet von vernichter Mitglied (261 Punkte)

Hallo M.O.

und wieder einmal ein super Teil was du da gebastelt hast! Solche Dinge erleichtern den Arbeitsaufwand immens.

Vielen Dank dafür. yes

Gruß

energun

0 Punkte
Beantwortet von vernichter Mitglied (261 Punkte)

Hallo M.O.

ich muss doch noch eimal nerven.

Ich habe im Moment gerade die Datei mit meinen Usern offen und laß hier im Forum weiter. Als ich dann auf den Thread mit dem Urlaubsplaner gestoßen  bin und diese von Dir gepostetet Datei öffnete veränderte sich auch meine Datei. laugh

Bild

Bekommt man das denn noch hin das des nicht so reagiert?

Gruß

energun

0 Punkte
Beantwortet von m-o Profi (22.7k Punkte)
Hallo energun,

die Formel greift sich die Daten wohl auch aus Blättern, die gleich heißen, wie das Blatt in der die Formel steht. Schließt du beide Dateien und öffnest danach wieder nur deine Datei, so sollten sich die Werte wieder richtig aktualisieren. Ich werde mal schauen, dass ich das noch abstellen kann.

Gruß

M.O.
...