Office: (Office 2010) Makro für Zellen Automatisch befüllen

Helfe beim Thema Makro für Zellen Automatisch befüllen in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo Zusammen, ich bekomme regelmäßig eine Auswertung die ich etwas umformatieren müsste. Das Schema sieht in wie folgt aus: [ATTACH] In... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von Quaran, 31. März 2015.

  1. Quaran User

    Makro für Zellen Automatisch befüllen


    Hallo Zusammen,

    ich bekomme regelmäßig eine Auswertung die ich etwas umformatieren müsste.
    Das Schema sieht in wie folgt aus:

    Den Anhang Beispiel.xlsx betrachten

    In Spalte C und in Spalte D sollen alle leeren Zellen mit dem oberen Wert ausgefüllt werden.
    Das Endergebniss soll so aussehen:

    Den Anhang Beispiel.xlsx betrachten

    Die Anzahl der Lücken sind manchmal unterschiedlich.

    Bei über 30.0000 Zeilen wäre das manuell sehr aufwändig.

    Habt ihr da eine Idee wie man das mittels Makro machen kann?

    Vielen Dank schon mal im vorraus.

    Grüße,
    Quaran
     
    Quaran, 31. März 2015
    #1
  2. fette Elfe Erfahrener User
    Hallo Quaran,

    sowas würde ich mit ner Schleife machen.
    Da ich weder Deine Datei, noch Deine VBA-Kenntnisse kenne, habe ich hier mal ein ganz einfaches Konstrukt geschrieben:
    Code:
    Option Explicit
    
    Public Sub Autoausfüllen()
    
    Dim lngCount As Long        ' Zählervariable für Zeilen
    
        With Me
            For lngCount = 2 To .Cells(Rows.Count, 1).End(xlUp).Row     ' Schleife startet in Zeile 2 und läuft durch bis zur letzten Zeile wo in Spalte A die Zelle einen Wert hat
                If .Cells(lngCount, 3) = "" Then                        ' Prüfung ob Zelle in Spalte C leer ist
                    .Cells(lngCount, 3) = .Cells(lngCount - 1, 3)       ' Zelle in Spalte C mit Wert der darüberliegenden Zelle füllen
                    .Cells(lngCount, 4) = .Cells(lngCount - 1, 4)       ' Zelle in Spalte D mit Wert der darüberliegenden Zelle füllen
                End If
            Next lngCount
        End With
    
    End Sub
    Ich hoffe geholfen zu haben.
     
    fette Elfe, 31. März 2015
    #2
  3. Quaran User
    Hallo Achim,

    vielen Dank für deine Antwort.
    Das Konstrukt sieht schon sehr gut aus und tut sicherlich das was es eigentlich soll.
    Wenn ich allerdings das Makro ausführe (ich hinterlege das Makro auf eine Form), dann kommt dort folgende Fehlermeldung:
    "Fehler beim Kompilieren: Unzulässige Verwendung des Schlüsselwortes Me"

    Grüße,
    Quaran
     
    Quaran, 7. April 2015
    #3
  4. Manta
    Manta Erfahrener User

    Makro für Zellen Automatisch befüllen

    Das Problem ist, das du das Makro in einer Form hinterlegst.



    Du musst deinen code in ein (Klassen)Modul schreiben, dann sollte "With Me" funktionieren.
    Dann kannst du den Code mit "Call ...." aufrufen von deiner Form aus.
     
    Manta, 7. April 2015
    #4
  5. Quaran User
    Sorry, bitte noch mal für Dumis.

    Wie muss der Quellcode aussehen wenn ich dieses Makro einer Form zuteilen will.
    Mit Form meine ich übrigens wirklich eine Form, und kein Formularsteuerelement oder der gleichen.
     
    Quaran, 7. April 2015
    #5
  6. Manta
    Manta Erfahrener User
    Zuletzt bearbeitet: 8. April 2015
    Manta, 8. April 2015
    #6
  7. fette Elfe Erfahrener User
    Sry Manta, aber ich glaube das ist so nicht wirklich richtig oder zielführend.
    Die Referenzierung "Me" macht Sinn, wenn sie im Objektmodul des entsprechenden Objektes benutzt wird.
    In diesem Fall habe ich den Code in das Modul des Arbeitsblattes geschrieben.
    Somit bezieht sich das "Me" automatisch auf das Arbeitsblatt, und alles ist gut.

    Natürlich kann man auch mit "call..." arbeiten, aber eben genausogut auch ohne. Selbst wenn der Code im Modul einer User-Form liegt.
    Mann muss die Referenzierung nur entsprechend anpassen.
    Tscha, und da habe ich leider keinerlei Informationen vom TO.
    Auf welche Arbeitsblätter wird sich bezogen, werden die innerhalb der Form über ein DropDown ausgewählt... o.ä. ?
    Und, ich habe leider keine Ahnung wie viel Vorwissen in VBA bei Quaran vorhanden ist.

    Ohne mehr Input leider kein Output ;-)
     
    fette Elfe, 8. April 2015
    #7
  8. Quaran User

    Makro für Zellen Automatisch befüllen

    Danke für die Antwort,

    Also, ich möchte folgendes machen:
    Ich kopiere diese Liste in ein das Tabellenblatt "Quelle". In diesem Tabellenplat befindet sich eine Form. Wenn ich auf diese Form drücke soll dieses Makro ausgeführt werden. Alles spiel sich innerhalb diesen Tabellenblattes ab. mehr will ich eigentlich nicht machen. Da ist kein DropDown oder Ähnliches.

    VBA kenntnisse sind kaum vorhanden. Ich verfüge zwar über gute Kenntnisse in JavaScript und PHP, aber leider nicht über VBA.

    Grüße,
    Quaran
     
    Quaran, 9. April 2015
    #8
  9. fette Elfe Erfahrener User
    Hallo Quaran,

    in dem Fall sollte es reichen, die Referenzierung auf das Blatt festzulegen:
    Code:
    Option Explicit
    
    Public Sub Autoausfüllen()
    
    Dim lngCount As Long        ' Zählervariable für Zeilen
    
        With [COLOR=#ff0000]ThisWorkbook.Worksheets("Quelle")[/COLOR]
            For lngCount = 2 To .Cells(Rows.Count, 1).End(xlUp).Row     ' Schleife startet in Zeile 2 und läuft durch bis zur letzten Zeile wo in Spalte A die Zelle einen Wert hat
                If .Cells(lngCount, 3) = "" Then                        ' Prüfung ob Zelle in Spalte C leer ist
                    .Cells(lngCount, 3) = .Cells(lngCount - 1, 3)       ' Zelle in Spalte C mit Wert der darüberliegenden Zelle füllen
                    .Cells(lngCount, 4) = .Cells(lngCount - 1, 4)       ' Zelle in Spalte D mit Wert der darüberliegenden Zelle füllen
                End If
            Next lngCount
        End With
    
    End Sub
    So sollte es völlig egal sein in welchem Modul der Code steht. Hauptsache er befindet sich nicht in einer anderen Arbeitsmappe, und das Blatt "Quelle" muss natürlich existieren und so benannt sein.
     
    fette Elfe, 12. April 2015
    #9
  10. Quaran User
    Vielen Dank, Das Makro funktioniert jetzt wie gewünscht.

    Aber jetzt kommt ein anderes Problem auf mich zu. Das Makro ist recht langsam. Also bei mir braucht er um jede Zeit zu befüllen etwa geschätzt 8 Sekunden. Bei 54500 Zeilen macht das über 2 Stunden. Gibt es da einen Weg dies zu beschleunigen?
     
  11. fette Elfe Erfahrener User
    Hallo Quaran,

    bei Dir dauert es pro Zeile 8 Sekunden? Das ist krass.
    Bei mir werden die 32 Zeilen aus Deiner Beispieldatei innerhalb von einem "Plöpp" abgearbeitet, feddich.
    Durch die Zellzugriffe wird die Bearbeitung von über 50k Zeilen schon ein wenig dauern, aber da habe ich mit ca. 1-3 Minuten maximal gerechnet.

    Wenn das bei dir so lange dauert stimmt etwas nicht.
    Lass die Schleife doch mal im Einzelschrittmodus durchlaufen, und schau mal was passiert.
    Möglicherweise hast Du im Change-Ereignis Code stehen, der dadurch ausgelöst wird.
    In dem Fall könnte man die Ereignisse kurzzeitig ausschalten und am Ende wieder einschalten.

    Aber ohne Deine Originaldatei zu kennen (oder an Deinem Rechner zu sitzen), fällt mir sonst auch nichts dazu ein.
    Vielleicht hat jemand anderes ja noch eine Idee dazu?
     
    fette Elfe, 16. April 2015
    #11
Thema:

Makro für Zellen Automatisch befüllen

Die Seite wird geladen...
  1. Makro für Zellen Automatisch befüllen - Similar Threads - Makro Zellen Automatisch

  2. Speichern mit dem Titel der Zelle A2

    in Microsoft Excel Hilfe
    Speichern mit dem Titel der Zelle A2: Moin moin, Ich habe per Makro einen Arbeitsablauf aufgezeichnet der soweit auch funktioniert. Dieser Endet jedoch im "Speichern Unter" Fenster, welches durch das Klicken von "Drucken als PDF"...
  3. Überprüfen ob Tabellenballt mit Namen aus Zelle vorhanden ist

    in Microsoft Excel Hilfe
    Überprüfen ob Tabellenballt mit Namen aus Zelle vorhanden ist: Da ich VBA noch nicht so lange benutze komme ich doch gerade an meine Grenzen. Ich möchte überprüfen ob es ein Bestimmtes Tabellenblatt gibt im Tabellenblatt "GK" in P1 steht der zu überprüfende...
  4. Makro: Zeichen in Zelle zählen

    in Microsoft Excel Hilfe
    Makro: Zeichen in Zelle zählen: Hallo zusammen. Ich merke gerade wie eingestaubt meine ohnhin noch nie ausgeprägten VBA-Kenntnisse sind. Vielleicht ist einer von euch so nett mir auf die Sprünge zu helfen. Ich versuche mir ein...
  5. Kontrollkästchen (mehrere) Makro kopieren, Problem: Zellen nicht gegenseitig überschreiben

    in Microsoft Excel Hilfe
    Kontrollkästchen (mehrere) Makro kopieren, Problem: Zellen nicht gegenseitig überschreiben: Hallo zusammen, ich arbeite gerade an einer Vereinfachung für Bestellungen. Ich habe es hingekriegt, dass Kontrollkästchen an zu wählen sind und dann bestimmte Informationen kopiert werden. Jetzt...
  6. VBA Makro, einzelne Zellen kopieren und in fortlaufende Zeile einfügen

    in Microsoft Excel Hilfe
    VBA Makro, einzelne Zellen kopieren und in fortlaufende Zeile einfügen: Hallo zusammen Verstehe die Makro Codes nicht gut, jedoch halfen bereits youtube Tutorials bei ein paar Problemen. Nun bräuchte ich aber eure Hilfe. Es geht um folgendes: Ich möchte ein Makro in...
  7. Zellen per Makro in Tabelle zum jeweiligen Datum kopieren

    in Microsoft Excel Hilfe
    Zellen per Makro in Tabelle zum jeweiligen Datum kopieren: Hallo ihr Excel-Profis, ich könnte eure Hilfe gebrauchen. Ich habe eine Berechnungstabelle, die verschiedene Zellen mit Ergebnissen ausgibt. Des Weiteren habe ich 12 Blätter für die jeweiligen...
  8. VBA Makro - Beim Drücken des "Tab" soll Zelle gefüllt werden

    in Microsoft Excel Hilfe
    VBA Makro - Beim Drücken des "Tab" soll Zelle gefüllt werden: Hallo liebe Experten :-) Leider stehe ich vor einem kleinen Problem welches ich nicht gelöst bekomme und hoffe nun das ihr mir weiter helfen könnt. Es soll per Excel-Makro folgendes...
Schlagworte:
  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