Office: Mit WENN-Bedingung in Makro gekennzeichnete Spalten in richtige Tabelle kopieren

Helfe beim Thema Mit WENN-Bedingung in Makro gekennzeichnete Spalten in richtige Tabelle kopieren in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; \@EarlFred: Da scheinst Du etwas missverstanden zu haben. Ich war von Anfang an lediglich an der Lösung meines Makroproblems interessiert. Ich habe... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von Schurik12, 25. Dezember 2020.

  1. Mit WENN-Bedingung in Makro gekennzeichnete Spalten in richtige Tabelle kopieren


    \@EarlFred:

    Da scheinst Du etwas missverstanden zu haben. Ich war von Anfang an lediglich an der Lösung meines Makroproblems interessiert.

    Ich habe mir Mühe gegeben, meine Frage betreffend Makro trotz meines Anfängerstatus so genau wie möglich zu formulieren. Zudem dachte ich mir - vielleicht fälschlicherweise - dass es für einen helfenden Profi ein Einfaches sei, das eingefügte Makro und die Beispieldatei zu lesen und zu verstehen. Das eingefügte Makro wurde übrigens von einem Helfer dieses Forums namens Werner auf meine Erklärungen hin vorgeschlagen. Es funktioniert tadellos, auch wenn das andere Forumshelfer nicht verstehen wollen.

    Des Weiteren habe ich Deine Fragen m.E. genau so beantwortet, wie Du sie gestellt hast: Kurz und prägnant. Wenn Du einen leicht despektierlichen Unterton in meinen Antworten herausgelesen hast, dann nur, weil Deine Fragen auch ziemlich despektierlich daherkamen (z.B. "heillosen Durcheinander von unverwertbaren Informationshäppchen").

    Ich verstehe nun Deinen Hinweis betreffend CP. Dies war aber lediglich ein Anfängerfehler meinerseits und es stand auch keine "unfaire" Absicht dahinter. Ich möchte nur mein Hobbyprojekt soweit wie möglich vorantreiben, dass es bis zum Ferienende (3. Januar) abgeschlossen werden kann, weil ich anschliessend job- und familienbedingt dafür praktisch keine Zeit mehr haben werde.

    Da es sich um ein privates Hobbyprojekt handelt, wollte ich natürlich zuerst schauen, ob ich die benötigten Hilfestellungen auch unentgeltlich bekomme. Ganz nebenbei sei auch erwähnt, dass der Zeitaufwand für die gesuchte Hilfestellung ein verschwindend kleiner Bruchteil dessen ist, was ich dieses Jahr für mein Hobbyprojekt aufgewendet habe. Der von einem anderen Forumshelfer vorgebrachte Vorwurf, ich würde lieber andere Leute arbeiten lassen, als die Arbeit selber zu verrichten, ist lediglich Ausdruck seiner Unwissenheit.

    VG, Martin
     
    Schurik12, 27. Dezember 2020
    #16
  2. Martin, die Antwortenden hier - sind teilweise seit Jahren/Jahrzehnten dabei.
    Grund zur Freude für Dich besteht dann, wenn Rückfragen kommen. Ab jetzt liegt es an Dir präzise Antworten zu liefern . Keine Romane, weil Du glaubst, die Gegenüber/der Gegenüber hätte Dein Problem nicht verstanden und Du müsstest es nochmals umschreiben und erklären.

    Das ist m.E. auch der Grund, warum sich kaum einer meldet - nicht einmal nach persönlicher Anrede.

    Ich durchrang mich bei so einem Projekt überhaupt etwas zu schreiben. Habe es getan, weil die Luft (gefühlt) bereits raus war. Um das nochmal zu pushen. Ende vom Lied war, dass Du mich vollends gekonnt ignoriert hast.

    Frage:
    Ist Dein Gameplan bisher aufgegangen?
    Ist jetzt vielleicht die Zeit gekommen, um seine Strategie zu überdenken?

    Hinweisen zu folgen??

    Ich wünsche es Dir - nicht böse gemeint.

    Dennoch - ich bin raus.

    Wünsche auch Dir noch einen guten Rutsch.
     
  3. Vollkommen ohne Despektierlichkeit: ICH verstehe die Frage NICHT gut genug, deswegen frage ich.
    Ja, eine Ahnung, was du willst, habe ich. Das reicht aber nicht für eine ordentliche, zielführende Beantwortung, die MEINEN Maßstäben gerecht würde - und was anderes will und werde ich nicht abliefern, weil die Zeit dafür zu schade ist - und man braucht zu viel Zeit für deine Aufgabe, um einen Galopp in die falsche Richtung mit einem Achselzucken abzutun.

    Also nimm meine Rückfragen so ernst, wie du dir die Antwort wünschst, am besten in der Form, wie ich es beschrieben habe.

    Abschließend doch noch eine Stichelei: Hättest du meinen Wunsch gleich befolgt, hätte ein Helfer in der Zwischenzeit schon sinnvoll an der Aufgabe arbeiten können. So wird nur noch mehr Zeit (und letztlich Motivation, sich überhaupt mit deinem Problem auseinanderzusetzen) für diese fruchtlose Diskussion verschwendet.

    Besser als Mase in seinem letzten Beitrag kann ich es nicht formulieren, er spiegelt meinen Eindruck absolut zutreffend wider.
     
  4. Mit WENN-Bedingung in Makro gekennzeichnete Spalten in richtige Tabelle kopieren

    \@ EarlFred.

    Werde Morgen auf Deine Anschlussfragen nochmals antworten und auf Deine Vorschläge in der Form eingehen, wie Du es wünschst. Danke, dass Du Dir heute Zeit für mein Anliegen genommen hast.

    Wünsche Dir einen schönen Abend.

    VG, Martin
     
    Schurik12, 27. Dezember 2020
    #19
  5. \@ EarlFred: Hab's mir anders überlegt. Du hattest Recht. Ich werde mein Makroproblem direkt mit einem VBA-Spezialisten in einem Auftragsverhältnis gegen Bezahlung lösen.
     
    Schurik12, 28. Dezember 2020
    #20
  6. Mach das.

    Teile dem Programmierer meine ersten Erkenntnisse mit:

    Nachdem ich verstanden habe, dass das Worksheet in der von dir gezeigten Tabelle wohl doch das Worksheet "Aspects (new)" im Code ist, war es dann etwas klarer.

    Was ich ohne die Verformelung in der Musterdatei nicht begreife:
    1) Bei Deinen Berechnungen werden die Werte in den Spalten H:K geändert. Alle. Es wird aber jeweils nur eine Spalte davon verwertet, d. h. in eine andere Datei geschrieben. Die Berechnung aller dieser Spalten ist vermutlich also redundant und frisst Rechenleistung. Prüfe das zur Optimierung der Laufzeit
    2) Es werden mehrfach Werte aus verschiedenen Bereichen in den Bereich AC10:AC11 übernommen. Jede der Änderung bewirkt offenbar Berechnungen, vermutlich wieder über das ganze Blatt. Zur Optimierung der Laufzeit solltest du versuchen, die Berechnungen auf das notwendige Maß zu reduzieren.
    3) Ebenfalls zur Laufzeitoptimierung solltest du überlegen, die gesamte Berechnungslogik zu ändern: Anstelle Werte quer durch das Blatt zu kopieren (allein das braucht Zeit!), um Berechnungen anzustoßen, könntest du auch die Werte einmalig einlesen und im Makro verarbeiten (berechnen). Es geht dir letztlich ja "nur" um die Ausgabe in die externen Dateien. Du sparst Dir also die kompletten Hin- und Herschiebereien - wir reden von Millionen Kopiervorgängen!


    4) dieser Teil:
    Code:
    ist immens langsamer als diese Variante:
    Code:
    Wir reden mal eben von Faktor 25 was die Durchlaufzeit angeht oder 10 Stunden anstelle etwa einer halben Stunde (bei einem Durchlauf OHNE Formelberechnungen).



    Folgender Code macht das, was ich von deiner Aufgabe begriffen habe:
    Code:
    Ich habe ein paar Timer eingebaut, damit du im Direktbereich siehst, welcher Vorgang im Code wie lange braucht. Teste erst mit einer geringen Anzahl von Durchläufen (siehe Zeile For z = 11 To 20 '''' 2010). Wenn die Laufzeit der einzelnen Blöcke nach den Vorschlägen 1) bis 4) optimiert ist, nimm die Zeitmessung raus. Auch die frisst nur Zeit.

    Für das Durchfressen durch die Aufgabenbeschreibung, die Datei, das Aufstöbern möglicher Zeitlecks und die Codevorschläge (der geringste Teil) sind 90 Minuten draufgegangen. Nur, damit du einen Eindruck bekommst, was ein Außenstehender für Zeit aufbringen muss, wenn er sich mit deiner Gedankenwelt beschäftigen will, in der nur du voll drinsteckst.
     
  7. Ganz herzlichen Dank für Dein Feedback. Ich werd's mir heute Abend genauer anschauen.

    VG, Martin
     
    Schurik12, 28. Dezember 2020
    #22
  8. Mit WENN-Bedingung in Makro gekennzeichnete Spalten in richtige Tabelle kopieren

    Hallo EarlFred,

    Dein Code funktioniert so weit ich bis jetzt sehen kann perfekt. Nochmals vielen Dank dafür, Du hast mir damit eine grosse Freude bereitet.

    Deine Vorschläge 1) bis 4) werde ich gerne an den zukünftigen Programmierer zur Minimierung der Rechenzeit weiterleiten. Herzlichen Dank auch hierfür.

    Wünsche Dir einen schönen Abend und alles Gute für's Neue Jahr.

    VG, Martin
     
    Schurik12, 28. Dezember 2020
    #23
  9. \@Martin:
    Du könntest Dir auch die Signatur von EarlFred mal genauer durchlesen...*Smilie
     
  10. \@Ralf: Du hast Recht. Ich werde heute bei Wikipedia spenden. :-)
     
    Schurik12, 29. Dezember 2020
    #25
  11. Hallo Zusammen,

    Ich habe das von EarlFred vorgeschlagene Makro (siehe oben, Seite 2) vom 28.12.2020, 16:39, nun eingehend getestet. Es funktioniert einwandfrei, womit mein geplanter Gang zur Jobbörse keinen Sinn mehr macht. Nochmals herzlichen Dank an EarlFred für seine grosszügige Hilfeleistung, ich weiss es zu schätzen.

    Zudem habe ich in der Zwischenzeit einige Berechnungen zusammengelegt, womit das File nur noch 25 MB statt 50 MB gross ist. Das Makro läuft damit deutlich schneller.

    Nun habe ich noch zwei Anschlussfragen:

    1) Wie kann ich die von EarlFred eingebauten Timer wieder herausnehmen, damit die keine Zeit fressen?

    2) Wie kann ich im Makro zwischen den Schritten:

    For s = 0 To 3
    .Range("AC10:AC11").Value = .Range("AC14:AC15").Offset(, s).Value
    'Spalten H bis K
    Range(.Cells(1, 8), .Cells(lngLast, 8)).Offset(, s).Copy
    sZieldatei = UCase$(.Cells(14, 8).Offset(, s).Value)
    iZieldatei = Asc(sZieldatei) - 65
    fwsZiele(iZieldatei).Cells(1, y(iZieldatei)).PasteSpecial Paste:=xlPasteValues
    y(iZieldatei) = y(iZieldatei) + 1
    Next s

    und:

    .Range("AC23:AF1738").ClearContents

    einen Speicherzwischenschritt für die Zieldateien einbauen?

    Ich möchte für die Schleife

    For z = 11 To 2010

    nach jedem 100. Schritt (also bei z = 110, 210, 310, … 2010) die Zieldateien (TESTED_A.xlsx, TESTED_B.xlsx, TESTED_C.xlsx, TESTED_D.xlsx, TESTED_E.xlsx), wo die Werte aus den Spalten H:K hinkopiert werden, zwischenspeichern, damit nicht alles verloren geht und man neu beginnen muss, wenn Excel aus irgendeinem Grund abstürzen sollte.

    Ich wäre Euch sehr dankbar, wenn Ihr zu meinen zwei Fragen jeweils eine Lösung vorschlagen könntet. Vielen Dank.

    VG, Martin
     
    Schurik12, 9. Januar 2021
    #26
  12. War klar...

    für die Statistik: Blieb es bei der Ankündigung oder ist das erledigt?

    zu 1)
    Hast du den Code mal nach dem Stichwort "Timer" durchsucht? Erkennst du einen Zusammenhang, der dir die Erledigung dieser umfangreichen Aufgabe ermöglicht?

    zu 2)
    Speichern heißt in VBA Save. Wenn du nach diesem Schlüsselwort suchen lässt, musst du nur noch verstehen, was die Schleife drumherum tut - und schon kannst du auch das alleine erledigen.

    Wenn du die Erledigung nicht alleine schaffst, hast du dich dann aber wenigstens soweit mit dem Code beschäftigt, dass du gezielte Fragen stellen kannst, bei denen dir dann jemand helfen kann. Hinweis: "Wie muss der Code aussehen?" ist keine gezielte Frage.
     
    EarlFred, 9. Januar 2021
    #27
  13. Mit WENN-Bedingung in Makro gekennzeichnete Spalten in richtige Tabelle kopieren

    Hallo EarlFred,

    Nach Deiner letztmals grosszügigen Hilfestellung habe ich 100 Schweizer Franken an Wikipedia gespendet, was ungefähr 90 Euros entspricht. Nach meinen Informationen ist das mehr als 6 Mal der durchschnittlich gespendete Betrag.

    Zu 1): MIt meinem laienhaften Verständnis sehe ich folgenden Programmcode betreffend Timer im von Dir vorgeschlagenen Makro:

    „Dim t0 As Single, t1 As Single, t2 As Single, t3 As Single“: Kann ich diese Zeile löschen?

    „t0 = Timer“: Kann ich diese Zeile löschen?

    „t1 = Timer“: Kann ich diese Zeile löschen?

    „t2 = Timer“: Kann ich diese Zeile löschen?

    „Debug.Print 2, Timer - t2“: Kann ich die ganze Zeile löschen oder muss „Debug.Print 2“ dort stehen bleiben und nur „Timer - t2“ gelöscht werden? Zudem verstehe ich nicht den „Debug.Print 2“ Code an dieser Stelle.

    „t3 = Timer“: Kann ich diese Zeile löschen?

    „Debug.Print 3, Timer - t3“: Kann ich diese Zeile löschen oder muss „Debug.Print 3“ dort stehen bleiben und nur „Timer – t3“ gelöscht werden? Zudem verstehe ich nicht den „Debug.Print 3“ Code an dieser Stelle.

    „Debug.Print 1, Timer - t1“: Kann ich diese Zeile löschen oder muss „Debug.Print 1“ dort stehen bleiben und nur „Timer – t1“ gelöscht werden?? Zudem verstehe ich nicht den „Debug.Print 1“ Code an dieser Stelle.

    „Debug.Print 0, Timer - t0“: Kann ich diese Zeile löschen oder muss „Debug.Print 0“ dort stehen bleiben und nur „Timer – t0“ gelöscht werden? Zudem verstehe ich nicht den „Debug.Print 0“ Code an dieser Stelle.

    Zu 2): Den Save Befehl kenne sogar ich als blutiger Makro-Anfänger. Aber ich will ja nicht nach jedem Kopierschritt für die Spalten H:K jede Zieldatei (TESTED_A.xlsx bis TESTED_E.xlsx) 2000 Mal speichern, weil das Makro sonst unnötig lange braucht. Ich habe mir gedacht, es wäre wohl am praktikabelsten, wenn es nach jedem 100. Kopiervorgang der Spalten H:K alle 5 Zieldateien speichert, d.h. also insgesamt 20 Mal für die je 5 Zieldateien. Und dabei bin ich nun überfordert und auf Hilfe angewiesen. Ich weiss nicht, wie und wo ich diese Idee im Makro am besten einbauen soll. Du würdest mir einen grossen Gefallen tun, wenn Du mir hierzu unter die Arme greifen könntest.

    VG, Martin
     
    Schurik12, 9. Januar 2021
    #28
  14. uffz! OK, OK, ich hör schon auf zu schimpfen *wink.gif*

    Alles, wo "Timer" vorkommt, kann schadlos raus, ja. Habe ich anbei erledigt.
    Zur Frage 2) ist die Ergänzung rot markiert eingetragen.

    Code:
     
    Zuletzt von einem Moderator bearbeitet: 9. Februar 2021
    EarlFred, 10. Januar 2021
    #29
  15. Vielen Dank für Deine erneute Hilfe, werde die neue Version gleich einmal laufen lassen.

    Ich hoffe, Deine Statistik mit den Dankspenden an Wikipedia sieht nun ein bisschen besser aus. ;-)

    Wünsche Dir ein schönes Wochenende!

    VG, Martin
     
    Schurik12, 10. Januar 2021
    #30
Thema:

Mit WENN-Bedingung in Makro gekennzeichnete Spalten in richtige Tabelle kopieren

Die Seite wird geladen...
  1. Mit WENN-Bedingung in Makro gekennzeichnete Spalten in richtige Tabelle kopieren - Similar Threads - Bedingung Makro gekennzeichnete

  2. Bestimmte Zeilen nach Bedingungen in andere Tabelle Verschieben

    in Microsoft Excel Hilfe
    Bestimmte Zeilen nach Bedingungen in andere Tabelle Verschieben: Hallo Zusammen, Ich habe mich für eine Statusliste unserer Personalthemen in Excel an das Thema VBA gewagt. Ich habe anfangs auch echt guten Fortschritt gemacht nun hänge ich aber seit mehreren...
  3. Makro Inhalt löschen wenn Bedingung erfüllt

    in Microsoft Excel Hilfe
    Makro Inhalt löschen wenn Bedingung erfüllt: Hallo, Ich hab ein kleines Problem und benötigte Experte Wissen im VPA programmieren. Wenn ich in meiner Tabelle1 in der Zeile A1 den Wert ändere, dann soll er den Inhalt von Zeile B1 und C1...
  4. VBA - Makro nur unter bestimmten Bedingungen starten

    in Microsoft Excel Hilfe
    VBA - Makro nur unter bestimmten Bedingungen starten: Hallo, ich würde mich freuen wenn ihr mir kurz helft. Ich habe ein bestehendes Makro, welches sehr vieles macht, u.a. ein weiteres Makro aufrufen, welches sämtliche Filter in meiner Tabelle,...
  5. SVerweis, WennDann oder Makro

    in Microsoft Excel Hilfe
    SVerweis, WennDann oder Makro: Hallo zusammen, Ich habe zwar ähnliche Themen gefunden aber komme trotzdem bei meinem Problem nicht weiter. Anbei meine Beispieldatei, da die echten Daten viel umfangreicher sind. Ich würde...
  6. Makro FIND Funktion mit 2 Bedingungen

    in Microsoft Excel Hilfe
    Makro FIND Funktion mit 2 Bedingungen: Hallo zusammen, ich wüsste gerne wie folgende Zeile aussehen müsste wenn ich nach 2 Textstücken suchen möchte. Formula = "=IF(ISERROR(FIND(""+Y"",B19)),"""",""JA"")" Das er quasi JA ausgibt...
  7. Blattschutz VBA mit PW und Bedingungen

    in Microsoft Excel Hilfe
    Blattschutz VBA mit PW und Bedingungen: Hallo VBA'ler Kenne mich nicht wirklich mit VBA aus, habe es aber geschafft, eine mit PW geschützte Tabelle via Button zu entsperren und wieder zu sperren. Der Button dient dazu, die gesetzten...
  8. Gekennzeichnete Spalten mit WENN-Bedingung in Makro nach 5 Tabellen kopieren

    in Microsoft Excel Hilfe
    Gekennzeichnete Spalten mit WENN-Bedingung in Makro nach 5 Tabellen kopieren: Hallo, Ich habe ein Makro, welches ich gerne ein wenig erweitern möchte, um mir bei der Weiterverarbeitung der Ergebnisse deutlich Zeit zu sparen. Da dies meine sehr rudimentären Makrokenntnisse...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden