Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Problem RowHeight-Eigenschaft Range-Objekt

Forumthread: Problem RowHeight-Eigenschaft Range-Objekt

Problem RowHeight-Eigenschaft Range-Objekt
05.11.2017 14:02:38
Winfried
Hallo zusammen,
wir sind heute auf ein sehr komisches Phänomen gestoßen und wissen nicht wirklich was der Grund hierfür ist.
Ich hab ein Makro geschrieben bei dem der Inhalt eines Tabellenblattes (22 Zeilen lang und 26 Spalten breit) in eine neue Datei kopiert wird und Zeilenhöhe und Zeilenbreite (per Schleife) vom ursprünglichen Tabellenblatt auf das Tabellenblatt der neuen Datei übertragen werden.
tb0 = Name des Tabellenblattes in der neuen Datei
tb5 = Name des Tabellenblattes in der Ursprungsdatei

tb0.Cells.Select
Selection.Interior.Color = 16777215
tb5.Range("A1:AZ30").Copy
tb0.Range("A1:AZ30").Select
Selection.PasteSpecial Paste:=xlPasteAll
For r = 1 To 22
tb0.Rows(r).RowHeight = tb5.Rows(r).RowHeight
Next r
For s = 1 To 26
tb0.Columns(s).ColumnWidth = tb5.Columns(s).ColumnWidth
Next s
Meine Schwägerin bekommt dabei jetzt plötzlich eine Fehlermeldung angezeigt:
"Die RowHeight-Eigenschaft des Range-Objektes kann nicht festgelegt werden."
Auf meinem Copmputer (Excel 365) kommt die Fehlermeldung nicht, bei meiner Schwägerin (ebenfalls Excel 365) allerdings schon.
Jemand ne Idee woran das liegen könnte? Kann das mit der Länge des kopierten Textes zusammenhängen? Warum bekomme ich die Fehlermeldung nicht?
Vielen lieben Dank im Voraus und euch noch einen schönen Sonntag =)
Winfried
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Problem RowHeight-Eigenschaft Range-Objekt
05.11.2017 14:41:52
Hajo_Zi
Hallo Wilfried,
ist die Ursprungsdatei auf?

Ich gebe keinen Dank für eine Rückmeldung, da ich durch solche Beiträge nicht meine Beitragszahl erhöhen muss.
Also ich schreibe keine Beiträge mit dem Betreff "Gerne u. Danke für die Rückmeldung. o.w.T."
Rückmeldung ist ja in der Heutigen Zeit nicht üblich und die wenigen die eine Rückmeldung geben, mögen mir das verzeihen, das kein Danke für eine Rückmeldung kommt.
Beiträge von Werner, Luc, robert und folgende lese ich nicht.
Anzeige
AW: Problem RowHeight-Eigenschaft Range-Objekt
05.11.2017 15:18:40
Winfried
Hallo Hajo,
danke für deine Rückmeldung =)
Ja, die Ursprungsdatei ist beim Erstellen der zweiten Datei offen.
Mich überrasch halt nur das auf dem anderen Computer die Fehlermeldung auftritt und bei mir (mit der identischen Datei) nicht. Auf beiden Rechnern läuft auch die gleiche Excel-Version.
Viele Grüße
Winfried
Anzeige
AW: Problem RowHeight-Eigenschaft Range-Objekt
05.11.2017 14:55:23
Daniel
Hi
ist jetzt schwer zu sagen, was da die Ursache ist.
sind die Dateien in beiden Fällen gleich oder gibt es Unterschiede? (Schreibschutz, Verbundene Zellen, usw).
ansonsten, wenn du nicht nur einen begrenzten Zellbereich kopierst, sondern die ganzen Zeilen, dann übernimmt Excel in der Regel auch die Zeilenhöhen.
damit kann dann die Schleife zum Einstellen der Zeilenhöhe entfallen.
falls Inhalte nach Spalte BA vorhanden sind, musst du diese löschen.
Auch die Spaltenbreiten könnte man seperat mit Copy-Paste übertragen (schau dir mal das Kontextmenü zum Inhalte einfügen genauer an, dan findest du die entsprechende Option.
außerdem sollte man nicht mit select arbeiten, sondern die Zellbereiche direkt ansprechen.
in den Schleifen machst du das richtig, beim Einfügen der kopierten Inhalte jedoch verwendest du wieder das unnötige Select.
tb0.Cells.Interior.Color = 16777215
tb5.Range("A1:A30").EntireRow.Copy
tb0.Range("A1").PasteSpecial Paste:=xlPasteAll
tb0.range("A1").pastespecial paste:=xlPasteColumnWidths
tb0.Range(tb0.Cells(1, "BA"), tb0.Cells(30, tb0.columns.Count)).Clear
Gruß Daniel
Anzeige
AW: Problem RowHeight-Eigenschaft Range-Objekt
05.11.2017 15:15:12
Winfried
Hallo Daniel,
die Excel-Datei ist absolut identisch. Ich hab die Datei,welche auf dem anderen Computer die Fehlermeldung bringt, zugeschickt bekommen und bei mir problemlos, ohne Fehlermeldung, laufen lassen.
Normalerweise nutze ich die "select"-Anweisung auch nicht, aber in dem Fall hab ich sie ausnahmsweise dafür "missbraucht" ;o).
Danke für den Code =), werd ich bei Gelegenheit mal ändern (...aber die Select-Anweisung hat meines Erachtens doch nichts mit der Fehlermeldung zu tun, oder?)
Gruß Winfried
Anzeige
AW: Problem RowHeight-Eigenschaft Range-Objekt
05.11.2017 15:40:26
Daniel
nö, select hat nichts mit dem Fehler zu tun.
Wenn die gleiche Datei auf unterschiedlichen Rechnern, aber mit gleichem Betriebssystem und gleicher Excelversion mal funktioniert und mal einen Fehler bringt, dann würde ich mal den Rechnter mit dem Fehler neu starten und schauen, ob der Fehler reproduzierbar ist.
Wenn ja, musst du noch mal genauer schauen, was bei den Rechnern unterschiedlich sein könnte.
Gruß Daniel
Anzeige
AW: Problem RowHeight-Eigenschaft Range-Objekt
05.11.2017 15:49:57
Winfried
Hallo Daniel,
Betriebssysteme sind unterschiedlich (Win7 vs. Win10 auf dem anderen Rechner), aber auch das sollte keinen Unterschied bei einer eigentlich so einfachen Befehlskette geben.
Ich werd mich mal mit Teamviewer auf den anderen Rechner schalten und schauen ob ich den Fehler irgendwie reproduzieren/ nachvollziehen kann.
Danke für Deine Hilfe =)
Gruß
Winfried
Anzeige
Verweise checken
05.11.2017 16:06:32
Zwenn
Hallo Winfried,
wenn Du mit Teamviewer aufgeschaltet bist, vergleiche mal im VBA Editor unter Extras - Verweise, ob bei Deiner Schwägerin noch andere gestezt sind, als bei Dir bzw. ob welche nicht gesetzt sind. Bei solchen Problemen, gab es in der Vergangenheit schon oft eine Lösung durch das wegnehmen überflüssiger Verweise.
Viele Grüße,
Zwenn
Anzeige
AW: Problem RowHeight-Eigenschaft Range-Objekt
05.11.2017 16:30:25
onur
Was ist mit Blattschutz auf beiden Rechnern?
Wenn du die besagte Zeile als Kommentar deklarierst, taucht der Fehler auch bei Columns.Width auf?
Anderer Ansatz
05.11.2017 19:04:27
RPP63
Moin!
Wenn ich das richtig sehe, wäre Dein "Problem" durch eine Vorlage (.xltx) völlig ohne VBA gelöst.
Gruß Ralf
;
Anzeige
Anzeige

Infobox / Tutorial

Probleme mit der RowHeight-Eigenschaft im Range-Objekt in Excel


Schritt-für-Schritt-Anleitung

  1. VBA-Editor öffnen: Drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Modul erstellen: Klicke im Menü auf Einfügen > Modul, um ein neues Modul zu erstellen.

  3. Code einfügen: Füge den folgenden Code in das Modul ein:

    Sub CopyRowHeight()
       Dim tb0 As Worksheet
       Dim tb5 As Worksheet
       Set tb0 = ThisWorkbook.Sheets("Tabelle1") ' Name des Ziel-Tabellenblattes
       Set tb5 = Workbooks("Ursprungsdatei.xlsx").Sheets("Tabelle1") ' Name des Quell-Tabellenblattes
    
       tb0.Cells.Interior.Color = 16777215
       tb5.Range("A1:AZ30").Copy
       tb0.Range("A1:AZ30").PasteSpecial Paste:=xlPasteAll
    
       For r = 1 To 22
           tb0.Rows(r).RowHeight = tb5.Rows(r).RowHeight
       Next r
    
       For s = 1 To 26
           tb0.Columns(s).ColumnWidth = tb5.Columns(s).ColumnWidth
       Next s
    End Sub
  4. Code ausführen: Drücke F5, um das Makro auszuführen und die Zeilenhöhen zu kopieren.


Häufige Fehler und Lösungen

  • Fehlermeldung "Die RowHeight-Eigenschaft des Range-Objektes kann nicht festgelegt werden":

    • Überprüfe, ob das Quellblatt geöffnet ist. Bei geschützten Blättern kann dieser Fehler auftreten.
    • Möglicherweise sind die Zellen verbunden, was zu Problemen bei der Zuweisung der Zeilenhöhe führt.
  • Unterschiedliche Ergebnisse auf verschiedenen Rechnern:

    • Stelle sicher, dass beide Rechner dieselbe Excel-Version und dasselbe Betriebssystem verwenden. Unterschiede im Betriebssystem können zu unerwarteten Verhalten führen.

Alternative Methoden

  • Direktes Kopieren von Zeilen: Um die Zeilenhöhen direkt zu übernehmen, kannst du die gesamte Zeile kopieren, anstatt die Zeilenhöhe manuell zu setzen:

    tb5.Rows("1:22").Copy
    tb0.Rows("1:22").PasteSpecial Paste:=xlPasteRowHeights
  • Verwendung von PasteSpecial für Spaltenbreiten: Du kannst auch die Spaltenbreiten mit einer ähnlichen Methode kopieren:

    tb0.Range("A1").PasteSpecial Paste:=xlPasteColumnWidths

Praktische Beispiele

Angenommen, du hast eine Excel-Datei mit verschiedenen Tabellenblättern, und du möchtest die Zeilenhöhen und Spaltenbreiten von "Tabelle1" in "Tabelle2" übertragen. Der folgende VBA-Code zeigt, wie du das machen kannst:

Sub CopyTableDimensions()
    Dim wsSource As Worksheet
    Dim wsTarget As Worksheet
    Set wsSource = ThisWorkbook.Sheets("Tabelle1")
    Set wsTarget = ThisWorkbook.Sheets("Tabelle2")

    wsSource.Rows.Copy
    wsTarget.Rows.PasteSpecial Paste:=xlPasteRowHeights
    wsTarget.Columns.PasteSpecial Paste:=xlPasteColumnWidths
End Sub

Tipps für Profis

  • Vermeide .Select und .Activate: Diese Methoden verlangsamen den Code erheblich und können zu unerwarteten Fehlern führen. Greife direkt auf die Zellen zu.
  • Verwende Fehlerbehandlung: Implementiere eine Fehlerbehandlung, um spezifische Probleme zu identifizieren, z.B. mit On Error Resume Next.
  • Auf Verweise prüfen: Überprüfe im VBA-Editor die Verweise unter Extras > Verweise, um sicherzustellen, dass keine fehlenden oder überflüssigen Verweise vorhanden sind.

FAQ: Häufige Fragen

1. Warum funktioniert der Code auf einem Computer und nicht auf einem anderen?
Es könnte an unterschiedlichen Excel-Versionen oder Betriebssystemen liegen. Überprüfe auch, ob die Ursprungsdatei geöffnet ist und ob spezifische Einstellungen wie Blattschutz aktiv sind.

2. Wie kann ich die Zeilenhöhe für verbundene Zellen anpassen?
Bei verbundenen Zellen kannst du die RowHeight nicht direkt setzen. Du musst die Verbindung aufheben oder die Zeilenhöhe für die gesamte Zeile anpassen.

3. Was kann ich tun, wenn ich weiterhin Fehler erhalte?
Versuche, den Code in einer neuen Arbeitsmappe zu testen, um sicherzustellen, dass keine spezifischen Probleme mit der Arbeitsmappe vorliegen. Achte auch auf Schreibschutz oder andere Einschränkungen der Dateien.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige