Office: In Excel per VBA Range durchsuchen, Zellinhalt in anderes Tabellenblatt übertragen

Helfe beim Thema In Excel per VBA Range durchsuchen, Zellinhalt in anderes Tabellenblatt übertragen in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Moin alle zusammen, habe ein großes Problem. Ich muss zurzeit eine sehr große Datenbank mit VBA aufbauen, allerdings habe ich bisher noch nicht allzu... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von Ullitheheck, 6. August 2013.

  1. In Excel per VBA Range durchsuchen, Zellinhalt in anderes Tabellenblatt übertragen


    Moin alle zusammen,

    habe ein großes Problem. Ich muss zurzeit eine sehr große Datenbank mit VBA aufbauen, allerdings habe ich bisher noch nicht allzu viel Kenntnis davon.
    Vielleicht kann mir hier jemand helfen. Ich wäre für jede Hilfe extrem dankbar.

    Das Problem stellt sich wie folgt dar: ich habe eine riesige Quelltabelle/Tabellenblatt mit ca. 20000 Zeilen und ca. 60 Spalten.
    Die ersten 6 Spalten, die gewissse allgemeine Informationen enthalten (Namen, Codes, Nummern, etc.) und zusätzliche 52 Spalten (Die Wochen des Jahres). Die Zellen dieser 52 Spalten sind teilweise leer und verfügen teilweise über Einträge.

    Ziel ist es, den Wochenbereich (52 x 20000 Zellen) mit einem Makro schrittweise durchsuchen zu lassen (bei G4 beginnend spaltenweise bis BF4, dann weiter in der nächsten Zeile ab G5 bis BF5 usw.), bis alle Zeilen durchlaufen sind. Es muss also über 1 Mio. Zellen durchlaufen.

    Dieses Makro soll jedesmal, wenn es in einer Zelle einen Eintrag findet (heisst: Zelle ist nicht leer) den Inhalt der Zelle in eine andere Zieltabelle/Tabellenblatt schreiben. Dabei soll es den ersten Zellinhalt in die Zelle G2 des anderen Tabellenblattes schreiben, zusätzlich soll der Inhalt der zugehörigen ersten 6 Spalten der Quelltabelle in die Zellen A2-F2 der Zieltabelle geschrieben werden. Sobald das Makro auf die nächste "nicht leere Zelle" trifft soll es also in der Zieltabelle in die nächste Zeile wechseln und den Zellinhalt diesmal in G3 schreiben und wieder die Einträge in den ersten 6 Spalten der Quelltabelle in die Zellen A3-F3 der Zieltabelle kopieren.

    Vielleicht kann mir jemand helfen, weil ich komm damit derzeit überhaupt nicht klar, vorallem das bedingte Kopieren der Inhalte der ersten 6 Spalten der Quelltabelle machen mir enorme Sorgen.

    :)
     
    Ullitheheck, 6. August 2013
    #1
  2. Moin,

    nicht schnell, aber ein Anfang *wink.gif* Tabellennamen ggf. anpassen.
    Code:
     
    mücke, 8. August 2013
    #2
  3. ...leg einen Filter drüber, das geht wesentlich schneller....
    Allerdings sehe ich dennoch einen Haken. Vermutlich sind ja nicht alle Spalten einer Zeile leer, sondern nur ab und an fehlt ein Eintrag. Das bedeutet, dass Dir entweder nach dem Filtern (über alle Spalten mit leeren Inhalten) ein paar Zeilen fehlen oder Du, nach Ablauf eines Makros, wie Du es willst, trotzdem den gleichen Datenwust vorfindest wie im Original. Also, außer viel Aufwand sehe ich da keinen großen Nutzen. Nimm statt Excel lieber gleich eine richtige Datenbank. Da kannst Du dann entsprechende Abfragen generieren...
     
  4. In Excel per VBA Range durchsuchen, Zellinhalt in anderes Tabellenblatt übertragen

    Herzlichen Dank, werd das jetzt mal austesten. *Smilie
    Wünsche noch einen wunderschönen Tag.
     
    Ullitheheck, 8. August 2013
    #4
  5. Danke nochmal für deine Hilfe.
    Das Makro tut auf jeden Fall, was es soll, nur dauert ein Durchlauf extrem lange (ca. 40 Minuten). Mein Kollege meint, dass es nicht sein kann, dass das durchlaufen von 1 Millionen Zeilen so lange dauert, da ich an einem sehr neuen Rechner arbeite (8 Prozessorkerne, 8 GB Ram, etc.).

    Hat irgendjemand eventuell ne Ahnung, wie man das Makro beschleunigen kann? entweder durch Einstellungen in den Exceloptionen, oder durch die Anwendung von anderen "Bausteinen"? Hab schon die Autofehlerkorrektur in den Exceloptionen ausgeschaltet, hat aber auch nix gebracht.

    Vielleicht hat ja noch jemand ne Idee dazu, wäre echt klasse.

    PS: R J von was für einem Filter hast du gesprochen, den man über die Daten legen soll?
     
    Ullitheheck, 8. August 2013
    #5
  6. Hallo,

    keine Ahnung, ob ich die Aufgabenstellung richtig entwirrt habe, aber probier mal folgenden Code:
    Code:
    Ich habe angenommen, dass sowohl Werte als auch Formeln im Bereich der "Wochen" stehen. Wenn Du das einschränken könntest, könnte der Code schlanker werden.

    Laufen viele Berechnugen / andere Codes (Ereignisprozeduren) in der Mappe? Dann könnte es beschleunigend wirken, diese vorher zu deaktivieren.
    Nutze dafür z. B. Sepps "Tranquilizer":
    http://www.ms-office-forum.net/forum...5&postcount=11

    Grüße
    EarlFred
     
    EarlFred, 8. August 2013
    #6
  7. Es handelt sich lediglich um Werte, also gar keine Formeln, die auf das andere Datenblatt übertragen werden müssen. Danke schonmal für den neuen Code.
     
    Ullitheheck, 8. August 2013
    #7
  8. In Excel per VBA Range durchsuchen, Zellinhalt in anderes Tabellenblatt übertragen

    Hallo,

    dann kürzer:
    Code:
    Grüße
    EarlFred
     
    EarlFred, 8. August 2013
    #8
  9. Herzlichen Dank, scheint schon um einiges schneller zu gehen.

    Wenn das Makro es jetzt noch schafft, nachdem ein Wert aus der Quelltabelle in die Zieltabelle kopiert wird, in der Zieltabelle eine Zeile nach unten "zu gehen" (Zeilenumbruch) dann wär das der letzte Schliff *Smilie .

    Herzlichen Dank nochmal, echt super die Community hier.
     
    Ullitheheck, 8. August 2013
    #9
  10. Hallo,

    achso, Ausgabe zeilenweise. Ist aber auch verworren beschrieben (eine Mustermappe macht vieles leichter - nicht nur für Dich die Beschreibung, sondern auch für uns Helfer das Verstehen und Testen).
    Code:
    Grüße
    EarlFred
     
    EarlFred, 9. August 2013
    #10
  11. Du bist der Beste. Daumen hoch.
     
    Ullitheheck, 9. August 2013
    #11
  12. Moin EarlFred,
    da kann ich mich nur anschließen *Smilie
    Habe heute wieder was dazu gelernt … Danke!

    Schönes Wochenende an alle *mrcool
     
Thema:

In Excel per VBA Range durchsuchen, Zellinhalt in anderes Tabellenblatt übertragen

Die Seite wird geladen...
  1. In Excel per VBA Range durchsuchen, Zellinhalt in anderes Tabellenblatt übertragen - Similar Threads - Excel VBA Range

  2. VBA: Spalten auf anderen Worksheeds in der Mappe ausblenden.

    in Microsoft Excel Hilfe
    VBA: Spalten auf anderen Worksheeds in der Mappe ausblenden.: Hallo zusammen, Eine Tabelle mit 9 Worksheets, Datenblatt, Studien, Studie_1 ...Studie_7. Auf dem Deckblatt werden in Zelle B4-B10 die Namen der Studien eingetragen. Davon abhängig ob ein Name...
  3. Excel VBA Spalten mit Ordnerinhalt vergleichen

    in Microsoft Excel Hilfe
    Excel VBA Spalten mit Ordnerinhalt vergleichen: Hallo, Bin ehr Excel VBA Neuling, Würde aber gerne in einer bestehender Tabelle die Auflistung der Ordner mit dem eigentlichen Stand in den besagten Ordner kontrollieren. Also in der Spalte Q10...
  4. Array aus Excel Tabelle einlesen Word VBA

    in Microsoft Excel Hilfe
    Array aus Excel Tabelle einlesen Word VBA: Hallo, ich benötige in einer Word Datei die Werte einer Excel Datei. Ich würde gerne eine Spalte als Array einlesen. Wie das Array ein lesen in Excel geht weiß ich, aber wie schaffe ich den...
  5. excel vba range variable

    in Microsoft Excel Hilfe
    excel vba range variable: hallo, ich suche mit der find Methode nach unterschiedlichen Textstellen, die an verschieden Variablen übergeben werden. Sub suchentest() Dim stelle1 As Range Dim stelle2 As Range Dim text1 As...
  6. VBA Excel-Sheet-Range in pdf-Datei speichern und als Anhang mit outlook versenden

    in Microsoft Excel Hilfe
    VBA Excel-Sheet-Range in pdf-Datei speichern und als Anhang mit outlook versenden: Hallo, versuche mich unter Office 2013 verzweifelt :confused:in VBA mit folgendem Code: Sub RANGE_als_PDF_Datei_per_Outlook_versenden() 'folgendes Makro konvertiert einen bestimmten Range...
  7. Excel 2010 - Klick auf Zelle öffnet UserForm

    in Microsoft Excel Hilfe
    Excel 2010 - Klick auf Zelle öffnet UserForm: Hallo Ihr Lieben, Habe folgenden Sub: Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Column = 9 And Target.Row >= 6 And Target.Row <= 183 Then UserForm1.Show End Sub...
  8. Excel- VBA Range oder Cells?

    in Microsoft Excel Hilfe
    Excel- VBA Range oder Cells?: Hallo, ich möchte aus zwei Zeilen, jeweils Datum, in einer dritten Zeile den Unterschied in Tagen ausrechnen. Soll ich Cells oder eher Range benutzen? Und wie genau stelle ich das an, wenn ich...
  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