Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1352to1356
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Geänderte Zellen kopieren und einfügen
05.03.2014 09:11:26
Josef
Hallo Zusammen,
ich habe mal wieder ein Problem.
In Spalte D sind positive und negative Zahlen. Ich möchte nun erreichen, dass wenn sich in Spalte D die Werte von einer positiven Zahl ins negative ändern, dann soll das Excel alle Zeilen wo sich die Positive Zahlen ins negative geändert haben kopieren und in ein neues Tabellenblatt einfügen (Achtung: Zahlen die bereits negativ sind sollen nicht übernommen werden). Und perfekt wäre es dann auch noch, dass nach dem kopieren automatisch nach Spalte A sortiert wird.
Ich hoffe ihr bekommt das ohne meine Excel hin, da ich diese aufgrund der Größe nicht hochladen kann.

38
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Geänderte Zellen kopieren und einfügen
05.03.2014 10:05:39
Oberschlumpf
Hi Josef
...Ich hoffe ihr bekommt das ohne meine Excel hin, da ich diese aufgrund der Größe nicht hochladen kann....
Tja Baby, dann erstell doch eine Bsp-Datei mit viel weniger Bsp-Datenzeilen.
(aber natürlich mit so vielen Zeilen, dass dein Problem nachvollziehbar ist)
Wenn von dir keine Bsp-Datei kommt, müssten wir sie nachbauen......aber wir wissen doch gar nicht, wie deine Datei aufgebaut ist.
Und ich mag auch Dateien nicht nachbauen, da sie doch bei dem Fragenden schon vorhanden ist.
Er muss sie uns nur zeigen.
Ciao
Thorsten
P.S.
Versuch bitte die Bsp-Datei so zu erstellen, dass sie auch mit Excel 2003 zu öffnen ist.
Sonst können dir nur Leute helfen, die auch schon Excel 365 verwenden.

Anzeige
Korrektur
05.03.2014 12:41:50
Oberschlumpf
huch
Hi Josef
Ich meine natürlich, erstell bitte eine Excel 2003 kompatible Bsp-Datei, weil sonst nur die helfen können, die Excel 2010 benutzen.
Ciao
Thorsten

AW: Geänderte Zellen kopieren und einfügen
05.03.2014 13:21:00
Matze
Hallo Zusammen,
wann und wodurch "ändern" sich denn deine negativen Werten?
-durch eine Formelberechnung in selbiger Zelle, die durch eine "Eingabe" (andere Spalte)ausgelöst wird?
-oder sollen die "negativen" Werte per Button-Klick direkt in positive Werte umgewandelt werden?
Matze

AW: Geänderte Zellen kopieren und einfügen
05.03.2014 14:03:48
Josef
Durch Eingabe in einer anderen Spalte werden die negativen Werte ausgelöst. Per Button dürfen die negative Werte nicht in positive umgewandelt werden, sondern es müssen per Button alle Zeilen (die durch die Eingabe in einer anderen Spalte ausgelöst wurden) die sich von Positiv in Negativ geändert haben in ein anderes Tabellenblatt kopiert werden.

Anzeige
der Ruf nach einer...
05.03.2014 14:07:04
Oberschlumpf
...Bsp-Datei bleibt ungehört.
Nu ja...seuffzzz....ich bin dann mal...raus

Thema offen
05.03.2014 14:20:50
Matze
...Hi Thorsten,
nu komm aber,...mann muss doch nicht für alles eine Musterdatei haben,... du hast den Beitrag doch nun auch angefangen, lediglich um das "auslösen" WANN dies passieren sollte geht es doch.
Da nun klar ist das durch eine "Eingabe" in einer Spalte(?x?) sich die Werte in Spalte(?y?) verändern.
Das schreit förmlich nach dem im Tabellenblatt integrierten Change Ereignis.
Leider sind meine VBA Kenntnisse nicht so hoch wie deine, denn ich bekomme es nicht hin.
Ich weis nicht wie ich das aktuelle Target bei "Eingabe" abfrage , man müsste vor dem Change mit der aktiven Zelle fragen ob der Wert schon negativ ist und dann auch noch prüfen ob er weiter negativ bleibt oder sich wie gewünscht ins positive ändert. Doch ein wenig zu komplex für mich.
Da du aber raus bist, stelle ich das Thema auf "offen"
Gruß Matze

Anzeige
AW: Thema offen
05.03.2014 14:31:50
Oberschlumpf
Hi Matze,
ob ich mehr als du in VBA weiß, weiß ich nicht :-)
Aber ich weiß, oder vielmehr, habe schon OFT die Erfahrung gemacht, dass Lösungsversuche OHNE Bsp-Datei oft fehlgeschlagen sind.
Gründe:
der Fragende hat zuu wenig Ahnung, den nur als Text gezeigten Code (nicht per Datei) in seine Datei zu übernehmen. Der Fragende weiß oft nicht, in welche Module welcher Code rein muss.
der Fragende vergisst/achtet nicht darauf, dass er weitere wichtige Infos angibt, ohne die eine Lösung gar nicht möglich ist.
der Fragende irrt sich auch schon mal bei seinen eigentlichen Angaben. Und dann kommt Beiträge später der Hinweis: "Ach ja, das war so gar nicht gemeint, sondern es müssen die Zellen ... benutzt werden".
jippiehhh...ich bin begeistert! ..das is ironisch gemeint
Verstehst du nun, wieso ich fast immer auf Bsp-Dateien "bestehe"?
Da SEHE ich sofort, welche Werte in welchen Zelen stehen und von welchen Formeln diverse Ergebnisse abhängig sind. Ich bin dann NICHT mehr abhängig von der Unkenntnis der deutschen Grammatik/Rechtschreibung, die leider auch bei vielen Fragenden zu erkennen ist.
Klar, der Fragende muss meiner Bitte nicht nachkommen.
Aber meine Hilfe bekommt er dann auch nicht.
Ciao
Thorsten
damit ich nicht wieder "korrigiert" werden muss, setze ich ganz brav den "Offen-Schalter" :-)

Anzeige
AW: Thema offen
05.03.2014 14:43:38
Josef
Habe schon verstanden.
Ich versuche auf morgen eine funktionstüchtige und abgespeckte Version hochzuladen.
Wäre also super euch, wenn ihr euch morgen das Thema noch einmal anschaut.
MFG

AW: Thema offen
05.03.2014 14:56:48
Matze
Hi Thorsten, Hallo Josef,
@Thorsten,
naja,..nu komm aber, das bissel darzustellen ist lächerlich, allerdings muss man Josef echt "ALLES" aus der Nase ziehen. (simples Beispiel)



Tabelle1
 AB
1'Werte Plus oder Minus'Änderungsspalte
211
3-12-12

verwendete Formeln
Zelle Formel Bereich R1C1 für Add In
A2:A3=B2  =RC[1]

XHTML Tabelle für Darstellung in Foren,
einschl. Bedingter Formatierung ab Version 2007
XHTML-Version 11.50 einschl 64 Bit Version



@Josef,
immerhin wissen wir nun das in "irgendwelchen Spalten" durch eine "Änderung(=Change)" etwas passiert.
- um welche der Spalten handelt es sich?
- wie lautet zB die Formel in der Zelle die berechnet wird?
mir bringt das zwar nix weil ich immer noch keinen Ansatz habe und mich nun hier auch zurück ziehe.
Hatte es mit Change und auch mit Calculate Ereignis versucht, aber ich müsste eine Mischung von Beiden haben. Wenn dann einer der Profis hier sich mal dazu äussert wäre das nett.
Auf diese Lösung(besser an der Lösung) wäre ich interessiert.
Gruß Matze

Anzeige
ich kann einfach nicht....
05.03.2014 15:21:54
Oberschlumpf
...die Klappe halten
Hi Matze,
Zitatauszug:...allerdings muss man Josef echt "ALLES" aus der Nase ziehen...
genau DAS ist doch der Punkt!
Egal, ob Josef oder irgdwer anders....
Wir bemühen uns mit Nachfragen + Nachfragen + Nachfragen, bis wir dann nach erst mehreren Antworten mit einer Lösung beginnen können!
Würde gleich von vornherein eine Bsp-Datei mitgeliefert werden, kann man sich das Nachfragen + Nachfragen + Nachfragen sparen, weil es nämlich nicht mehr erforderlich ist.
Ciao
Thorsten

...Kommt aber ganz auf die Datei an! ;-] Gruß owT
05.03.2014 18:04:19
Luc:-?
:-?

ich meine auch den optimalsten Fall...owT
05.03.2014 18:09:21
Oberschlumpf

AW: ich meine auch den optimalsten Fall...owT
06.03.2014 08:07:06
Josef
Hallo nochmal.
Zuerst einmal möchte ich mich dafür entschuldigen, dass ich nicht gleich eine Test-Datei hochgeladen habe. Bisher hatte ich auch fast immer eine Bsp. Datei parat. In diesem Fall war die Datei allerdings so groß und komplex aufgebaut, dass es eine ganze Weile gedauert hätte bis ich eine funktionstüchtige Test Datenbank aufgebaut hätte, die dann auch noch so funktioniert wie in der Live-Datenbank.
Jedenfalls habe ich mir nun die Mühe gemacht, und eine erstellt:
https://www.herber.de/bbs/user/89549.xls
Ich hoffe das ihr mir trotzdem noch helfen wollt.
Jedenfalls sollte folgendes passieren:
Wenn ihr auf CommandButton 2 klickt (Tabellenblatt: FA), werdet ihr nach der Produktionsnr. gefragt. Gebt hier die Produktionsnr. 250356 ein. Danach wird nach dem neuen Beginn gefragt: Hier gebt ihr den 01.03.2014 ein. Wenn ihr das getan habt, müsst ihr die Spalten neu sortieren. Und zwar zuerst nach Spalte D und dann nach Spalte C.
Nun passiert folgendes:
Durch die Eingabe und der Sortierung wird der Auftrag vorgezogen. Durch die Vorziehung werden aufgrund des Lagerbestandes andere Aufträge nicht machbar sein, da das Material für diesen Auftrag entnommen wird.
Was soll nun der VBA-Code von euch tun:
Durch die Vorziehung ändern sich bei manchen Aufträgen in der Spalte "Fehlmenge" positive Menge in Negative Mengen. Es sollen nun alle Zeilen (wo sich die positiven Mengen in Negative Mengen geändert haben) kopiert und in ein neues Tabellenblatt eingefügt werden. Werte die schon vorher einen negativen Wert hatten, dürfen dabei nicht berücksichtigt werden (das ist ganz wichtig).

Anzeige
AW: ich meine auch den optimalsten Fall...owT
06.03.2014 09:06:54
Josef
..

AW: ich meine auch den optimalsten Fall...owT
06.03.2014 10:27:49
Oberschlumpf
Hi Josef,
hmm...du musst dich nicht entschuldigen.
Und mir tut es leid, dass meine Bitte nach einer Bsp-Datei soo eine Welle geschlagen hat.
Aber an dich erst mal vielen Dank für die Datei!
Ich werde sie mir jetzt anschauen und hoffentlich zu einer Lösung kommen.
Ob ich eine Lösung finde, weiß ich natürlich noch nicht. Aber vielleicht macht sich ja auch ein anderer "Beteiligter" an diesem Thread Gedanken zu deiner Datei.
Das wollte ich nur erst mal loswerden.
Ciao
Thorsten

hab ne Frage
06.03.2014 11:13:46
Oberschlumpf
Hi Josef,
Ich hab ne Frage zur Sortierung.
Du schreibst:
...Wenn ihr das getan habt, müsst ihr die Spalten neu sortieren. Und zwar zuerst nach Spalte D und dann nach Spalte C. ...
Wie meinst du das?
Soll EIN Sortiervorgang mit zwei Kriterien durchgeführt werden (siehe Bild1), oder sollen ZWEI Sortiervorgänge, unabhängig voneinander, mit jeweils EINEM Kriterium durchgeführt werden (siehe Bild2 + Bild3)?
Userbild
Wenn ich nach Bild1 verfahre, wird so sortiert, dass die Artikelnummern "zusammen bleiben" und innerhalb der Artikelnummern wird noch nach Beginn sortiert.
Aber du möchtest ja, dass durch die Sortierung die gerade geänderten Daten für Beginn nach oben "rutschen", was aber nicht passiert, da erstes Sortierkriterium = Artikelnr. ist.
Wenn ich aber zuerst nur nach Artikelnr. sortiere und erst dann nach Beginn sortiere, kann ich mir den das Sortieren nach Artikelnr. sparen, da diese ja durch Sortieren nach Beginn wieder "auseinander gerissen" wird.
Ich hoffe, du verstehst, was ich meine.
Ciao
Thorsten

Anzeige
AW: hab ne Frage
06.03.2014 11:29:04
Josef
Damit die Formel in der Spalte (Fehlmenge) richtig rechnet, muss 1 Sortiervorgang mit 2 Kriterien druchgeführt werden (Bild 1) (WICHTIG).

AW: hab ne Frage
06.03.2014 11:37:15
Oberschlumpf
danke für den Hinweis.
An diesem Bsp (meine Frage) siehst du, wie schwierig es sein kann, wenn man nur mit Erklärungsversuchen arbeitet...ohne Bsp-Dateien.
Du beschreibst etwas mit Sortieren, und ich verstehe es trotzdem nicht, weil es von dir so beschrieben wurde, dass man es unterschiedlich interpretieren kann.
Ich versuch mal mein Glück :-)

ich hab ne LÖSUNG :-))
06.03.2014 13:32:44
Oberschlumpf
Hi Josef,
ich glaube, ich bin fertig :-)
Zumindest werden nach Klick auf CommandButton2 und nach Eingabe der Daten 9 Datenzeilen angezeigt, die für Fehlmenge zuvor noch positive und erst danach negative Werte enthalten.
Aber nun der Reihe nach.
Hier erst mal mein Lösungsvorschlag:
https://www.herber.de/bbs/user/89557.xls
1. Klick auf CommandButton2
2. Gib die ProdNr 250356 und neuer Beginn 01.03.2014 ein
3. Nun wird die Tabelle AUTOMATISCH nach Artikelnr UND Beginn sortiert
Das musst du also nicht mehr per Hand machen
4. Jetzt werden die Zeilen gesucht, in denen vor der Sortierung der Wert Fehlmenge = positiv und erst nach der Sortierung Fehlmenge = negativ sind
5. Die gefundenen Zeilen werden in der neuen Tabelle "Tabelle1" angezeigt
es sind 9 Treffer
Ich habe, so gut ich es kann, den Code dokumentiert, damit du hoffentlich verstehen kannst, was da passiert.
Wichtig ist nur, wenn du den Namen von "Tabelle1" änderst, musst du das auch im Code tun!!!!
Die Stelle ist im Code beschrieben.
Sonst gibt es Murks :-))
So, nun bin ich aber auf deine Rückmeldung so was von neugierig!
Für all das hab ich ca 2 Stunden gebraucht :-)
Ciao
Thorsten

Anzeige
AW: ich hab ne LÖSUNG :-))
06.03.2014 13:58:23
Josef
Wenn ich Commandbutton 2 ausführe, und die Daten eingebe, dann erhalte ich einen Debug.
Folgender Text im Code wird markiert:
'Range("A1:M" & Cells(Rows.Count, 3).End(xlUp).Row).Sort Key1:=Range("D2"), Order1:=xlAscending, Key2:=Range _
("C2"), Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase _
:=False, Orientation:=xlTopToBottom, DataOption1:=xlSortTextAsNumbers, _
DataOption2:=xlSortTextAsNumbers'

AW: ich hab ne LÖSUNG :-))
06.03.2014 14:11:51
Oberschlumpf
Hi Josef
erst mal:
Beginne bitte möglichst jeden Beitrag mit einer Anrede!
Oder zumindest bei den Beiträgen, auf die du antwortest, die auch mit einer Anrede beginnen.
Ich find das ziemlich unhöflich, wenn gleich der Frage- oder was weiß ich für Text beginnt.
Josef, ich bin keine Maschine, der du einfach so Befehle erteilen kannst ;-)
Und was dein aktueles Problem betrifft.
Hmm...entweder machst du noch irgendwas falsch, oder es gibt Probleme zwischen den Excel-Versionen.
Du arbeitest mit Excel 2010, ich arbeite mit Excel 2003.
Ich hab mir die Datei noch mal runtergeladen, die ich dir zur Verfügung stellte.
Bei mir tritt überhaupt kein Fehler auf.
Wenn Code fertig, sieht bei mir Tabelle1 so aus:
Userbild
Das ist doch das, was du erreichen wolltest, oder?
Im Mom hab ich jedenfalls keine Idee, wieso es bei dir nicht läuft - bei mir gibt es ja keinen Fehler.
Ciao
Thorsten

Anzeige
AW: ich hab ne LÖSUNG :-))
06.03.2014 14:20:17
Josef
Hallo Thorsten,
sorry, hast ja Recht.
Die Lösung bei dir scheint richtig zu sein. Ich will das es bei mir genauso aussieht :-(
Ich versuche mal die Sortierung manuell anzuwerfen und die Module die du erstellt hast mit F5 auszuführen. Mal sehen was dann passiert. Melde mich gleich wieder.

vllt ne Idee
06.03.2014 14:29:01
Oberschlumpf
Hi Josef,
mir war aufgefallen, als ich noch zu Beginn die Tabelle per Hand sortierte, dass Excel dann "rummeckerte", dass nicht alle Zahlen als Zahlen sondern als Text dargestellt werden.
Ändere mal die Fehlerzeile bei dir so, dass du ie letzten zwei Parameter löschst.
also diesen Codeteil in der fehlerhaften Zeile löschen:
, DataOption1:=xlSortTextAsNumbers, _
DataOption2:=xlSortTextAsNumbers

Vielleicht ist das ja der Grund, wieso es bei dir nicht läuft.
Ciao
Thorsten

AW: vllt ne Idee
06.03.2014 14:52:02
Josef
Hallo Thorsten,
hat leider nicht funktioniert.

AW: ich hab ne LÖSUNG :-))
06.03.2014 14:42:59
Josef
Hallo Thorsten,
es schein tatsächlich an der Excel-Version 2010 zu liegen. Habe es eben unter Excel 2003 ausprobiert, und ich weiß nicht wie du das hinbekommen hast, aber da scheint es tadellos zu funktionieren.
Wenn ich unter Excel 2010 alle Codes manuell starte und die automatische Sortierung entferne, dann erhalte ich einen Fehler im Modul "Sub sbOldNewVal()":
Da hat er wohl ein Problem mit dem Befehl 'For liIdx = 0 To UBound(parOldVal)'.
Ich muss das jetzt irgendwie unter Excel 2010 zum laufen bekommen, da ansonsten alles für die Katz war. Ich habe nämlich keine Möglichkeit Abfragen in Excel 2003 zu importieren. Ich habe Tage gebraucht um die Datenbank so hinzubekommen, wie ich es benötige und du hast noch Stunden investiert. Das darf nicht umsonst gewesen sein.
Ich werde auf jeden Fall mit deinem Code weiter arbeiten. Mal schauen ob ich es zum laufen bekomme.
PS: Wie hast du das Programmieren gelernt? Ich habe schon einige Bücher oder Cd-Roms beschafft, allerdings ist das alles kompliziert beschrieben. Und vor allem werden die Begriffe nicht richtig erklärt (z. b. Boolean...)

Sortierproblem behoben
06.03.2014 15:01:37
Josef
Hallo Thorsten,
ich habe das Sortierungsproblem beheben können. Wenn ich deine Datei mit Excel 2010 öffne, dann sind nur die Spalten A:G mit dem Filtersymbol versehen. Wenn ich deinen Code mit meiner Original Datenbank einfüge, dann funktioniert das sortieren. Allerdings bleibt er bei der Überprüfung stehen und markiert wie vorher schon erwähnt folgenden Text im Code: ' For liIdx = 0 To UBound(parOldVal)'
Fällt dir dazu evtl. etwas ein?

Alle Probleme behoben
06.03.2014 15:10:10
Josef
Hallo Thorsten,
Es funktioniert nun. Es hat in meiner Original Datenbank nicht funktioniert, da du den Code hinterlegt hast "mach eine Kopie beim Öffnen der Datei".
Da ich die Codes allerdings nur hinterlegt und ausgeführt habe ohne die Datei vorher zu speichern, zu schließen und neu zu öffnen, konnte er natürlich kein Backup anlegen.
Ich bin sooooooo happy. Tausend Dank.

AW: Alle Probleme behoben
06.03.2014 15:41:09
Oberschlumpf
Hi Josef
uih uih, hab nun erst gesehen, dass noch einige Probleme darauf warteten, von dir gelöst zu werden :-)
Und du hast es geschafft!!...oh yeah :-)
Ich lese deine Beiträge erst jetzt, weil ich ja tatsächlich auch noch ein anderes Leben außer Excel habe, und bis eben was anderes zu tun hatte :-)
Ich erinner mich, du wolltest wissen, wie ich das gelernt habe?
Ganz ehrlich, "mein Buch" WAR DIESES EXCEL_FORUM HIER!!!!!!!!!!!
Ich kenne das Forum schon seit Jahren. Es ist das beste Excel-Forum, das ich kenne!
Zu Beginn meiner "VBA-Karriere" war ich hier einer von den Viel-Fragenden :-)
Irgendwann konnte ich das ändern zu den.....erfolgreich Antwortenden :-)
Ich hatte mich mal mit einem Buch versucht, stellte da aber fest, dass ich besser lerne, wenn ich selbst was probiere und dann genau dazu Fragen stelle, als wenn ich vorgegebene Szenarieren ausprobiere. Und in Büchern geht es ja nicht anders.
Ach ja, und ich habe viel Zeit investiert...gaaaanz viel Zeit! :-)
Wenn also auch du autodidaktisch gut drauf bist, vergiß die Bücher und nutze unser aller Wissen, in dem du hier Fragen stellst.
Kleiner Tipp...du ahnst es sicher ;-)
Besonders bei solchen Aufgaben wie jetzt deine, da ist es gleich zu Beginn super hilfreich, wenn du Bsp-Dateien zeigst.
Glaub mir, ohne deine Datei hätte ich dein Excel-Problem NIE lösen können.
Ciao + viele Grüße
Thorsten

AW: Alle Probleme behoben
06.03.2014 15:52:18
Oberschlumpf
Hi Josef
ach ja....was ist Boolean?
Boolean ist ein Dateityp, der die Werte 0 oder 1, Wahr oder Falsch, True oder False annehmen kann.
Eine Variable vom Typ Boolean wird auch in meiner Datei verwendet.
Such mal im Code nach der Variablen lboClear.
die Var heißt übrigens so, weil...
... l steht vor lokale Variable; ist nur verwendbar in der S u b oder Function, in der sie deklariert wird
... bo steht für Boolean; damit ich gleich sofort erkenne, um welchen Datentyp es sich handelt
... Clear ist der eigentliche Name der Variablen; und gibt ungefähr Sinn und Zweck für den Gebrauch an
Diese Schreibweise verwende ich (muss aber niemand), wenn ich Variablen einsetze, damit ich den Überblick bei den Variablen nicht verliere.
Und glaub mir, je größer ein VBA-Projekt, um so mehr Variablen werden verwendet :-)
Die Aufgabe im Code von lboClear ist, alles was zwischen If....End If steht, nur dann auszuführen, so lange lboClear = False ist.
Da lboClear = True auch zwischen If...End If steht, wird eben genau dieser Code, wie gewünscht, nur 1x ausgeführt.
Hoffe, du hast es ein wenig verstanden...oder?
Ciao
Thorsten

AW: Alle Probleme behoben
06.03.2014 17:56:38
Josef
Hallo Thorsten,
ich habe um ehrlich zu sein nicht wirklich viel verstanden. Aber ich hoffe das sich das mit der Zeit ändern wird. Jedenfalls möchte ich dir nochmals für alles danken.
Es funktioniert wirklich perfekt, außer... das es eine halbe Ewigkeit dauert bis er mir die Werte anzeigt (aber in der Live-Datenbank sind es auch mehr als 20.000 Zeilen) :-) Und da es solange dauert habe ich mir eine Userform gebastelt, dass mir beim Ausführen von Commandbutton2 einen Text zeigt ("Daten werden übernommen... Bitte warten...") :-)
Hoffen wir mal das ich bald auch zu den gehöre, die anderen helfen können. Dazu muss ich aber erst einmal die ganzen Begriffe. Und ich habe leider noch keine Seite entdeckt, wo das schön übersichtlich dargestellt und detailliert erklärt wird.
Ich bin auf jeden Fall froh darüber, dass es Leute wie dich gibt und anderen bei solch komplexen Themen helfen. Schönen Abend noch.

kleine Verbesserung
06.03.2014 20:58:11
Oberschlumpf
Hi Josef,
ich hab die Datei ein wenig verbessert.
Und zwar hab ich deinen Hinweis "bitte warten" etwas getunt :-)
hier die Datei
https://www.herber.de/bbs/user/89566.xls
Klick Button + gib die Werte wie gewohnt ein.
Nun erscheint, auch in einem Userform, ein Fortschrittsbalken, der anzeigt, wann der Durchlauf fertig ist.
Außerdem wird die For/Next-Schleife, in der auf unterscjiedliche Werte geprüft wird, mit Exit For abgebrochen, sobald der geänderte Wert gefunden ist. Es macht ja keinen Sinn, die Schleife weiter durchlaufen zu lassen. So lann es also sein, dass der Code auch in deiner OriginalDatei schneller geworden ist.
Und, läufts?
Ciao
Thorsten

AW: kleine Verbesserung
07.03.2014 08:11:32
Josef
Guten Morgen Thorsten,
dieser Fortschrittsbalken funktioniert in der Testdatenbank super und sieht Klasse aus. Allerdings habe ich heute ein anderes Probelm feststellen müssen.
Sobald ich meine Datenbank über SQL aktualisiere, funktioniert der komplette Code nicht mehr. Er hat wohl im Modul unter sub sboldnewval() ein Problem mit
'If parOldVal(liIdx, 0) = .Range("A" & lloRow).Value And _
parOldVal(liIdx, 1) = .Range("B" & lloRow).Value And _
parOldVal(liIdx, 2) = .Range("C" & lloRow).Value And _
parOldVal(liIdx, 3) = .Range("D" & lloRow).Value And _
parOldVal(liIdx, 4) = .Range("E" & lloRow).Value And _
parOldVal(liIdx, 5) = .Range("F" & lloRow).Value And _
parOldVal(liIdx, 6) = .Range("G" & lloRow).Value And _
parOldVal(liIdx, 7) = .Range("H" & lloRow).Value Then '
weißt du woran das liegen könnte?

Neues Problem
07.03.2014 09:07:19
Josef
Hallo Thorsten,
ich schon wieder. Habe das Problem gefunden. Das liegt am Fortschrittsbalken. Wenn ich den entferne erhalte ich keinen Fehler... Aber... Wenn ich im Modul deinen neuen Code einfüge (mit "Exit For"), dann kopiert er mir keine Änderungen in Tabelle1 (die ist immer leer). Und wenn ich "Exit For" entferne, dann hängt er sich auf. Ich dachte, dass er für diese Funktion nur ewig brauchen würde, doch da passiert nichts. Nach einer Weile erhalte ich einfach die Meldung, dass ich von Excel keine Rückmeldung erhalte.
PS: Das ist immer auf die Live-Datenbank bezogen.
So langsam verzweifle ich

AW: Neues Problem
07.03.2014 09:19:20
Oberschlumpf
Hi Josef,
wenn die neue Version meiner Datei nicht 100%ig funktioniert, versuch es doch bitte noch mal mit der Datei ganz ohne Fortschrittsbalken.
Die ganzen neuen Probleme, die du beschreibst, kann ich leider nicht lösen, da ich deine SQL-Abfrage nicht verstehe, weil ich sie nicht kenne und ich weiß ja auch nicht, was genau du entfernt hast, was den Fortschrittsbalken betrifft.
Hier wirds wieder mal schwierig für mich, da ich ja die Originaldatei nicht kenne, da ich deine Accessdatei nicht kenne.
Dass du ne Accessdatenbank benutzt, lese ich jetzt zum ersten Mal. Denn SQL wird ja nur auf Datenbanken aus Access, ok, auch aus MySQL verwendet....aber ich kenne sie eben nicht.
Versuch es halt noch mal mit meiner alten Datei - ohne Fortschrittsbalken, ohne Exit For.
Hilfts?
Ciao
Thorsten

AW: Neues Problem
07.03.2014 10:07:41
Josef
Hallo Thorsten,
habe den Fehler gefunden. In deinem neuen Code unter Commandbutton2 hast du den Befehl sbOldNewVal entfernt. Wenn ich Ihn wieder einfüge läuft meine Liste wieder. Und obwohl ich "Exit For" hinzugefügt habe, ist es nicht schneller geworden. Erhalte wieder die keine Rückmeldung. Kann man das evtl. noch ein wenig beschleunigen?
PS: Da ich den Fehler gefunden habe, versuche ich gleich noch einmal deinen Fortschrittsbalken einzufügen :-)

AW: Neues Problem
07.03.2014 10:21:25
Oberschlumpf
Hi Josef,
...habe den Fehler gefunden. In deinem neuen Code unter Commandbutton2 hast du den Befehl sbOldNewVal entfernt....
Ja, das macht auch Sinn, hätte ich den Befehl da stehen gelassen, würde der Balken nicht angezeigt werden.
Anstelle dessen steht der Befehl:
ufProgress.Show
dieser Befehl zeigt das Userform mit dem Balken an.
Und im Activate-Ereignis des UFs steht dann wieder sbOldNewVal.
Erhalte wieder die keine Rückmeldung.
Hmm...was is denn so schwer daran, vorm Absenden alles noch mal Korrektur zu lesen?
Sorry, den Satz verstehe ich nicht.
Ach ja, wenn denn irgendwelche Fehler auftreten, kann es für mich auch hilfreich sein, die Fehlermeldung zu erfahren. Bisher schreibst du immer nur, dass ein Fehler auftritt, aber du verrätst nicht, welcher Fehler es ist - nein, allein die Err-Nr reicht nicht, ich brauche den Fehlertext.
Ciao
Thorsten
...für mich ist es echt schwer, Probleme zu lösen, bei denen ich nicht alles kenne, was dazu gehört...

AW: Neues Problem
07.03.2014 10:34:08
Josef
Hallo Thorsten,
mit "keine Rückmeldung" meine ich, dass Exel nicht mehr reagiert. Die Sanduhr bewegt sich zwar, jedoch wird der Hintergrund von Excel weiß und hängt sich auf.
Geht es evtl. schneller, wenn wir zuerst eine Kopie anlegen und dann beide Listen vergleichen?
Damit meine ich, dass nicht im Hintergrund ein Backup angelegt wird sondern auch visuell.

hier gehts weiter
07.03.2014 10:47:40
Oberschlumpf
Hi Josef,
wenn wir immer direkt da weiter schreiben, wo wir zuletzt im Thread waren, rutscht selbiger wohl bald ausm Monitor raus :-)
Was meinst du mit "im Hintergrund ein Backup"?
Mein Code liest jedes Mal direkt nach dem Öffnen der Datei alle Datenzeilen aus FA in eine Arrayvariable.
Meinst du DAS mit dem Backup?
Na gut, ok, kann man so nennen.
Nein, es würde nicht schneller gehen, die Datenzeilen als Kopie anstelle ins Array in ein Hilfsblatt zu übertragen. Es würde langsamer sein. Deswegen wählte ich die Version mit dem Array.
Aber ich glaube, ab hier bin ich nun raus.
Ich weiß nicht mehr, was ich tun kann.
Bei mir funktioniert die Datei ja tadellos.
Da muss also in der Original-Datei noch irgendwas sein, was du bis jetzt - erfolgreich - für dich behältst.
Wäre ich an deinem PC, wäre alles bestimmt viel einfacher. Da würde ich dann ALLES sehen, was mit´dem Original zusammen funktionieren muss.
Ich wünsch dir weiter viel Erfolg!
Ciao
Thorsten

355 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige