Clever-Excel-Forum

Normale Version: Korrekt zählen und analytische Anzeige
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3 4
Hallo

es freut mich das meine Lösung gefaellt, vor allem weil durch die Eingabezellen für Op-Text und Datum die Suche variabel ist.
Das Programm erklaeren, hmm ....     für mich kein Problem, aber VBA Grundwissen waere von Vorteil um es zu verstehen.

Das Kernstück ist die For Next Schleife wo alle Daten von Zeile 2 bis lz = LastZell auf Op-Text und Datum geprüft werden.  Es interessieren nur die Patienten wo Übereinstimmung ist.  In dem Fall wird der Datensatz als Block kopiert.  Obwohl der Code sehr kurz ist ist er für Anfaenger schwer zu verstehen.  Das liegt daran das exellentes Fachwissen für Fortgeschrittene drin steckt.

z.B. hier:  QTab.Cells(y, 1).Resize(8, sp).Copy .Cells(z, 1)   Das ist ein Doppel Befehl, den meisten Usern völlig unbekannt!!  Der 1.Teil kopiert (s.Copy), die Zieladresse steht direkt dahinter!  Jetzt wird ohne Paste zu verwenden da direkt hineinkopiert!  DAs ist schon gehobenes VBA Wissen.  Man erkennt die 1. Zelle in Spalte A durch diesen Teil:  QTab.Cells(y, 1), der Befehl dahinter mit Resize vergrössert diesen Bereich um 8 Zeilen und 9 Spalten.  Alles in einem Befehl zusammengepackt.  

Wenn man das alles verstehen und nachbauen will sollte man gute Literatur über Anfaenger Wissen finden.  Würde mich freuen wenn ich das Interesse für VBA wecken konnte. jeder kann es lernen.  Ich programmiere seit 20 Jahren, bin aber kein echter Programm Profi!  Excel für Hausgebrauch ...

mfg  Gast 123
Nachtrag:

mir ist im Code ein kleiner Fehler aufgefallen, sollte man berichtigen:    .UsedRange().Offset(2, 0).Delete shift:=xlUp
Die Klammer hinter UsedRange ist zuviel, die gehört5 da nicht hin!  Bitte korrigieren.

mfg  Gast 123
Hallo Gast 123

Vielen lieben Dank für die aufgewendete Zeit, mir das zu erklären.

Leider habe ich noch nie etwas mit VBA gemacht und deshalb verstehe ich "praktisch" nichts.

Bis ich VBA lerne bzw. damit anfange, kann es noch Monate gehen. Deshalb stelle ich mir jetzt die Frage, wie ich Dein super funktionierendes Arbeitsblatt in meine richtige Datei integriere, ohne das ich VBA lernen muss. Mit richtige Datei meine ich die Datei, die bei mir auf dem Desktop ist und bereits mehrere echte Einträge umfasst.

Hast Du hierfür eine Lösung?

Herzlich
Baani10
Hallo schauan

Nichtsdestotrotz wäre ich seh froh, wenn wir das mit der Berechnung in Spalte Q nochmals gemeinsam anschauen könnten. Was passiert, wenn es nur zwei Werte statt drei enthält bzw. wie könnte man das berechnen?

Vielen herzlichen Dank für Deine Bemühung und einen schönen Abend.

Beste Grüsse
Baani10
Hallo

selbstverstaendlich helfe ich das wir das Programm in deiner Originaldatei ans laufen bringen, Ehrensache.
Meine Bitte, den ersten Test bitte in einer kopierten Datei ausführen, falls mal versehentlich Daten überschrieben werden!
Solche Fehler können z.B. beim aendern von Tabellen Namen auftreten, wenn Quelle und Ziel Tabelle verwechselt werden!!  Autsch!!

Dieser Teil steht ganz oben:   Const Quelle = "Muster Auswertung"   'hier den Namen der Original Quell Tabelle angeben!!  (Patienten Daten)
Diesen Teil bei Bedarf aendern:   With Worksheets("Ergebnis")   'das ist die Ergebnis Tabelle, Name kann man so lassen, sonst neu benennen. 
Wenn die Spalten Angaben stimmen, Name in A, Op-Text in E, Datum in F,  wird das Makro funktionieren!

Was ich bei dieser Versiın nicht prüfe ist, ob der Patienten Block immer genau 8 Spalten betraegt oder kleiner sein kann??  Dann muss ich das Makro etwas umschreiben, das ist aber kein grosses Problem.  Ich muss es nur wissen!!

Wenn ich das Makro auf 2-3 Zeilen begrenzen muss, in welchen Spalten finde ich dann Eintrage woran ich die Lange des Datensatzes erkennen kann?  Diese Spalte muss ich dann prüfen.  Ich muss nur wissen welche Spalte (oder Spalten) das genau ist /sind ??

Was hat es mit der Spalte Q auf sich, sicher können wir die genauer untersuchen.  Im Beispiel steht dort:   AbsDiff    (sagt mir nix, bin Laie)
Ich bin aber kein Mediziner, habe keine Ahnung was diese Werte besagen, will ich auch nicht wissen!  Konzentriere mich aufs Programmieren.

mfg  Gast 123
Hallo Gast 123

Vielen herzlichen Dank für die erneute Ausführung.

Leider kann ich dem nicht folgen, da ich überhaupt keine Ahnung habe wo ich diese Namen, Quellen, Daten etc. eingeben muss. Ich habe wirklich überhaupt keine Ahnung mit VBA oder Makros. Muss ich irgendwo einen Code rauskopieren und irgendwo wieder einfügen? Wenn ja, wie und wo muss ich das machen? Tut mir wirklich Leid, das ich Deinen Anweisungen nicht folgen kann..

1. Ja, der Block hat immer 8 Zeilen
2. AbsDiff steht für Absolute Differenz. Hier geht es aber darum herauszufinden, wie der Durchschnittswert ist, mit der Bedingung, dass vorne z.B. "Tel 1" steht. Nun hat Nutzer schauan eine super Lösung dargeboten, leider funktioniert diese nicht, wenn jemand nur zwei Werte enthalten hat. Dann kommt dieses komische DIV0 und es rechnet nur, wenn drei Werte enthalten sind.

Danke für Deine Bemühungen.

Herzlich
Baani10
Hallo

kein Problem, ich kann das Makro direkt so schreiben das man es nur in die Originaldatei hineinkopieren muss.
Ist das kopieren von Makros in ein Modulblatt im VBA Editor bekannt, sonst erklaere ich es ganz in Ruhe.
Schon mal ein Makro mit dem Makro Recorder aufgezeichnet??  Das würde uns auch weiterhelfen.

Dafür brauche ich aber den Original Namen der Patienten Tabelle wo die Daten drin stehen. Nur den Tabellen Namen!  
Im Beispiel ist es ja die Tabelle "Muster Auswertung", aber wie heisst genau diese Tabelle in der Original Datei??

Den Rest schaue ich mir an und schreibe es um.  (Heute nicht mehr, gehe gleich schlafen)

mfg  Gast 123
Nachtrag:    (zu früh abgesendet)

ich sehe den Text Tel1, einmal auch Tel3. In dieser Zeile stehen keine weiteren Daten, dafür 3 Zeilen drunter. Werte: 0,5/ 0,75/ 0,5  oder -0,1/  0,3, 0 Mir sagen diese Zahlen im Augenblick nichts, nach was muss da ausgewertet werden??  Min/Max/Mittelwert??  Immer nur Tel1, oder auch Tel2, Tel3? Diese Details müsste ich natürlich zum Auswerten wissen.  Gibt es sonst noch Werte zum auswerten??

Letzte Frage,wenn dort nur 1-2 Werte stehen statt 3, soll dann trotzdem immer ein ganzer 8er Block kopiert werden??
Ich könnte die zu kopierenden Zeilen auch auszaehlen.

mfg  Gast 123
Hallo Gast 123

Nein, ich habe weder jemals den VBA-Editor benutzt, noch ein Makro aufgezeichnet. Leider ist mein Wissen diesbezüglich = 0.

Gerne melde ich mich morgen noch einmal mit den Antworten, die jetzt ausbleiben, da ich heute nicht mehr an meinem Computer bin.

Vielen Dank für Deine Geduld und Dein Verständnis.

Einen wunderschönen Abend.

Bis morgen.
Baani10
Noch en Gedicht ...     (Heinz Ehrhardt)     im Sinne:  kluge Idee

Hilfsspalte um Mittelwert per VBA zu ermitteln

Computer sind Maschinen, sie können nicht denken, aber wir Menschen können sie geschickt austricksen !!
Die Formel des Kollegen passt offenbar nicht, weil es eine Division/0 gibt.  Das kann natürlich nicht funktionieren!

Wenn ich in Spalte S eine Hilfsspalte einfügen kann können wir per VBA für jeden Patienten den Mittelwert ziehen. Die per VBA eingefügte Formel kann 2 und 3 stellige Daten erkennen und die richtige Formel setzen. Dann haben wir bei 1000 Patienten zwar bis 1000 Formeln im Blatt, stört ja keinen!!  

Aus diesen Daten kann man wiederum den Gesamt Mittelwert ziehen.  Ist das eine denkbare Lösung???
Ich mach mich morgen mal uns Programmieren, und warte dann ab was die Kollegen und Baani dazu sagen.

mfg  Gast 123
Seiten: 1 2 3 4