Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Zeilen in Arbeitsblatt autom. auffüllen, damit eine durch 12 teilbare Anzahl entsteht
#1
Hallo, ich bin neu hier im Forum und ein absoluter Excel-Anfänger und hoffe auf Hilfe!!!

Wir sind eine Druckerei und haben eine Datei bekommen mit 149 Registern, in denen unterschiedlich viele Zeilen pro Register sind.
Ich bräuchte jetzt in jedem Register eine Zeilenanzahl, die durch 12 teilbar ist. Das heisst, es müssten automatisch Zeilen mit Inhalt "X" hinzugefügt werden, bis sich ein vielfaches von 12 ergibt.

Ist das irgendwie umsetzbar!?


Vielen Dank für Antworten und eure Hilfe....

Marco
Antworten Top
#2
Moin Marco!
So ganz verstanden habe ich das noch nicht.
Deshalb Nachfrage:
Eine Tabelle endet in Zeile 1234
Du möchtest jetzt die Tabelle über die gesamte Breite bis Zeile 1236 mit x auffüllen?

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#3
Hi Ralf,

ganz genau!!! 
Allerdings braucht nicht die ganze Breite mit "X" aufgefüllt werden, es reicht die erste Spalte.
Muss auch nicht "X" sein, kann irgendwas sein.


Viel Grüße

Marco
Antworten Top
#4
Kann es auch ein Makro sein?
Ansonsten wird es bei 149 Tabellen eine Tagesbeschäftigung.
Das Makro braucht ja nur einmal laufen und kann dann gelöscht werden.
(besser wäre es in der PERSONAL.xlsb aufgehoben, denn es werden ja häufiger Aufträge kommen)
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#5
Weil mich die Sache interessiert hat …
Du solltest etwas von Ganzzahldivision (Operator \) und Modulo (Operator Mod) gehört haben, um das Makro zu verstehen:

Modul Modul1
Option Explicit 
 
Sub RPP() 
Dim ws As Worksheet, Letzte&, Allerletzte& 
For Each ws In ActiveWorkbook.Worksheets 
   With ws 
      Letzte = .Cells(.Rows.Count, 1).End(xlUp).Row 
      If Letzte Mod 12 > 0 Then 
         Allerletzte = (Letzte \ 12 + 1) * 12 
         .Range(.Cells(Letzte + 1, 1), .Cells(Allerletzte, 1)) = "#" 
      End If 
   End With 
Next 
End Sub 

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#6
Hi Ralf,

klar kann es auch ein Makro sein.
Das funktioniert schon fast perfekt!!!!!

Kann man da noch was einbauen, damit zuerst auf jedem Register die erste Zeile gelöscht wird!? Da stehen nämlich die Spaltennamen drin, die müssten raus.
Ansonsten ist es perfekt!!!!!


Gruß

Marco
Antworten Top
#7
Ist nur eine Zeile Code mehr (achte auf den grünen Kommentar)
Gern geschehen ;)

Modul Modul1
Option Explicit 
 
Sub RPP() 
Dim ws As Worksheet, Letzte&, Allerletzte& 
For Each ws In ActiveWorkbook.Worksheets 
   With ws 
      .Cells(1).EntireRow.Delete 'jeweils erste Zeile löschen 
      Letzte = .Cells(.Rows.Count, 1).End(xlUp).Row 
      If Letzte Mod 12 > 0 Then 
         Allerletzte = (Letzte \ 12 + 1) * 12 
         .Range(.Cells(Letzte + 1, 1), .Cells(Allerletzte, 1)) = "#" 
      End If 
   End With 
Next 
End Sub 

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
[-] Folgende(r) 1 Nutzer sagt Danke an RPP63 für diesen Beitrag:
  • Druckmanufaktur Eitel
Antworten Top
#8
Hi Ralf,

super, das ist jetzt genau so, wie ich es brauche!!!!

Vielen, vielen Dank dafür!!!


Gruß, Marco
Antworten Top
#9
Hallo Ralf,

ich hätte noch eine klitzekleine Bitte!!

Könntest du das Script noch so abändern, dass anstelle des "X" der Arbeitsblatt-Name in der Zeile steht!?!

Das wäre wunderbar!!!!


Vielen Dank schon mal.....

Marco
Antworten Top
#10
Moin!
  1. Bei mir stand kein X, sondern # ;)
  2. Im gesamten Bereich, also max. 11mal? dann statt = "#" = .Name
  3. Nur in der allerletzten Zeile? Dann statt
    .Range(.Cells(Letzte + 1, 1), .Cells(Allerletzte, 1)) = "#" .Cells(Allerletzte, 1) = .Name

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste