Zeile hinzufügen ohne den Code zu ändern

  • Excel

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von Haudruferzappeltnoch.

    Zeile hinzufügen ohne den Code zu ändern

    Neu

    Guten Tag,
    wegen meine neue Stelle ich arbeite seit 1 Monat mit Excel VBA. Davor habe ich meine IT Techniker absolviert aber wir hatten nie mit VBA und Excel was zu tun.
    Jetzt meine Frage, wir haben diesen Tool, wie aufm Bild, wir wollen extra Zeilen hinzufügen. bzw. ab Zeile 13 sollen alle 4-5 Zeilen nach unter geschoben werden und die neue kommen drauf.
    Ist das möglich ohne was großes im Code zu ändern. Also ich möchte NICHT in jede Modul reingehen (wir haben ca. 10 Modulen mit 200+ Zeilen Code + extra Formeln auf die Cells in Excel) und auf Cells(x, y) zu suchen und dann die Nummerierung manuell ändern weil das zu viel Zeit kostet, was wir momentan nicht haben.

    Danke im voraus!
    Harry
    Bilder
    • TPM TOOL.png

      60,26 kB, 897×609, 16 mal angesehen

    Neu

    Haudruferzappeltnoch schrieb:

    Eine Zeile hinzufügen in Excel geht mit: Rechtsklick auf den Zeilenkopf -> Zellen einfügen
    Meinst das?


    Nein :)
    Die Tabelle ist mit SAP verbunden und zieht die Daten direkt von dort. Jetzt kommen mehr Zeilen mit Informationen aus SAP, und ich brauche zwei leere Zeilen ab Zeile 13. Also möchte ich ab Zeile 13 alles um zwei Zeilen nach unten verschieben (das ist einfach, wie du schon gesagt hast). Allerdings sind die Zeilen mit Makros verknüpft, und im Code steht zum Beispiel Arbeitsplan.Cells(13, 1).Value = StrAnlegen. Ich möchte nicht manuell alle Zeilen ab Zeile 13 suchen und die Zeilennummern um +2 anpassen.

    Neu

    HarryNt schrieb:

    wir haben ca. 10 Modulen mit 200+ Zeilen Code + extra Formeln auf die Cells in Excel) und auf Cells(x, y) zu suchen und dann die Nummerierung manuell ändern weil das zu viel Zeit kostet, was wir momentan nicht haben.

    Doch nicht etwa für jedes Tabellenblatt den selben Code? Zeig uns mal den Code (in einer Beispieldatei). Dann können wir etwas sagen. Ganz ohne Codeänderung wird es nicht gehen.

    Neu

    Ja, das ist dann eher ein Problem des Codedesigns an sich. Wenn jede Zelle einzeln beschrieben wird, muss auch jede Zelle einzeln geändert werden.
    Inwiefern man das flexibler gestalten kann, schwer zu sagen, aber das erfordert dann natürlich auch ne große Code Umarbeitung.
    Möglicherweise kann man ja ein Programm schreiben, das automatisiert die Ersetzungen durchführt. Ob das Zeit spart ist aber auch fragwürdig. 10 * 200 Zeilen ist jetzt nicht so viel, dass ich da optimistisch wäre.

    Aber wenn du nur die Zahlen in Cells(x, y) ändern musst, dann versuch mal mit Notepad++ die Ersetzung durchzuführen, das müsste ziemlich zügig gehen. (Weiß nicht ob VBA auch son Luxus anbietet)

    Neu

    Ich weiß nicht, wie viel Code ich wegen des Datenschutzes vom Betrieb zeigen kann. Das Tool wurde vor Jahren von einem Kollegen entwickelt, der nicht mehr hier arbeitet, und es ist schwierig nachzuvollziehen, was er alles gemacht hat. Wie gesagt, es gibt 16 Module und 25 Worksheets mit SAP-Verbindung.
    Ich habe jetzt 2 neue Zeilen eingefügt "sehe Bild 1", aber im VBA-Code haben alle Zeilen unterhalb von Zeile 18 noch die alten Cells(x, y)-Adressen. Jetzt möchte ich, ohne großen Aufwand, dass alle Zeilen unter 18 in Cells oder Range um +2 angepasst werden.

    Nehmen wir das 3. Bild als Beispiel: Ich weiß, dass ich bei

    Quellcode

    1. ​Arbeitsplan.Cells(20, 4).Value = 29
    die Zeile auf

    Quellcode

    1. ​Arbeitsplan.Cells(22, 4).Value = 29
    ändern muss. Wie Automatisiere am einfachsten genau solche änderungen für alle Rows unter 18. ( und ob so ne große Änderung ohne manuelle eintragen möglich ist.)

    PS ich weiß auch das mit strg+f dann auf projekt suchen Cells(20,1) suchen kann und alles auf Cells(22,1) ersetzen kann, aber dann muss ich das zig mal machen für alle rows unter 18 mit cells und range.
    Bilder
    • 1.png

      2,23 MB, 1.587×1.109, 6 mal angesehen
    • 2.png

      71 kB, 900×585, 5 mal angesehen
    • 3.png

      12 kB, 290×234, 6 mal angesehen
    • 4.png

      13,59 kB, 1.965×30, 7 mal angesehen

    Neu

    Du kannst im Notepad++ sagen:
    SucheArbeitsplan.Cells(230, Ersetze Arbeitsplan.Cells(232, -> Alle Ersetzen (mit der größten Zeilenziffer anfangen wichtig! Und dann kleiner werden, sonst steht am Ende überall nur noch eine Zahl)
    Dann ist die Frage wie viele Zeilen du hast. In deinem Bild sieht man ~30, das wäre ja noch sehr moderat.