Anzeige

Am Puls von Microsoft

Anzeige

[gelöst] Excel 2010 - Zeilenhöhe für alle Tabellenblätter benutzerdefiniert (jede zweite Zeile) einstellen

bloxx

treuer Stammgast
Hallo Freunde,

vielleicht eine ziemlich einfache Sache, aber ich bekomme es einfach nicht hin.....
Ich habe eine Excel-Datei mit 15000 Textzeilen bekommen.
Die Zeilenhöhe bei allen Zeilen ist 22 Pixel. Ich möchte aber gern, dass die Höhe in jeder zweiten Zeile anstatt 22 nur 18 Pixel beträgt.
Wie kann ich das hinkriegen?
Das Problem bei der Sache ist außerdem noch, das viele der Zeilen irgendwo in deren Mitte mit der Zeile da drüber oder drunter miteinander verbunden sind und ich sie dadurch
nicht voneinander trennen, bzw. sie auch nicht sortieren kann, auch nicht mit dem Hilfsspalten-Trick.
Das heißt sie müssen zusammen bleiben.
Meine Idee war, jede zweite Zeile erstmal zu markieren und dann bei den markierten die Höhe auf 18 über die "Format"-Funktion zu ändern, aber auch da weiß ich nicht wie ich jede zweite Zeile markiert bekommen kann.
Ich würde mich freuen, wenn ich eure Hilfe in Anspruch nehmen darf.

Viele Grüße an alle
 
Zuletzt bearbeitet:
Anzeige
Das geht am einfachsten mit einem Makro (ist auf meinem PC nach 14 Sekunden mit der Aufgabe fertig :)):

Code:
Sub Zeilenhoehe()

  Dim KleineZeile, GrosseZeile, AnzahlZeilen, Zeile As Integer
  KleineZeile = 18
  GrosseZeile = 22
  AnzahlZeilen = 15000
 
  Rows(1 & ":" & AnzahlZeilen).Select
  Selection.RowHeight = GrosseZeile
  For Zeile = 2 To AnzahlZeilen Step 2
    Rows(Zeile & ":" & Zeile).Select
    Selection.RowHeight = KleineZeile
  Next Zeile
 
End Sub
 
Zuletzt bearbeitet von einem Moderator:
Hallo Westfale,

vielen Dank, dass du mir helfen magst.
Das Problem ist aber, ich habe absolut keine Ahnung von Makros und weiß überhaupt nicht wie und wo ich dieses Makro eingeben muss.
Und sorry, eine kleine Korrektur, habe erst jetzt gesehen, dass die Datei nicht nur das eine, sondern mehrere Tabellenblätter mit Daten, die alle so aufgebaut sind, beinhaltet.
Allerdings haben nicht alle 15000 Zeilen, sondern unterschiedlich viele. Also eine sogar 18700.
Würde dieses, von dir erstellte Makro für die ganze Datei gelten, also auch für all die anderen Tabellenblätter?
Ich glaube ich habe mich auch bei der Bezeichnung der Zeilenhöhe etwas vertan. Es soll heißen erste Zeile = 13,20 (22 Pixel) und jede zweite Zeile = 10,80 (18 Pixel.)
Und wenn das Makro seinen "Job" erfüllt hat, darf ich es dann wieder komplett aus der Datei herauslöschen oder muss die Datei dann als Excel-Datei mit Makros abgespeichert werden?
 
Zuletzt bearbeitet:
Hi @bloxx

Du musst etwas tricksen.

1) füge vor "Spalte A" eine neue Spalte ein bzw. nimm´ ganz rechts eine leere Spalte
2) trage bei "A1" ein "x" ein
3) trage bei "A2" eine "1" ein
4) markiere diese beiden Zellen
5) ziehe beide markierten Werte mit dem "Greifer (unten rechts in der Ecke von A2" und ziehe es bis zur letzten Zeile nach unten
6) bei deinen 15000 Zeilen müsste jetzt in jeder zweiten Zeile ein "x" bzw. eine fortlaufende Nummer stehen (1 bis ca. 7500)
7) markiere nun die gesamte Spalte, wo die Werte drinstehen (die gesamte Spalte muss markiert sein)
8) klicke auf "Start" und in der Gruppe "Bearbeiten" auf "Suchen und Auswählen"
9) dann auf "Inhalte auswählen"
10) bei Auswählen klickst du auf "Konstanten" und aktivierst "Zahlen" und "OK"

Nun ist jede zweite Zeile markiert.

11) jetzt nur noch die Zeilenhöhe anpassen (Start, Gruppe "Zellen", Format, Zeilenhöhe = z.B. 18)
12) danach die zuvor angelegt "Hilfsspalte" wieder löschen

Ich weiß jetzt nur nicht, ob Excel2010 das auch schon kann. Falls nein, dann lass´ das so von Freunden/Bekannten erledigen oder kaufe dir eine neuere Office-Version. Mit Office 2021 funktioniert es so.


1732958093913.png
 
Zuletzt bearbeitet:
Makros sind höchst einfach zu erstellen. Anleitungen gibt's zuhauf im Netz,
z. B. Excel: Makro erstellen – so geht's, das müssen wir hier nicht wiederholen.

Wenn du das Makro in deiner Arbeitsmappe gespeichert hast und es dann ausführen lässt, wirkt es immer auf das gerade aktive Tabellenblatt. Mit einer kleinen Änderung wird dann die Anzahl der Zeilen, die bearbeitet werden, auch an die Größe der Tabelle angepasst:
Ersetze im Makro die Zahl "15000" durch "ActiveSheet.UsedRange.Rows.Count" (ohne Anführungszeichen!).
 
Zuletzt bearbeitet von einem Moderator:
Hallo Westfale und Gismon,
ich dachte, ich muss es tatsächlich alles per Hand machen.
Ich habe sowohl Westfalens Makro, als auch nochmal separat den Trick von Gismon ausprobiert.
Beides hat mich zur gewünschten Lösung gebracht.
Von daher ein großes Dankeschön an den Westfalen, dass du das Makro für mich erstellt hast
und an Gismon, für deine große Mühe und all den Beschreibungen für den wahrhaft raffinierten Trick, der mir immer noch nicht aus meinem Kopf herausgeht. Das ist echt unglaublich....
Dank euch habe ich eine Menge an Zeit einsparen können.
Viele Grüße an euch
 
@bloxx
Wenn du öfter mit Excel arbeitest, solltest du dich mal mit Makros bzw. der VBA-Programmierung beschäftigen, es lohnt sich und macht auch Spaß. Du hast ja gerade gesehen, dass man auf diesem Weg manche Aufgabe höchst elegant und schnell bewältigen kann. ;)
 
Das in #2 gezeigte Makro war "auf die Schnelle" speziell für die in #1 beschriebenen Anforderungen geschrieben. Es wird nicht funktionieren, wenn es auf eine Tabelle angewendet wird, wo mehr als 32.767 Zeilen bearbeitet werden sollen; daher zur Vervollständigung (für die Nachwelt... ;)) hier eine Version, die für alle Anforderungen funktionieren sollte:

Code:
Sub Zeilenhoehe()

  Dim KleineZeile, GrosseZeile As Byte  ' 256 Pixel sollten reichen.
  Dim AnzahlZeilen, Zeile As Long       ' 1.048.576 Zeilen ist Excel-Maximum.
  KleineZeile = 18                      ' Zeilenhöhe in Pixel.
  GrosseZeile = 22                      ' dito
  AnzahlZeilen = ActiveSheet.UsedRange.Rows.Count ' Wieviele Zeilen benutzt?
 
  Rows(1 & ":" & AnzahlZeilen).Select   ' Benutzten Zellbereich auswählen
  Selection.RowHeight = GrosseZeile     ' und Zeilenhöhe "groß" einstellen.
  For Zeile = 2 To AnzahlZeilen Step 2  ' Jede zweite Zeile
    Rows(Zeile & ":" & Zeile).Select    ' auswählen
    Selection.RowHeight = KleineZeile   ' und Zeilenhöhe "klein" einstellen.
  Next Zeile                            ' Nächste Zeile...
 
End Sub
 
Anzeige
Oben