Office: VBA

Helfe beim Thema VBA in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo zusammen, ich versuche mich grade an einer VBA-Programmierung, die bewirken soll, dass unter jede Zeile, in der ein bestimmtes Wort steht... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von Andi793, 12. September 2018.

  1. VBA


    Hallo zusammen,
    ich versuche mich grade an einer VBA-Programmierung, die bewirken soll, dass unter jede Zeile, in der ein bestimmtes Wort steht (Filiale), fünf bestimmte, bereits in einem anderen Tabellenblatt bestehende Zeilen eingefügt werden.
    Diese Prüfung soll für alle Zeilen vorgenommen werden.

    Ich habe schon ewig gesucht, aber leider nichts passendes gefunden bzw. konnte das dann leider nicht anwenden auf meinen Fall. Bin leider VBA-Anfänger und versuche mich da grade reinzuarbeiten.


    Ausgangsbild:

    Spalte B Spalte C Spalte D Spalte E

    Filiale 25685 Ort1 Straße1
    Filiale 26568 Ort2 Straße2
    Filiale 26549 Ort3 Straße3
    Filiale 12565 Ort4 Straße4
    Filiale 12345 Ort5 Straße5


    Die bestehenden Zeilen sehen wie folgt aus:



    Zeile 1: Eingestellt:

    Zeile 2: Einstellung / Übergabe am:

    Zeile 3: Name des Nachfolgers:

    Zeile 4: Anschrift des Nachfolgers:


    Außer diesen Begriffen steht nichts in der Zeile. Die Begriffe stehen jeweils in Spalte B der jeweiligen Zeile. (evtl. geht's ja auch mit festem Zellenbezug?)


    Am Ende soll das Ganze wie folgt aussehen:


    Zeile 1: Filiale 12565 Ort4 Straße4

    Zeile 2: Eingestellt:

    Zeile 3: Einstellung / Übergabe am:

    Zeile 4: Name des Nachfolgers:

    Zeile 5:Anschrift des Nachfolgers:

    Zeile 6: -Leerzeile-

    Zeile 7: Filiale 12565 Ort4 Straße4

    Zeile 8: Eingestellt:

    Zeile 9: Einstellung / Übergabe am:

    Zeile 10: Name des Nachfolgers:

    Zeile 11: Anschrift des Nachfolgers:

    Zeile 12: -Leerzeile-

    usw.

    Hatte es erst mit aufgezeichneten Makro für 4 Fälle gemacht, aber die Ursprungs-Liste kann bis zu 50 Zeilen lang werden... Das war dann doch zu umständlich.

    Hat hier jemand einen Tipp, wie das funktionieren kann? *Smilie

    Hoffe die Beschreibung ist ausführlich genug.

    Danke schonmal.
    LG

    :)
     
  2. Na klar. Mein Tipp ist, dass du eine Beispielmappe hochlädst. Denn 1. will das niemand nachbauen und 2. sind wir alle auf deinen bestehenden Code gespannt.
     
    MisterBurns, 13. September 2018
    #2
  3. Hier mal mein Versuch.

    Ich hoffe da steigt man durch *frown.gif*

    Also unter dem Tabellenblatt "neuertest" habe ich hinterlegt, dass man mit dem Button "Leerzeile einfügen", die notwendigen Leerzeilen bekommt, sofern in der vorherigen Zeile "Filiale" steht.

    Soweit so gut,, nun müssten nur noch die entsprechenden Inhalte in diese eingefügten Zeilen...

    Oder kann man hinterlegen, dass immer wenn in einer Zeile das Wort "Filiale" steht, dann die Zeilen 4-10 aus dem Tabellenblatt "neuerTest" eingefügt werden


    Der Versuch mit den ersten 5 habe ich auf dem Tabellenblatt "Druckversion" bereits erfolgreich hinbekommen. Und dann habe ich nochmal von vorne angefangen für "unendlich viele" Filialen


    Dankeeeee *Smilie
     
  4. VBA

    Hallo Andi,

    wenn ich es richtig verstanden habe, dann so:

    Code:
    Durch das Einfügen der Leerzeilen ist das halt eine recht langsame Lösung.
     
    MisterBurns, 14. September 2018
    #4
  5. Wow, perfekt! *Smilie

    Vielen Vielen Dank!. Funkioniert 1A


    Eine kleine Ergänzung hätte ich jedoch noch, falls es dir nicht zu viel wird...

    Kann man zwischen die einen Zeilen, die eingefügt werden, jeweils noch eine Leerzeile packen, damit es übersichtlicher ist?

    Dann wäre ich wunschlos glücklich *Smilie

    Danke!
     
  6. Code:
     
    MisterBurns, 14. September 2018
    #6
  7. Jetzt ist es perfekt, Vielen Dank!!! *Smilie
     
  8. VBA

    Ich hätte doch noch eine Frage. Wie kann ich den Code verändern, sodass z.b. nur in den ersten 250 Zeilen das ganze läuft? Je nach Menge der Filialen dauert das echt ganz schön lange *frown.gif*
     
  9. Naja, das geht grundsätzlich so, dass du die Zeile
    Code:
    durch
    Code:
    ersetzt.
    266 deshalb, weil du erst bei Zeile 16 beginnst (also 250 + 16 ist 266).

    Aber sinnvoll ist das in meinen Augen nicht. Eine Geschwindigkeitsverbesserung könnte vermutlich dieser Code bringen, der fügt nicht fünf mal eine Zeile sondern fünf Zeilen auf einmal ein.
    Code:
    Und falls das immer noch zu langsam sein sollte, wäre meine Idee, ein Hilfstabellenblatt zu verwenden. D.h. immer erst die Zeile "Filiale" in das neue Tabellenblatt kopieren, dann die anderen vier Zeilen, dann wieder die nächste Filiale usw.
    Kopieren sollte schneller sein als Zeilen einfügen.
     
    MisterBurns, 14. September 2018
    #9
  10. Super danke, das teste ich direkt morgen mal *Smilie

    Danke für das schnelle Antworten!
     
  11. sooo ich habe das mal getestet und noch etwas modifiziert, weil ich noch mehr Zellen einfügen wollte, funktioniert soweit sehr gut.

    Aber... Ist es evtl. möglich eine Abfrage einzubauen, dass nur hinzugefügt wird, wenn in Spalte B das Wort "Betriebsstätte" steht? Also sobald dies da nicht mehr steht, soll er mit der Einfügen Schleife auch schon vor dem angegebenen Maximum von 250 Zeilen aufhören.

    Geht so was?

    Das ist mein aktuelles Makro:

    Sub Abfrageneinfügen()
    '
    ' Abfrageneinfügen Makro
    '
    Dim i As Long
    Dim j As Long
    Dim ws As Worksheet

    Application.ScreenUpdating = False
    Set ws = Sheets("Druckausgabe")

    With ws
    For i = 263 To 13 Step -1
    For j = 1 To 10
    .Rows(i + 1).Insert (xlShiftDown)
    Next j
    .Rows(i + 1 & ":" & i + 5).Insert (xlShiftDown)
    .Range("J2:M12").Copy .Range("B" & i + 2)

    Next i
    End With

    Application.ScreenUpdating = True
    '
    End Sub



    Geschwindigkeitsmäßig dauert es nur etwas, wenn alles eingefügt ist. Da es aber in den meisten Fällen weit weniger Zeilen sein werden ca 50) wäre so eine automatische Erkennung, wann er aufhören soll, gut *Smilie
     
  12. okay habe es selbst gelöst *Smilie


    Trotzdem dankeee für alles!
     
  13. VBA

    Also irgendwie hast du jetzt die Codes miteinander vermischt...

    Code:
    Du sagst nun "Füge mir 10 mal hintereinander eine Leerzeile ein. Danach fügst du auf einmal 5 Leerzeilen ein".
    Wieso nicht einfach
    Code:
    ???
    Das würde auch erklären, wieso die Geschwindigkeit nach wie vor bescheiden ist.

    Zu deiner Frage:
    Code:
    Ich rate dir, die Einrückungen im Code zu lassen wie angegeben, das erleichtert das Lesen.
    Verwende bitte außerdem Codetags wenn du hier Code postest, das macht das Lesen ebenso einfacher.
     
    MisterBurns, 16. September 2018
    #13
Thema:

VBA

Die Seite wird geladen...
  1. VBA - Similar Threads - VBA

  2. VBA in einer Zeile zu lang

    in Microsoft Excel Hilfe
    VBA in einer Zeile zu lang: Moin, mein VBA Code ist für eine Zeile zu lang. Kann mir einer helfen wie ich den auf 2 Zeilen aufteilen Kann? arrSchuhDaten = Array(Range("A6"), Range("F6"), Range("J6"), Range("A7"),...
  3. Listbox wird nicht breiter, Schriftgrösse ändert sich

    in Microsoft Excel Hilfe
    Listbox wird nicht breiter, Schriftgrösse ändert sich: Hallo, ich habe ein Formular dessen Breite ich mit der Maus ändern kann. Im Formular habe ich einen Rahmen und darin eine Listbox deren Breite an die Formularbreite angepasst wird....
  4. Kontrollkästchen aktivieren ohne VBA - wenn KK1 angekreuzt dann KK2 auch

    in Microsoft Excel Hilfe
    Kontrollkästchen aktivieren ohne VBA - wenn KK1 angekreuzt dann KK2 auch: Hallo zusammen, erstmal danke für all die Tipps und Kniffe, die ich ohne eigenen Thread gefunden und gelernt habe. Leider finde ich mein Thema nirgendwo... Aktuell habe ich zwei Spalten mit...
  5. Per Hyperlink ausgeblendetes Blatt einblenden

    in Microsoft Excel Hilfe
    Per Hyperlink ausgeblendetes Blatt einblenden: Hola ins Forum, ich bräuchte mal wieder eure Hilfe. Ich habe ein Tabellenblatt das mir als Register dient und wo Hyperlinks eingefügt sind um auf das dazugehörige Blatt zu springen. Diese Blätter...
  6. Bilder über VBA Größe und DPI ändern für Webshop

    in Microsoft Excel Hilfe
    Bilder über VBA Größe und DPI ändern für Webshop: Hallo Excel Spezialisten, Ich habe mir eine recht aufwendige Tabelle gebastelt, aus der ich Daten für meinen Webshop generiere und in einer .csv bereitstelle. Es werden neue Preislisten...
  7. VBA: Platzhalter ersetzen und evtl. leere Zeile einfügen

    in Microsoft Word Hilfe
    VBA: Platzhalter ersetzen und evtl. leere Zeile einfügen: Hallo zusammen, ich habe eine Word-Vorlage mit Platzhaltern, in die ich mit VBA Daten aus einer Excel-Datei einfüge (in eine Excel-Zeile schreibe ich alle Daten für ein neues Word-Dokument). So...
  8. Erstellung eines Dynamischen Kalenders (ggf. VBA)

    in Microsoft Word Hilfe
    Erstellung eines Dynamischen Kalenders (ggf. VBA): Guten Morgen an Alle, ich hoffe, es geht euch soweit gut :) Ich wende mich heute an euch, weil ich gerade vollkommen verzweifle und irgendwie so ganz und garnicht weiterkomme und irgendwie...
  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