Seite 1 von 3 1 2 3 LetzteLetzte
Ergebnis 1 bis 10 von 26
  1. #1
    Registriert seit
    29.08.2007
    Beiträge
    145

    Makro mit Wiederholungschlaufe

    Hallo zusammen,
    Ich habe ein Makroproblem. Das am Ende aufgeführte Makro konnte ich noch selber zusammenzimmern und es funktioniert auch grundsätzlch so wie ich es will. Ein kleiner Nachteil ist, dass es mit Funktionen aus ASAP-Utilities läuft und über die ganze Exceltabelle mehrmals ausgeführt werden muss. Letzteres möchte ich optimieren.

    Es geht um folgendes. In der angehängten Datei wird das Makro in der Tabelle "Master" ausgeführt und das Resultat wäre dann die Tabelle "Teilnehmer". Es geht darum, immer die zwei Zeilen mit den Infos über die Personen die in der gleichen Kabine sind, in eine Zeile zusammenzuführen. Ich stelle den Cursor jeweils in die Nummernspalte der ersten von zwei solchen Zeilen mit gleicher Kabinennummer und starte das Makro. Der erste Schritt erweitert die Markierung auf die Zellen der zwei Zeilen. Die weiteren Schritte führen dann die Inhalte "senkrecht" pro Spalte zusammen mit einer Zeilenschaltung, löschen doppelte Einträge und löschen die dadurch entstehende Leerzeile.

    Was ich nun möchte ist, das Makro so zu erweitern dass dieses selbständig von oben nach unten die Spalte Kabine durchsucht und wenn zwei senkrecht aufeinander folgende Kabinen-Nummer gefunden werden, wird das Makro abgearbeitet. Und anschliessend die nächsten zwei Zeilen die die gleichen Kabinen-Nummern haben zu suchen. Das dabei Zeilen mit nur ein Mal vorkommender Kabinen-Nummer übersprungen werden ist - glaube ich - klar.
    Die effektive "scharfe" Tabelle ist natürlich sehr viel grösser als die angehängte Testdatei.
    Ich hoffe, dass ich mein Problem klar genug geschildert habe und bedanke mich schon zum voraus für die Unterstützung.
    Beste Grüsse
    Smily44
    Hier nun mein Makro
    Sub Kabinendaten_zusammenführen()

    Call Doppelkabinenbereich
    Call Kabinenbereich
    End Sub
    Dazu gehören folgende Makros
    Sub Doppelkabinenbereich()
    '
    ' Doppelkabinenbereich Makro
    '
    ' Tastenkombination: Strg+a
    '
    ActiveCell.Range("A1:N2").Select
    End Sub
    und
    Sub Kabinenbereich()
    ' Mit den markierten Zeilen werden:

    ' gleiche Inhalte löschen
    Application.Run "'ASAP Utilities.xlam'!ASAPRunProc", 53

    ' 2 Zellen zusammengeführt mit einer Zeilenschaltung zwischen den Werten
    Application.Run "'ASAP Utilities.xlam'!ASAPRunProc", 63

    ' es werden die durch die vorhergehenden Schritte entstandenen leeren Zeilen gelöscht:
    Application.Run "'ASAP Utilities.xlam'!ASAPRunProc", 232

    End Sub
    Angehängte Dateien Angehängte Dateien

  2. #2
    Registriert seit
    04.08.2015
    Ort
    in der Geburtsstadt der Gebrüder Grimm
    Beiträge
    203

    Erster Versuch

    Hallo Smily,

    ich habe dir hier mal einen Makro hochgeladen.
    Die Teilnehmerliste wird gefüllt, wenn du den Makro erstelleTeilnehmerListe laufen lässt. Ich hoffe, er läuft so, wie du dir das vorstellst.

    Grüße, Andreas
    Angehängte Dateien Angehängte Dateien

  3. #3
    Registriert seit
    29.08.2007
    Beiträge
    145
    Hallo Andreas,
    Zunächst vielen Dank, dass du dich dem Thema angenommen hast.

    So wie ich das sehe, hast du meine Testdatei wieder hochgeladen. Ich ging davon aus, dass das von dir erwähnte Makro darin enthalten ist. Das ist es jedoch nicht, zumindest finde ich nichts unter Makro. Oder mach ich da irgendwo ein Fehler?
    Liebe Grüsse
    Smily44

  4. #4
    Registriert seit
    04.08.2015
    Ort
    in der Geburtsstadt der Gebrüder Grimm
    Beiträge
    203
    Da hast du irgendwie einen Fehler gemacht:
    Deine Datei heißt "testadei für forum.zip" (13,0 KB).
    Meine Makro(Zip)datei heißt "Testdatei für Forum.zip" (19,7 KB).
    Darin findest du die Datei "Testdatei für Forum.xlsm" mit dem Makro.
    Eventuell hast du ja aus Versehen die Datei in deinem eigenen Beitrag angeklickt.
    Versuch's noch mal.

    Gruß Andreas

  5. #5
    Registriert seit
    29.08.2007
    Beiträge
    145
    Hallo Andreas,
    Ja, du hast recht, ich habe die falsche Datei zum Öffnen erwischt - entschuldiung.

    Ich bin echt verblüfft - herzlichen Dank. Es funktioniert und geht ja deutlich weiter, als ich eigentlich erwartet habe und erst noch ohne Einbindung von Funktionen aus ASAP. Und genau deshalb, habe ich nun zwei weitere Baustellen.

    1. Die ursprüngliche Testdatei war tatsächlich nur ein Muster um zu erklären was ich eigentlich möchte. Somit enthielt die ursprüngliche Tabelle "Teilenehmer" nicht alle Spalten die ich für die Frontarbeit brauche und sie waren auch nicht in der korrekten Reihenfolge. Die wäre deshalb wichtig, weil ich die mit dem Makro gewonnene Tabelle mit Copy und Paste, Werte, in eine umfassendere Tabelle einfüge, die ab Spalte O dann noch weitere Spalten hat. Zudem werden auch noch zusätzlich Tabellen kreiert.

    2. In der ursprünglichen Testdatei hatte ich in der Tabelle "Master" ja in Zeile 1 ein Titel. Der existiert so in einem scharfen Master nicht. D.h. die Daten fangen in der Zeile 2 und nicht wie in der Testdatei in Zeile 3.

    Als Anhang nun eine Testdatei mit korrekter Struktur in der Tabelle Teilnehmer.

    Zudem - Dein Makro übernimt aus einer scharfen Mastertabelle die Daten offenbar erst ab Zeile 3. Auf alle Fälle erscheinen die Daten der Zeile 2 nicht in Teilnehmer.

    Und zu guter Letzt noch die Frage, wir bekomme ich dein Makro in meine Mappe Personal.xlsb?

    Ich bin wirklich happy und weiss gar nicht wie ich dir danken soll, wenn du die obigen Hinweise auch noch berücksichtigt hast.

    Nochmals herzlichen Dank und beste Grüsse
    Smily44
    Angehängte Dateien Angehängte Dateien

  6. #6
    Registriert seit
    04.08.2015
    Ort
    in der Geburtsstadt der Gebrüder Grimm
    Beiträge
    203

    Warum???

    Hi Smily44,

    warum hast du denn nicht gleich beim ersten Mal die Tabellen mit der richtigen Spaltenzuordnung hochgeladen????
    So war das jetzt doppelte Arbeit.
    Aber sei's drum. Hier jetzt der Makro für die neue Spaltenzuordnung. Er fängt jetzt auch auf dem Master-Blatt in Zeile 2 an zu lesen. Vorher standen die Daten ja ab Zeile 3. Deswegen hatte er in deiner "scharfen" Master-Tabelle die erste Zeile nicht gelesen.
    Um den Makro in deine personal.xlsb zu kriegen, verschiebe ihn im VBA Editor einfach dorthin. Dann kannst du die Mappe mit Master- und Teilnehmerblatt auch wieder einfach als .xlsx (ohne Makros) speichern.
    Beim Ausführen des Makros must du dann aber darauf achten, dass
    1. Die Mappe mit Master- und Teilnehmerblatt die aktive Mappe ist und
    2. Die Blätter auch exakt "Master" und "Teilnehmer" heißen. Falls du die Bätter umbenennst, musst du das auch im Makro an den 2 markierten Stellen ändern.
    Wenn's noch Fragen gibt, melde dich. (Und bitte beim nächsten Mal gleich die richtige Spalten-Struktur hochladen!)

    Grüße, Andreas
    Angehängte Dateien Angehängte Dateien

  7. #7
    Registriert seit
    29.08.2007
    Beiträge
    145
    Hallo Andreas,
    Vielen Dank für deine rasche Reaktion.

    Es tut mir leid, dass du nun doppelte Arbeit hattest, weil ich ein nicht vollständiges Testfile hochgeladen habe. Und du hast natürlich völlig Recht mit deiner Rüge.
    Als kleine Entschuldigung kann ich nur anführen, dass es mir beim ersten Post nur darum ging, mein Makro mit einer Schlaufe zu ergänzen. Dass du dann auch noch die richtigen Schritte vor dem Zusammenführen der Daten eingebaut, bzw. zusammengefasst hat, habe ich definitiv nicht erwartet. Aber trotzdem herzlichen Dank nochmals - es ist wirklich super.

    Ich konnte das neue Makro noch nicht prüfen, werde das dann aber spätestens am Montag machen und mich wieder melden.

    Liebe Grüsse und ein schönes Wochenende
    Smily44

  8. #8
    Registriert seit
    29.08.2007
    Beiträge
    145
    Hallo Andreas,
    Tja, soeben wurde ein Termin von heute gestrichen, so dass ich doch noch Zeit hatte das neue Makro zu testen.

    Es funktioniert wunderbar, allerdings nur mit den Testdaten.
    In meiner Mappe umfasst die Tabelle "Master" 30 Zeilen (inkl. Spaltenüberschrift). Wenn ich nun die Tabelle Master mit Daten aus einer "scharfen Datei" fülle, dann wird ab Zeile 31 das Datum bei der ersten Zeile des Feldes (sofern in dieser Zeile zwei Datensätze vom Master zusammengefügt werden) in der Tabelle "Teilnehmer* nur als Zahl angegeben. Der zweite Eintrag kommt korrekt.

    In der Praxis kann die Tabelle "Master" je nach Anzahl Teilnehmer max. 133 Zeilen, inkl. Überschriftszeile umfassen. Die Zieldatei "Teilnehmer" höchstens 66 (inkl. Überschriften).
    Allerdings finde ich im Makro keinen entsprechenden Hinweis auf eine Zeilenbeschränkung.

    Noch eine weitere Frage
    Im Makto hat es kurz oberhalb der Mitte zwei Zeilen in grüner Schrift mit jeweils "?" am Ende der Zeile. Muss ich da noch etwas ergänzen und wenn Ja, was? (Ich bin völliger Laie in VBA!)

    Ich hoffe, du rügst mich nun nicht wieder wegen unvollständigem Testfile - wie erwähnt, habe das nur reingestellt um mein Anliegen zu verdeutlichen und es wäre auch relativ aufwändig gewesen eine "scharfe" Tabelle mit Fakedaten zu füllen. (Eine Originaldatei kann ich ja aus datenschutzgründen nicht verwenden.)

    Ich hoffe, dass dies nun die letzte Belästigung meinerseits ist und danke dir einmal mehr für deine phantastische Unterstützung.
    Liebe Grüsse
    Rolf
    Angehängte Grafiken Angehängte Grafiken

  9. #9
    Registriert seit
    04.08.2015
    Ort
    in der Geburtsstadt der Gebrüder Grimm
    Beiträge
    203
    Hallo Smily,

    vorweg: Ich will hier niemanden rügen. Das steht mir nicht zu. Ich hatte nur in meinem Eifer und meinem Spaß am Tüfteln angenommen, die Spaltenstruktur sei so, wie sie ist. Ich dachte mir, dass es gefakete Daten sind (wegen Datenschutz), aber ich nahm an, die Spaltenstruktur sei original. Dass sie dann anders war, war halt so. Ich war zu voreifrig mit meiner Programmiererei. Und "belästigt" fühle ich mich hier schon gar nicht. Ich habe mich hier angemeldet, weil es mir Spaß macht, anderen Leuten zu helfen, und weil ich hier beim Mitlesen in anderen Threads noch einiges lernen kann. Also: Bitte weiter Löcher in den Bauch fragen. Dafür bin ich hier. Ich möchte alle deine Fragen beantworten, bis du völlig zufrieden bist mit dem Makro. So genug der Vorrede.

    Das mit den falsch formatierten Daten (oder heißt es Datums?) ist seltsam. Wie sind denn die Daten in der "scharfen" Master-Tabelle formatiert? Als Datum? Versuch mal, bevor du den Makro laufen lässt, die komplette Spalte F in der Teilnehmer-Tabelle als Datum zu formatieren. Mal sehen, ob's hilft. Eine Beschränkung auf eine bestimmte Zeilenzahl hat der Makro nicht. Er läuft so lange, bis er in der Master-Tabelle in Spalte G (Kabine) eine leere Zelle findet. Achtung!: Das heißt auch, dass in der Master-Tabelle keine Leerzeilen vorhanden sein dürfen. Sosnt bricht der Makro vorzeitig ab.

    Nein, bei den Fragenzeichen im Code musst du nichts machen. Das war ein Hiweis für mich, dass die Spalten PAX und Bus in der Teilnehmer-Tabelle keine Entsprechung in der Master-Tabelle haben.

    Lass mal hören, ob das mit dem Datums-Format klappt und frag' so lange weiter, bis alles klar ist.

    Grüße, Andreas

  10. #10
    Registriert seit
    29.08.2007
    Beiträge
    145
    Hallo Andreas,
    Jetzt klappt's. Die Zellen der Zieldatei müssen korrekt mit "Datum" formatiert sein, bevor das Makro ausgeführt wird.

    Ich werde nun weiter probieren, denn dein umfassendes Marko - das ja wie schon mal erwähnt weit mehr macht als ich erwartet habe - ermöglicht mir nun wahrscheinlich dieverse Vorbereitungsschritte die zur Tabelle "Master" führeen auch noch zu eliminieren. Dazu muss ich aber das Makro etwas anpassen und das würde ich ganz gerne zuerst mal selber ausprobieren - ich will ja auch etwas lernen. Falls ich aber scheitere, melde ich mich gerne wieder.

    Nochmals ganz herzlichen Dank für deine gross Unterstützung und liebe Grüsse
    Smily44

Seite 1 von 3 1 2 3 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •