ich habe auf Arbeit eine sehr große Tabelle zu bearbeiten. Diese führt in Spalte A Auftragsnummern. Da aber zu jedem Auftrag mehrere Zeilen gehören, soll ich jedes Mal zwischen Auftrag und Auftrag eine Leerzeile einfügen. Händisch gehts ja ganz einfach mit markieren und einfügen. ABER gibt es evtl. auch eine Funktion die erkennt, wann eine Zeile eingefügt werden muss, sodass ich diese dann ausführen kann?
Im Anhang eine Beispieldatei. "Ist" wie beschrieben und "soll" wie es hinterher aussehen müsste.
Vielen Dank für Eure Hilfe und beste Grüße, Bastian
Mit VBA ist es (leicht) möglich Leerzeilen einzufügen, aber es ist besser sich über einen anderen Ansatz Gedanken zu machen. Leerzeilen erschweren die Auswertung in vielen Fällen.
Wenn man verschieden Aufträge optisch trennen möchte, kann man mit Farben bzw Rahmen arbeiten.
Moin, ich schließe mich Fennek voll und ganz an. Leerzeilen habe in einer Liste/Tabelle nichts zu suchen und erschweren jegliche Auswertung. Und wenn es denn kein Rahmen werden soll, dann kannst du auch jeden ersten neuen Block mit der doppelten Zeilenhöhe beginnen. Da hast du auch den Abstands-Effekt und das geht auch gut mit VBA zu realisieren. Rahmen finde ich aber dennoch die bessere Lösung...
Beste Grüße Günther
Excel-ist-sexy.de …schau doch mal rein! Der Sicherheit meiner Daten wegen lade ich keine *.xlsm bzw. *.xlsb- Files mehr herunter! -> So geht's ohne!
03.09.2017, 14:07 (Dieser Beitrag wurde zuletzt bearbeitet: 03.09.2017, 14:07 von Peter.)
Hallo,
du hast die Postings der Kollegen gelesen, ich unterstütze diese Aussagen auch, aber wenn du trotzdem mit Leerzeilen arbeiten willst dann könnte dir evtl. dieser Code weiterhelfen:
Code:
Public Sub Leere_Zeile_bei_Wechsel() 'http://www.office-loesung.de/fpost711669.php#711669 Dim lngRow As Long Application.ScreenUpdating = False For lngRow = Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1 If Cells(lngRow, 1).Value <> Cells(lngRow - 1, 1).Value And _ Not IsEmpty(Cells(lngRow, 1)) And Not IsEmpty(Cells(lngRow - 1, 1)) Then _ Rows(lngRow).Insert Shift:=xlShiftDown Next Application.ScreenUpdating = True End Sub
vielen Dank für die vielen Antworten. Nun, es kommt nicht von mir, es ist leider eine Vorgabe und ich habe die Leerzeilen einzufügen. Und da mir das halt zu mühselig ist, dies jedes Mal mit markieren/ einfügen zu machen, hab ich hier mal nach gefragt.
der Link ist lediglich eine Quellenangabe (der Code stammt nicht von mir).
Der Code muss in ein allgemeines Modul der Datei:
- Öffne mit Alt+F11 den VBA-Editor - mit Strg+R den Projekt-Explorer öffnen und aktivieren - die gewünschte Datei per Doppelklick markieren - Tastenkombination Alt+E und dann M drücken - in der rechten Fensterhälfte ist jetzt ein leeres Modul eingefügt worden - in dieses Modul muss der Code eingefügt werden - im Projektexplorer wird das Modul unter der Datei angezeigt - speichen und den VBA-Editor mit Alt+F4 schliessen - das Makro steht dir jetzt in dieser Datei zur Verfügung und kann mit Alt-F8 aufgerufen werden
(03.09.2017, 12:58)ExcelSpaß schrieb: Diese führt in Spalte A Auftragsnummern. Da aber zu jedem Auftrag mehrere Zeilen gehören, soll ich jedes Mal zwischen Auftrag und Auftrag eine Leerzeile einfügen. Händisch gehts ja ganz einfach mit markieren und einfügen.
Hallo Bastian Dass Leerzeilen in einer Datenbank (und um eine solche handelt es sich bei Deiner Liste) Unfug sind, wurde bereits erwähnt. Dass Aufträge sich über mehrere Zeilen erstrecken, ist Unfug^2. Diese Aussage darfst Du ohne weiteres Deinem Chef machen, der offenbar nichts von Datenverarbeitung und Digitalisierung der Arbeit / der Arbeitsabläufe versteht. Es ist schade um unsere Zeit, in so ein Projekt Zeit zu investieren. Gruss
erst nochmal vielen Dank für die vielen Antworten. Auch wenn die Aktion unsinnig erscheint, mir hat sie sehr geholfen und ich habe dadurch diese Woche sehr viel Zeit gespart. Es ist einfach klasse, das es euch hier gibt!
Jetzt nur noch eine Frage, welchen Parameter müsste ich verändern um das Ganze nicht in Spalte A sondern in z.B. Spalte C stattfinden zu lassen?
Vielen Dank für eure Mühe und einen schönen Tag noch...