Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
456to460
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
456to460
456to460
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Per Makro Werte kopieren- mit variabler Bedingung

Per Makro Werte kopieren- mit variabler Bedingung
22.07.2004 19:35:47
Daniel
Hallo Excel Experten!
Ich habe eine Datei, in der ich Werte unter bestimmten Bedingungen kopieren möchte. Das Ganze ist ziemlich kompliziert zu erklären. Deshalb habe ich die Datei beigefügt. Im Blatt Data1 steht beschrieben was ich machen möchte!

Die Datei https://www.herber.de/bbs/user/8804.xls wurde aus Datenschutzgründen gelöscht

Für Hilfe wäre ich sehr dankbar!
Grüße,
Daniel

33
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Schwer verständlich
Holger
Das ist wirklich schwer zu verstehen. Für mich ist nicht Auto und Flugzeug sondern Bus und Flugzeug mit dem größten Wert an Deinem Beispieltag. Wonach soll die Auswahl getroffen werden. A1 beinhaltet in deinem Fall den Wert 2 was soll jetzt gesucht werden. Größer 2 oder die 2 größten Werte aus den beiden Tabellen Abgas und Verbrauch. Oder die 2 größten Werte aus Abgas und die 2 größten aus Verbrauch? Am 22 Mai ist zum Beispiel der Auto-Wert größer als am 20 Mai? Folgerichtig hätten diese Werte auftauchen müssen.
Man weiß irgend wie nicht in welche Richtung mann loslegen soll
Gruß Holger

Anzeige
AW: Schwer verständlich
23.07.2004 18:06:26
Daniel
Hallo Holger!
Sorry, das ich mich so unverständlich ausgedrückt habe. Es ist aber tatsächlich nicht einfach zu erklären was ich machen möchte.
Ja, Du hast Recht: Bus und Flugzeug haben am Beispieltag den größten Wert.
Die Auswahl soll (als Beispielfall, denn später sollen noch anderen Varianten hinzukommen) folgendermaßen getroffen werden:
die 2 größten Werte und zwar NUR aus der Tabelle Abgas.
"Am 22 Mai ist zum Beispiel der Auto-Wert größer als am 20 Mai?"
Die Werte an verschiedenen Tagen spielen untereinander keine Rolle!
Es werden immer nur die n- Größten einer Zeile gesucht. UNd dann kopiert.
Hoffe es ist verständlicher geworden!
Grüße
Daniel
Anzeige
Danke. Verfeinerungen
23.07.2004 23:40:35
Daniel
Hallo Holger!
Zunächst vielen Dank für Deine Mühe!
Das Grundprinzip steht damit. So soll es aussehen.
Falls Du Lust hast mit noch weiterzuhelfen habe ich die Datei mit meinen Anmerkungen/Wünschen beigefügt:
https://www.herber.de/bbs/user/8844.xls
Vielen Dank für die Unterstützung,
Daniel
Anzeige
Bitt und ich melde mich noch mal
Holger
Ich habe mir die Datei schon mal geholt. Werde mich wohl heute abend noch mal dransetzen. Das müßte aber wohl alles zu machen sein .
Melde mich dann noch mal.
Gruß Holger
AW: Da bin ich wieder
25.07.2004 08:56:56
Daniel
Hallo Holger,
könntest Du bitte im Makro noch erklären was jeweils in einer Zeile gemacht wird,
damit ich später auch alleine zurecht komme!?
Das wäre nett. Ansonsten melde ich mich bei weiteren Sachen wieder.
Grüße,
Daniel
Anzeige
AW: Da bin ich wieder
25.07.2004 13:11:43
Daniel
Hallo Holger!
Kann ich als n nur 1,2 oder 3 wählen? Hier würde ich gerne jede beliebige Zahl nehmen.
Das scheint aber nicht zu funktionieren. Kannst Du das bitte ändern?
Grüße,
Daniel
AW: Da bin ich wieder
Holger
Hallo Daniel
Ich werde Dir den Code noch verständlich Kommentieren.
Als n sollte eigentlich jede Zahl funktionieren. Was mir aufgefallen ist, daß es Probleme giebt wenn mehr Durchläufe verlangt werden als Werte vorhanden sind. Zur Zeit hast Du 9 Werte in der Tabelle Abgas . 10 Durchläufe schafft er leider nicht . Da steigt er gleich im 2. Durchgang aus . Warum weiss ich nocht nicht werde mich abr zu Hause mal drumm kümmer. Meld mich dann noch mal .
Gruß Holger
Anzeige
AW: Da bin ich wieder
26.07.2004 07:39:49
Daniel
Moin,
ich werde am Abend erst wieder dazukommen vorbeizuschaun.
Dann teste ich die Datei nochmal gründlich.
Grüße,
Daniel
AW: Da bin ich wieder
Holger
Hallo Daniel
Habe mir die Datei noch mal angeschaut. Den Fehler mit den Durchläufen habe ich gefunden. Es war noch eine Variable falsch deklariert. Jetzt werden soviel Durchläufe gemacht wie in A1 steht. Auch wenn in einer Reihe nicht so viele Werte stehen.
Im Modul1 für den größten Wert habe ich den Code beschrieben im Modul2 nur wenige Bemerkungen, ist ja mehr oder weniger identisch.
Hier also noch mal die Datei.
https://www.herber.de/bbs/user/8904.xls
Wenn noch was ist, ich schau morgen wieder ins Forum.
Gruß Holger
Anzeige
Super. Eine Sache wünsche ich mir noch ;-)
26.07.2004 21:29:00
Daniel
Hallo Holger!
Ich danke dir sehr.
Eine Sache wünsche ich mir noch. Von da aus kann ich dann hoffentlich selbst weitermachen.
Ich habe wieder in die Datei geschrieben.
https://www.herber.de/bbs/user/8905.xls
Bis dann! Und DANKE!
Daniel
AW: Super. Eine Sache wünsche ich mir noch ;-)
Holger
Hallo Daniel
Das müßte ich eigentlich auch noch hin bekommen. Aber ich weis nocht nicht ob ich heute noch zu komme. Vielleicht so ein zwei Tage ( wenig Zeit zur Zeit ) dann melde ich mich wieder.
Gruß Holger
Hallo, Da bin ich wieder ;-)
Holger
Hallo Daniel
Hier noch die gewünschten Änderungen. Beschreibung liegt wieder bei.
https://www.herber.de/bbs/user/9022.xls
Gruß Holger
Anzeige
AW: Hallo, Da bin ich wieder ;-)
28.07.2004 20:03:27
Daniel
Hallo Holger,
leider stimmt das so noch nicht ganz.
Schau dir mal bitte Zeile 104-Spalte K an.
Hier ist in Abgas der Wert 104,xx und in Verbrauch 69,xx. Demnach sollte in Data 1 der Wert aus 1DayROC kopiert werden, da die Bedingung erfüllt ist.
Kannst du das bitte nochmal kontrollieren!?
Vielen Dank,
Daniel
Habs gefunden ;-)
Holger
Hallo Daniel
Hab den Fehler gefunden.Im Modul3 und zwar
While WertQ "" ' solange WertR nicht Leer ist läuft die Schleife
y = y + 1 --------hier wird ja schon gezählt
WertQ = Sheets("Abgas").Cells(x, y).Value
' der erste WertQ ist immer aus der Spalte B
If Sheets("Abgas").Cells(x, y).Value > HUNDERT And Sheets("Verbrauch").Cells(x, y).Value "" Then
Sheets("Data1").Cells(x, y).Value = Sheets("1DayROC").Cells(x, y).Value
Sheets("Data1").Cells(x, 1).Value = Sheets("1DayROC").Cells(x, 1).Value
--------y = y + 1---------das löschen
Else
------y = y + 1----------das löschen
------WertQ = Sheets("Abgas").Cells(x, y).Value--------und das löschen
End If
Wend
Diese Zähler sind zuviel, dadurch wird doppelt gezählt.
Einfach löschen und dann mügeht es auch. Zeigt jetzt noch nehr Werte an.
Gruß Holger
Anzeige
Habs gefunden ;-)
Holger
Hallo Daniel
Hab den Fehler gefunden.Im Modul3 und zwar
While WertQ "" ' solange WertR nicht Leer ist läuft die Schleife
y = y + 1 --------hier wird ja schon gezählt
WertQ = Sheets("Abgas").Cells(x, y).Value
' der erste WertQ ist immer aus der Spalte B
If Sheets("Abgas").Cells(x, y).Value > HUNDERT And Sheets("Verbrauch").Cells(x, y).Value "" Then
Sheets("Data1").Cells(x, y).Value = Sheets("1DayROC").Cells(x, y).Value
Sheets("Data1").Cells(x, 1).Value = Sheets("1DayROC").Cells(x, 1).Value
--------y = y + 1---------das löschen
Else
------y = y + 1----------das löschen
------WertQ = Sheets("Abgas").Cells(x, y).Value--------und das löschen
End If
Wend
Diese Zähler sind zuviel, dadurch wird doppelt gezählt.
Einfach löschen und dann mügeht es auch. Zeigt jetzt noch nehr Werte an.
Gruß Holger
Anzeige
Alles klar. Danke!
29.07.2004 17:41:23
Daniel
Hallo Holger!
Ich denke jetzt passt es. Ich hoffe, das ich den Rest alleine schaffe.
Falls nicht werde ich mich nochmal im Forum melden.
Grüße und nochmal vielen Dank!
Daniel
Fehler und Wunsch
29.07.2004 18:58:36
Daniel
Hallo Holger!
Ich habe versucht die Makros in meine Arbeitsdatei einzufügen.
Dabei sind mir noch zwei Dinge aufgefallen:
1. Das Datum wird nur dann kopiert, wenn auch Werte kopiert wurden. Damit kann es sein, das Lücken in Spalte A von Data1 sind. Es wäre mir lieber, wenn die komplette Spalte kopiert wird.
2. Beim 1.Makro erhalte ich den Fehler "anwendung- oder objektdefinierter Fehler" und die Zeile WertR= Sheets("Data1").Cells(x, 1).Value
wird markiert.
Das 3.Makro funktioniert. Ich kann mir den Fehler nicht erklären. In der Beispieldatei funktioniert es ja auch.
Woran könnte das liegen?
Grüße
Daniel
AW: Fehler und Wunsch
Holger
Zu 1.
Füge noch die unten engegebene Zeile in den Code von Modul 3
Ich nehme mal an es geht doch um Modul3 oder?
If Sheets("Abgas").Cells(x, y).Value > HUNDERT And Sheets("Verbrauch").Cells(x, y).Value "" Then
Sheets("Data1").Cells(x, y).Value = Sheets("1DayROC").Cells(x, y).Value
Sheets("Data1").Cells(x, 1).Value = Sheets("1DayROC").Cells(x, 1).Value
Else
Sheets("Data1").Cells(x, 1).Value = Sheets("1DayROC").Cells(x, 1).Value-----das einfügen dann wird immer das Datum geschrieben.
End If
Zu 2.
Hmmmmmm kann ich so nicht sagen. Muß ich noch malein wenig nachdenken.
Gruß Holger
AW: Fehler und Wunsch
30.07.2004 21:01:28
Daniel
Hi Holger!
zu 1. Das ist jetzt so in Ordnung.
zu 2. Wäre nett, wenn Du dir Gedanken machen könntest.
Grüße!
Ist das der Fehler ?
Holger
Hallo Daniel
Noch mal zu dem Fehler "anwendung- oder objektdefinierter Fehler" und die Zeile WertR= Sheets("Data1").Cells(x, 1).Value
Diese zeile steht doch ziemlich zum Schluß oder ?
das ist das Ende des Makros hier kommt das letzte Wend
Wend
x = 2
WertR = Sheets("Data1").Cells(2, 1).Value ---- bestimmt diese Zeile
While WertR = ""
WertR = Sheets("Data1").Cells(x, 1).Value
x = x + 1
Wend
Cells(x - 1, 1).Select
End Sub
Ändere es mal so wie es hier oben steht. Mit dieser Prozedur suche ich die erste beschriebene Zelle im Data1-Sheet in Spalte A ( ist das Datum ). Dieser teil sollte in allen drei Makros am Schluß gleich sein.
Probier mal
AW: Ist das der Fehler ?
01.08.2004 16:06:48
Daniel
Hallo Holger!
Aber genau so steht es da.
Der Fehler bleibt jedoch.
Und in dem Makro das funktioniert sieht es auch so aus....!?
Echt zum verzweifeln. Was könnte es noch sein?
Grüße!
Daniel
AW: Ist das der Fehler ?
Holger
Hallo Daniel
Jetzt noch mal,welche Zeile meinst Du
die VOR der While-Prozedur oder IN der While-Prozedur
Wend
x = 2 ------- das ist auch wichtig
WertR = Sheets("Data1").Cells(2, 1).Value ---- diese Zeile
While WertR = ""
WertR = Sheets("Data1").Cells(x, 1).Value --- oder diese
x = x + 1
Wend
Cells(x - 1, 1).Select
End Sub
Hol Dir doch noch einmal die Datei vom Server
https://www.herber.de/bbs/user/9119.xls
Die habe ich noch mal durchgesehen.
Hier sind alle Suchfunktionen in den Modulen für die erste beschriebe Zelle gleich.
Gruß Holger
AW: Ist das der Fehler ?
01.08.2004 19:35:53
Daniel
Hi!
Es betrifft die Zeile VOR der Prozedur.
In der Datei ging/geht es ja.
Nur eben nicht in meiner Arbeitsdatei in die ich das Ganze übertrage.
Grüße!
Daniel
Noch mal überprüfen
Holger
Hallo Daniel
Ein paar Seiten vorher hast Du es noch so geschrieben
WertR= Sheets("Data1").Cells(x, 1).Value
und heir steht in der Klammer an erster Stelle die Variable x . Das auf alle Fälle durch 2 ersetzen.
Mir fällt sons dazu nichts mehr ein. Bin irgend wie ratlos.
Gruß Holger
AW: Noch mal überprüfen
02.08.2004 15:21:05
Daniel
Hi Holger!
Bei mir steht die 2.
Geht aber nicht.
Naja, das hat keinen Sinn sich damit noch weiter zu beschäftigen.
Ich werde einfach ein wenige ausprobieren.
Vielen Dank für die großzügige Hilfe!
Daniel
AW: Noch mal überprüfen
Holger
Hallo Daniel
Nim doch mal Deine funktionierende Datei und speichere diese unter dem Namen Deiner "Arbeitsmappe" oder wie Du sie bezeichnet hast neu ab.
Gruß Holger
AW: Noch mal überprüfen
02.08.2004 18:01:05
Daniel
Hi!
Und dann? Verstehe den Sinn nicht...
Grüße
Daniel
Datei neu abspeichern
Holger
Hi
Du hast doch geschrieben das der Cod in der Mappe nicht läuft in die Du ihn reinkopiert hast. Deshalb die Originalmappe mit Deinem neuen Namen abspeichern. Oder hol Dir 3 oder 4 Seiten vorher hier im Forum noch mal die Datei hier vom Server!
Holger
AW: Datei neu abspeichern
03.08.2004 19:48:04
Daniel
Hi!
Das bringt nichts, da meine Arbeitsdatei schon sehr groß ist.
Ich müsste das makro einfach einfügen und anpassen können.
Es bringt nichts hier weiterzumachen. Danke für die Hilfe!
Grüße
Daniel
OK Tschüß
Holger

319 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige