Einfügen von Zeilen in ein vorhandenes Format

Bild

Betrifft: Einfügen von Zeilen in ein vorhandenes Format
von: Alex
Geschrieben am: 12.10.2015 10:24:26

Hallo,
Ich habe folgendes Problem:
Ich möchte eine Beschreibung erstellen für die ich immer die selbe Vorlage verwende:
Verknüpfungen:
abschaltende Störungen:
Funktionen: FN
SW |FB
Leer
eventuell wird es mit einem Bild etwas klarer
Userbild
Nun möchte ich ohne das Format zu zerstören unter dem Punkt Funktionen wie skizziert die 3 Variablen Funktionsname, SW und FB schreiben.
Die einzelnen Anlagen haben auch unterschiedlich viele Funktionen.
Problem: Ich weiß nicht genau in welcher Zeile ich weitere Zeilen einfügen muss, da die Anzahl an Störungen und anderen Punkten variiert.
Und ich bin mir auch nicht sicher mit welchem Befehl ich eine Zeile an Stelle x einfüge. Mit dem aufzeichnen bin ich leider nicht weitergekommen.
Von der Logik müsste ich mMn sowas haben wie:
Suche die Spalte x, A in der Funktionen steht.
Füge 3 Zeilen ein.
Schreibe die Variablen in diese Zeilen.
Wiederhole solange du Funktionen findest.
Über jegliche Hilfe würde ich mich sehr freuen.
mfg Alex
PS: falls noch weitere Informationen benötigt werden kann ich die gerne noch nachliefern

Bild

Betrifft: AW: Einfügen von Zeilen in ein vorhandenes Format
von: Michael
Geschrieben am: 12.10.2015 18:53:43
Hi Alex,
so etwas läßt sich mit einer (anonymisierten) Beispieldatei (ohne externe Verknüpfungen) schöner bearbeiten - lade uns bitte eine hoch.
Deinen Algo würde ich ändern, so daß immer 3 Zeilen da sind, damit man bei Bedarf "zwischendrin" einfügen kann - wo soll sonst das Format herkommen?
Und: ich hoffe, A23:A29 ist keine verbundene Zelle.
Jedenfalls:
Zähle, wieviele Fkt. zur Verfügung stehen und schreibe in Variable [anzahl]
füge [anzahl] mal 3 - 3 Zeilen ab Zeile "Funktionen" +1 ein
und schreibe die Variablen
So werden die Zeilen in einem Rutsch eingefügt, das ist schneller. Und wenn es sich um "viele" Daten handelt, kann es sich rentieren, sie zunächst in einem Array zu "sammeln" und dieses dann "in einem Rutsch" zu schreiben.
Schöne Grüße,
Michael

Bild

Betrifft: AW: Einfügen von Zeilen in ein vorhandenes Format
von: Alex
Geschrieben am: 13.10.2015 09:37:29
Hallo Michael,
https://www.herber.de/bbs/user/100737.xlsx
Ich hoffe das ist so brauchbar und anonymisiert.
A23:29 ist nicht verbunden.
Ich bin mir gerade nicht ganz sicher, ob ich vorher so leicht bestimmen kann wieviele Funktionen kommen. Ich durchsuche momentan mit einer While Schleife eine Datenbank und suche dann für IDs die dazugehören Beschreibungen (Text) - schreibe diese in die Datei und benutze dann die Variablen neu.
Ich auch nicht genau wie ich den Inhalt eines Arrays mit Abstand in die Tabelle eintragen kann. SW müsste ja in Zelle B:16, B19, B22 etc.
Ich könnte natürlich vorher die selbe Whileschleife durchlaufen um die Anzahl zu bestimmen, aber ob das dann noch schneller ist als die Zeilen einzeln zu schreiben. Dazu muss man sagen, dass es meist auf 5-10 Funktionen hinausläuft.
Ich will nicht ausschließen, dass es einen guten Weg gibt deine Idee umzusetzen, aber ich bin noch ganz am Anfang von VBA und kenne die meisten Befehle leider nicht.
Dazu noch: gibt es einen Befehl mit dem ich die Zeile "Funktionen" finden kann? oder muss ich das über eine if abfrage machen?
Also:

For iCount1 = 15 To Worksheets(1).UsedRange.Rows.count 
  If Tabelle1.Cells(iCount1, 1).Value = Funktion then
     iCount1 = iFunktionszeile
  end if
Next
vielen Dank für jegliche Hilfe :)
Alex


Bild

Betrifft: AW: Einfügen von Zeilen in ein vorhandenes Format
von: Michael
Geschrieben am: 13.10.2015 18:18:47
Hallo Alex,
Deine Tabelle enthält einige Gemeinheiten:
a) die Zellen für die "Funktionen" sind unterschiedlich formatiert ("Zeilenumbrüche ja/nein") und teilweise verbunden. Ich habe das Tabellenblatt "Formular" genannt und eine Kopie angelegt, die "richtig" formatiert ist.
Mit dem Button "Formular reset" wird das (ausgefüllte) Formular durch die (leere) Kopie ersetzt.
b) ich weiß natürlich nicht, mit welchem Code Du Deine Daten abfragst.
In einem weitern Blatt "Daten" habe ich einige Spieldaten abgelegt, die in der While-Schleife eingelesen werden. Im Kern werden je 3 bestimmte Zellen des Arrays mit Daten bestückt; die rechte Seite der Zuweisung mußt Du halt durch die Variablen Deiner DB ersetzen.
Oder Du läßt es, wie es ist, und schreibst zuallererst alle vorhandenen Daten zeilenweise aus der DB in das Blatt "Daten" und kopierst sie nur mit dem Makro ins Formular.
Die Datei: https://www.herber.de/bbs/user/100752.xlsm
Schöne Grüße,
Michael

Bild

Betrifft: AW: Einfügen von Zeilen in ein vorhandenes Format
von: Alex
Geschrieben am: 14.10.2015 09:44:34
Vielen Dank für deine Arbeit! :)
Ich konnte mich noch nicht ganz durch den Code arbeiten und weiß nicht genau ob ich es diese Woche noch schaffe. Aber ich wollte dich nicht in der Luft hängen lassen ;)
Einen Teil konnte ich schon umsetzen. Die Resetfunktion ist auch super! Vorher hatte ich das so gelöst:

ActiveWorkbook.Sheets(1).Cells.Clear 'Resettet Tabelle1
Sheets("Tabelle3").Select 'Fügt die Vorlage aus Tabelle 3 ein
Range("A1:D25").Select
Selection.Copy
Sheets("Tabelle1").Select
Range("A1").Select
ActiveSheet.Paste
Wahnsinn wie umständlich man Sachen machen kann.
Grüße
Alex

Bild

Betrifft: Danke für die Nachricht,
von: Michael
Geschrieben am: 14.10.2015 20:25:34
Alex,
und viel Spaß beim Exceln.
Tjaja, learning by doing...
Schöne Grüße,
Michael

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Einfügen von Zeilen in ein vorhandenes Format"