Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
352to356
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
352to356
352to356
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Zeilenhöhe in Zelle schreiben

Zeilenhöhe in Zelle schreiben
18.12.2003 09:36:12
Hartmut Mühlebrg
Ich möchte in eine Zelle die aktuelle Zeilenhöhe in Punkten schreiben. Bei Änderung der Zeilenhöhe soll der Wert automatisch angepasst werden.
Beispiel:
Effektif genutzter Blattinhalt: A1:N60
in die Zellen P1:P60 soll die aktuelle Höhe der jeweiligen Zeilen geschrieben werden
in die Zellen A62:N62 soll die aktuelle Breite der jeweiligen Spalten geschrieben werden
Danke für Eure Hilfe.

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeilenhöhe in Zelle schreiben
18.12.2003 09:47:07
ChrisL
Hi Hartmut

Option Explicit


Sub Makro1()
Dim LetzteZeile As Long, LetzteSpalte As Integer
Dim iZeile As Long, iSpalte As Integer
With ActiveSheet
LetzteZeile = .UsedRange.Row + .UsedRange.Rows.Count - 1
LetzteSpalte = .UsedRange.Column + .UsedRange.Columns.Count - 1
For iZeile = .UsedRange.Row To LetzteZeile
Cells(iZeile, LetzteSpalte + 2) = Rows(iZeile).RowHeight
Next iZeile
For iSpalte = .UsedRange.Column To LetzteSpalte
Cells(LetzteZeile + 2, iSpalte) = Columns(iSpalte).ColumnWidth
Next iSpalte
End With
End Sub


Gruss
Chris
Anzeige
AW: Zeilenhöhe in Zelle schreiben
18.12.2003 10:42:18
Hartmut Mühlberg
Hallo Chris,
ich habe noch eine Frage bzw. Änderungswunsch:
Dein Makro liest die letzte Zelle aus und schreibt die Zahlenwerte rechts bzw. darunter. Bei wiederholter Ausführung des Makros geht es wiederum weiter nach rechts bzw. nach unten. Ich möchte aber gerne, dass die bei der ersten Makroausführung geschriebenen Werte überschrieben werden. Ich möchte in meinem Arbeitsblatt in die Zelle B32 die Spalte schreiben, in der ich die Zeilenhöhe ausgegeben haben möchte und in die Zelle B33 die Zeile schreiben, in der ich die Spaltenbreite schreiben möchte. Einverstanden, ein Eingabefehler hier kann vorhandene Daten eventuell löschen, ich kann mit diesem Risiko leben.
Danke für Deine Hilfe.
Hartmut
Anzeige
AW: Zeilenhöhe in Zelle schreiben
18.12.2003 11:15:06
ChrisL
Hi Hartmut

Etwa so...

Option Explicit


Sub Makro1()
Dim LetzteZeile As Long, LetzteSpalte As Integer
Dim iZeile As Long, iSpalte As Integer
With ActiveSheet
LetzteZeile = .Range("B33")
LetzteSpalte = .Range(.Range("B32") & 1).Column
For iZeile = 1 To LetzteZeile - 1
Cells(iZeile, LetzteSpalte) = Rows(iZeile).RowHeight
Next iZeile
For iSpalte = 1 To LetzteSpalte - 1
Cells(LetzteZeile, iSpalte) = Columns(iSpalte).ColumnWidth
Next iSpalte
End With
End Sub


Gruss
Chris
AW: Zeilenhöhe in Zelle schreiben
18.12.2003 12:21:52
Hartmut Mühlberg
Hallo Chris,
Irgenwas geht nicht, bei

LetzteSpalte = .Range(.Range("B33") & 1).Column

kommt eine Fehlermeldung, das Makro stürzt ab. Leider kenne ich VBA zuwenig um selber "reparieren" zu können.
Könntest Du bitte helfen?
Danke.
Hartmut
Anzeige
AW: Zeilenhöhe in Zelle schreiben
18.12.2003 14:19:10
ChrisL
Hi Hartmut

In B32 muss der Buchstabe der Spalte stehen, dann sollte es gehen.
LetzteSpalte = .Range(.Range("B32") & 1).Column

B33 ist die Zeile = Zahl.

Gruss
Chris

Gruss
Chris
AW: Zeilenhöhe in Zelle schreiben
18.12.2003 15:03:19
Hartmut Mühlberg
Hallo Chris,
Danke, so gehts.
Was mich im konkreten Fall interessiert, ist die Summe aller Linienhöhen in einem bestimmten Bereich. Ich habe das Makro so geändert, dass der Wert dieser Summe in eine bestimmte Zelle kopiert wird.
Jetzt hätte ich nur noch einen Wunsch: Am Ende des Makros soll der Inhalt der letzten Spalte, wo die Spaltenhöhe steht, gelöscht werden. Der Spaltenname, soll der von "LetzteSpalte" sein, sinngemäss:

Range("LetzteSpalte").Select
Selection.ClearContents

Könntest Du mir dabei bitte helfen?
Danke im voraus.
Hartmut
Anzeige
AW: Zeilenhöhe in Zelle schreiben
18.12.2003 16:16:00
ChrisL
Hi Hartmut

Mit diesem Code...
LetzteSpalte = .Range(.Range("B32") & 1).Column
... wird der Buchstabe in B32 in eine Zahl umgewandelt (A=1, B=2, C=3 etc.)

Folglich kannst du die Spalte nicht mit "Range" ansprechen sondern so...
.Columns(LetzteSpalte).ClearContents

Gruss
Chris

PS: Range("LetzteSpalte").Select
Zeichen innerhalb von Anführungszeichen werden als "String" interpretiert und somit vom Computer "nicht gelesen".
AW: Zeilenhöhe in Zelle schreiben
18.12.2003 09:50:02
Galenzo
Hallo,
die Zellbreite kannst du mit der Funktion =ZELLE("Breite";A1) ermitteln.
Für die Höhe mußt du dir eine eigene Funtkion schreiben, z.B:


Function ZellHoehe(Target As Range)
Application.Volatile
ZelleInfo = Target.Cells.Height
End Function


Allerdings gibt es einen gravierenden Nachteil - die Änderung der Spalten/Zeilen-Breite/Höhe bewirkt keine Neuberechnung der Funktionen!!
Die Werte werden als erst bei einer manuellen Neuberechnung (F9) aktualisiert oder wenn irgendeine andere Zellformel neu berechnet wird.

mfg
Anzeige
AW: Zeilenhöhe in Zelle schreiben
18.12.2003 09:54:15
Hartmut Mühlberg
Danke. Ist echt super, die schnelle Hilfe hier im Forum.
Hartmut

315 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige