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.

Endlosprotokoll
#11
Hallöchen,

leider nicht.
Du könntest es maximal mit einem Makro versuchen. Dazu könntest Du den Inhalt der verbundenen Zelle in eine Zelle gleicher Breite einfügen und die Höhe dort ermitteln und dann zurückübertragen. Allerdings ist dann die Frage, welche der verbundenen Zellen denn angepasst werden soll. Daher geht es übrigens auch nicht automatisch im Excel.

Prinzip:
Code:
Sub MakroHoeheInVerbundenen()
   Range("A20").Formula = Range("A1").Formula
   Rows(1).RowHeight = Range("A20").Height - Range("A2").Height
   Range("A20").Value = ""
End Sub

Eventuell muss man noch etwas mehr tun, z.B. die Formate übertragen (Schriftart und -Größe, automat. Zeilenumbruch)
Hast Du nebeneinander liegende Zellen verbunden, musst DU die Daten in eine Zelle mit entsprechender Breite einfügen.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#12
Huhu,

das Prinzip habe ich verstanden.

Aber wie kann ich in VBA einer Zelle in der aktiven Zeile sagen, sie soll das Format einer anderen Zelle in der aktiven Zeile über nehmen.

Z. B. soll O 15 den Text von C 15 wiedergeben, wenn ich in der Zeile 15 bin.
Antworten Top
#13
Hallöchen,

Da hilft Dir z.B. auch das Aufzeichnen etwas. Du schaust, was in der Ursprungszelle steht und änderst das einmal manuell in der Zielzelle, wobei es weniger auf die Einstellungswerte ankommt. Wichtig sind sozusagen die entsprechenden "Schalter" bzw. die Bezeichnung der Eigenschaften. Da bekommst Du was wie das:
Code:
With Selection.Font
        .Name = "Arial"
        .Size = 12

Auf mein codebeispiel umgemünzt würde dann in etwa so etwas entstehen:

Range("A20").Font.name = Range("A1").Font.name
Range("A20").Font.size = Range("A1").Font.size

Wenn Du die Breite einstellen willst, weil Du z.B. a1 und b1 in Deiner Verbindung hast, kannst Du nicht auf A20 gehen. Da musst Du z.B. c20 nehmen.

Aufgezeichnet bekommst Du bei einer Breitenänderung so etwas:

Columns("C:C").ColumnWidth = 18

Da könnte man so etwas daraus machen:

Columns("C:C").ColumnWidth = Columns("A:A").ColumnWidth + Columns("B:B").ColumnWidth
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#14
Die Breite der Spalte kann ich ja vorab statisch einstellen. Diese bleibt ja immer gleich.



Code:
Range("A20").Font.name = Range("A1").Font.name



Ist auch klar, nur wie kann ich die Werte in Range (hier A20 und A1) dynamisch auf die aktuelle Zeile beziehen?

Z.B. Range(aktuelle Zeile, Spalte O).Font.name = Range(aktuelle Zeile, Spalte E).Font.Name



Oder: Wenn die Zeile 27 meine aktuelle Zeile ist. Dann schreibe ich in die Zelle O27 die Formel "=E27". Somit übernimmt er mir den Text der im Protokoll steht auch in die Zeile E27. Diese habe ich auf die Breite des Zellenverbundes angepasst und Excel passt automatisch die Zellenhöhe an die Zelle O27 an. Wenn ein neuer Protokollpunkt z.B. in die nächste Zeile (28) eingefügt werden soll, soll auch automatisch in der Zelle O28 die Formel "=E28" stehen.

In VBA ist es wahrscheinlich nur eine Zeile zu schreiben, aber ich weiß nicht wie.
Antworten Top
#15
Hallo,

(13.08.2016, 08:58)Excel_Foley schrieb: In VBA ist es wahrscheinlich nur eine Zeile zu schreiben, aber ich weiß nicht wie.

die Anzahl der Zeilen ist nicht so wichtig: Wink
  With ActiveCell.EntireRow
   'Wert fix übertragen
   .Cells(5).Value = .Cells(15).Value
   'oder als Formelbezug
   .Cells(5).Formula = "=" & .Cells(15).Address
 End With
Gruß Uwe
Antworten Top
#16
Hallo,


wunderbar!

Genau das was ich wollte :)

Dankeschön
Antworten Top
#17
Hallöchen,

das mit der Höhenanpassung klappt auch soweit. Allerdings wird die Höhe erst nach einem Doppelklick in den Zellenverbund angezeigt.

Man tippt seinen Protokollpunkt in den Zellenverbund ein.
Nach einem Return wird es dann auch in der anderen Zelle (Spalte O, dient zum anpassen der Zellenhöhe) angezeigt, allerdings ohne automatischen Höhenanpassung.
Wenn ich dann in dem Zellenverbund einen manuellen Doppelklick durchführe, passt er mir die Zellenhöhe auch an.

Wie kann ich mir diesen Doppelklick sparen? Er soll wenn möglich die Zellenhöhe direkt nach dem Return automatisch anpassen.


Angehängte Dateien
.xlsm   Protokoll.xlsm (Größe: 215,05 KB / Downloads: 43)
Antworten Top
#18
Hat niemand eine Lösung dafür?
Antworten Top
#19
Hallöchen,

um welche Zelle geht es denn? Die, wo der viele Text drin steht? Ist heute vielleicht schon etwas spät, aber ich hab da keinen aktiven Code gefunden, der was mit der Höhe macht Sad Hast Du eventuell die falsche Datei gepostet?
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#20
Hallo,

um die Zellen in denen das Thema steht. Wenn ich einen neuen Ober- oder Unterpunkt einfüge und dann der Text in dem neuen Punkt über mehr als eine Zeile geht, wird die Zellenhöhe erst nach einem Doppelklick in die jeweilige  Zelle angepasst.
Antworten Top


Gehe zu:


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