Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1948to1952
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
Inhaltsverzeichnis

VBA Code " Zeilenhöhe bei Verb. Zellen Funktioniert fasst"

VBA Code " Zeilenhöhe bei Verb. Zellen Funktioniert fasst"
01.11.2023 23:08:01
polat
Hallo Leute
ich hatte in einem anderen Beitrag um ein Code gebeten.
Jetzt hab ich zwar ein Code von jemand anderem bekommen der nicht in einem Forum ist. Ich kann geradediese Person nicht erreichen kann.
Doch leider Funktioniert dieser Code nicht ganz wie ich es möchte.
Ich habe in einer Mappe in Reihe 43 verbundene Spalten ( C:J , L:S , U:AB). In diese Zellen z.b C:J ( Spalte hat eine Höhe von 64) schreibe ich 5 Sätze ( jeder Satz besteht aus 72 Zeichen) erhöht sich die Höhe der Zelle von 64 auf 88. Lösche ich diese 5 Sätze hat die Zelle wieder die höhe von 64.
Soweit so gut. Doch wenn ich weiter schreibe also Satz nr 6 Satz nr 7 und so weiter bleibt die Höhe bei 88 und erhöht sich nicht automatisch.
Kann mir jemand helfen diesen Code so Umzuschreiben das je mehr ich eingebe ( es könnten auch mal viel weniger wie 72 Zeichen sein) die Höhe sich anpasst und wenn ich einen Satz lösche es sich wieder anpasst. Ich danke euch jetzt schon für eure Hilfe.
Hier ist der Code. Beispiel Datei hänge ich an.
https://www.herber.de/bbs/user/163970.xlsm

Gruß Polat

Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng As Range
Set rng = Union(Range("C43:J43"), Range("L43:S43"), Range("U43:AB43"))

If Not Intersect(Target, rng) Is Nothing Then
' Überprüfen, ob der Bereich nicht leer ist
If WorksheetFunction.CountA(rng) > 0 Then
' Bestimmen Sie die Anzahl der geschriebenen Zeilen
Dim lineCount As Integer
lineCount = 0
Dim cell As Range

For Each cell In rng
Dim lines As Integer
lines = Len(cell.Value) - Len(Replace(cell.Value, vbCrLf, "")) + 1
lineCount = lineCount + lines
Next cell

' Einblenden der Zeile, falls ausgeblendet
Rows("43:43").Hidden = False

' Passen Sie die Zeilenhöhe entsprechend an
Rows("43:43").EntireRow.AutoFit
If Rows("43:43").RowHeight 150 Then
Rows("43:43").RowHeight = 64 + (lineCount * (136 / 136)) ' Anpassen der Höhe basierend auf der Anzahl der geschriebenen Zeilen
End If
Else
' Wenn der Bereich leer ist, stellen Sie die ursprüngliche Zeilenhöhe wieder her
Rows("43:43").RowHeight = 64
End If
End If
End Sub

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

Betreff
Datum
Anwender
Anzeige
AW: VBA Code " Zeilenhöhe bei Verb. Zellen Funktioniert fasst"
02.11.2023 01:25:02
ralf_b
Zitat:Ich kann gerade diese Person nicht erreichen kann.
Chatgpt ist wohl grad offline?


Private Sub Worksheet_Change(ByVal Target As Range)

Dim rng As Range, cell As Range, rwhght As Double, lineCount As Integer, lines As Integer

Set rng = Union(Range("C43:J43"), Range("L43:S43"), Range("U43:AB43"))

If Not Intersect(Target, rng) Is Nothing Then

' Überprüfen, ob der Bereich nicht leer ist
If WorksheetFunction.CountA(rng) > 0 Then

For Each cell In rng.Areas ' Bestimmen Sie die Anzahl der geschriebenen Zeilen
lines = Len(cell(1).Value2) - Len(Replace(cell(1).Value2, vbLf, "")) + 1
lineCount = WorksheetFunction.Max(lineCount, lines) 'nur den größten Wert merken
Next cell

' Einblenden der Zeile, falls ausgeblendet
With Rows("43:43")
.Hidden = False
.EntireRow.AutoFit
rwhght = .RowHeight
If rwhght 150 Then

.RowHeight = rwhght * lineCount ' Anpassen der Höhe basierend auf der Anzahl der geschriebenen Zeilen
End If
End With
Else
' Wenn der Bereich leer ist, stellen Sie die ursprüngliche Zeilenhöhe wieder her
Rows("43:43").RowHeight = 64
End If
End If
End Sub

Anzeige
AW: VBA Code " Zeilenhöhe bei Verb. Zellen Funktioniert fasst"
02.11.2023 02:11:42
polat
Hallo Ralf_b

Ich danke dir vom ganzen Herzen. Vielen vielne dank.
Suche seit Tagen nach einer Lösung fand aber nichts.
Ich möchte mich bei dir bedanken weshalb ich dich bitte mir per mail deine email adresse zu schicken.

Könntest du mir noch sagen wie der Code ausehen würde wenn ich diese Bereiche auch noch dazu nehmen muss.
C45:J45 Verbunden
C47:J47 Verbunden
C49:J49 Verbunden
C51:J51 Verbunden
C53:J53 Verbunden
C55:J55 Verbunden
C57:J57 Verbunden
C59:J59 Verbunden
C61:J61 Verbunden
C63:J63 Verbunden
L43:S43 Verbunden
L45:S45 Verbunden
L47:S47 Verbunden
L49:S49 Verbunden
L51:S51 Verbunden
L53:S53 Verbunden
L55:S55 Verbunden
L57:S57 Verbunden
L59:S59 Verbunden
L61:S61 Verbunden
L63:S63 Verbunden
U43:AB43 Verbunden
U45:AB45 Verbunden
U47:AB47 Verbunden
U49:AB49 Verbunden
U51:AB51 Verbunden
U53:AB53 Verbunden


Anzeige
AW: VBA Code " Zeilenhöhe bei Verb. Zellen Funktioniert fasst"
02.11.2023 07:07:34
MCO
Moin, polat!

Da musst du Union () weiter füllen. Reine Fleißarbeit.
Oder ne Aufgabe für ChatGPT,,,,

Gruß, MCO
AW: VBA Code " Zeilenhöhe bei Verb. Zellen Funktioniert fasst"
02.11.2023 07:15:15
ralf_b
Moin,

Der Code hier wird auf alle Zellen angewendet, die verbunden sind und aus 8 Zellen bestehen. Deshalb solltest du den Verbund nicht mehr in der Größe ändern.

Wofür benötigst du meine Email-Adresse? Ich denke das es einen guten Grund gibt warum man hier keine Emails der Helfer mehr veröffentlicht.

Private Sub Worksheet_Change(ByVal Target As Range)

Dim rng As Range, cell As Range, rwhght As Double, lineCount As Integer, lines As Integer

If Target.MergeCells Then
If Target.MergeArea.Cells.Count = 8 Then

Set rng = Intersect(Target.EntireRow, Range("C:J,L:S,U:AB"))

' Überprüfen, ob der Bereich nicht leer ist
If WorksheetFunction.CountA(rng) > 0 Then

For Each cell In rng.Areas ' Bestimmen Sie die Anzahl der geschriebenen Zeilen
lines = Len(cell(1).Value2) - Len(Replace(cell(1).Value2, vbLf, "")) + 1
lineCount = WorksheetFunction.Max(lineCount, lines) 'nur den größten Wert merken
Next cell

' Einblenden der Zeile, falls ausgeblendet
With Target.EntireRow
.Hidden = False
.EntireRow.AutoFit
rwhght = .RowHeight
If rwhght 150 Then
.RowHeight = rwhght * lineCount ' Anpassen der Höhe basierend auf der Anzahl der geschriebenen Zeilen
End If
End With
Else
' Wenn der Bereich leer ist, stellen Sie die ursprüngliche Zeilenhöhe wieder her
Target.EntireRow.RowHeight = 64
End If
End If
End If
End Sub
Anzeige
AW: VBA Code " Zeilenhöhe bei Verb. Zellen Funktioniert fasst"
02.11.2023 13:01:09
polat
Hallo Ralf
Tausend dank an dich Ralf.
Warum ich deine E-Mail-Adresse wollte?
Entschuldige, aber ich wollte mich mit einem kleinen Betrag bedanken.
Kam mir so vom Herzen.
Gruß Polat
AW: VBA Code " Zeilenhöhe bei Verb. Zellen Funktioniert fasst"
02.11.2023 19:10:37
ralf_b
Hallo Polat,

das ist eine schöne Idee. Für Aufmerksamkeiten in Form von Geld bin ich immer empfänglich. Schließlich müssen Alle irgendwie sehen wie man über die Runden kommt.
In diesem Falle würde ich dich bitten hier die Aufmerksamkeit zu platzieren. https://www.krebshilfe.de/spenden-aktiv-werden/spenden/jetzt-spenden/

gruß

rb
Anzeige
AW: VBA Code " Zeilenhöhe bei Verb. Zellen Funktioniert fasst"
03.11.2023 04:43:30
polat
Hallo Ralf
das mache ich auf jeden fall. Ich habe auch 2 Kinder.
Leider gibt es ein kleines Problem mit dem Code.
Unzwar ist in einem anderen Code das vorhanden : Sheets("SFMdigital").Range("C43:j43").ClearContents
Wenn dieser Code ausgeführt wird löscht er zwar die Daten in Zelle C43:J43 aber dann kommt eine Fehler Meldung : Anwendungs-Objektdefinierter Fehler.
Und diese Zeile von deinem Code wird Gelb markiert : If Target.MergeArea.Cells.Count = 8 Then

Ich hoffe sehr das du mir helfen kannst da ich mich sehr gefreut hatte das dein Code Funktioniert.

Gruß Polat

Falls du wissen möchtest wie der andere Code aussieht hier :
Sub Löschen_Schichtbuch()

Dim sheet As String
If MsgBox("Schichtbuch Daten für neue Einträge löschen ? ", vbYesNo) = vbYes Then



blattschutzAufheben


sheet = sheetnamenausgeben

' bertragen Farbe wieder auf Wei¤
Range("F5").Interior.ColorIndex = 2
Range("I5").Interior.ColorIndex = 2
Range("L5").Interior.ColorIndex = 2
Range("R5").Interior.ColorIndex = 2
Range("U5").Interior.ColorIndex = 2
Range("X5").Interior.ColorIndex = 2


' For i = 7 To 13
'Ausbringung 223 leeren
Range(Cells(7, 4), Cells(13, 12)).Value = ""
'Ausbringung 254 leeren
Range(Cells(7, 16), Cells(13, 24)).Value = ""
' For d = 4 To 12
' 'Ausbringung 223 leeren
' Cells(i, d).Value = ""
' Next
' For d = 16 To 24
' 'Ausbringung 254 leeren
' Cells(i, d).Value = ""
' Next
' Next

For i = 17 To 21
'Aufgaben Heute
Cells(i, 11).Value = ""

'Wichtige Themen
Cells(i, 14).Value = ""
Cells(i, 15).Value = ""
Cells(i, 16).Value = ""
Next

For i = 17 To 18
Cells(i, 25).Value = ""
Cells(i, 26).Value = ""
Cells(i, 27).Value = ""
Next

'Status Rahmen 1 und Rahmen 2 pro Schicht leeren
For i = 35 To 39
Cells(i, 7).Value = ""
Cells(i, 10).Value = ""
Cells(i, 16).Value = ""
Cells(i, 19).Value = ""
Cells(i, 25).Value = ""
Cells(i, 28).Value = ""
Next

'Probleme Ma¤nahmen pro Schicht leeren
For i = 44 To 50
Cells(i, 4).Value = ""
Cells(i, 13).Value = ""
Cells(i, 22).Value = ""
Next

'Dropdowns leeren
For d = 3 To 34
Cells(54, d).Value = ""
Cells(72, d).Value = ""
Next


Range("GV7:HD13").Clear
Range("JF7:JN13").Clear

Sheets(sheet).Range("GR4:GT6").Clear
Sheets(sheet).Range("IP4:IR6").Clear

Sheets("SFMdigital").Range("C43:j43").ClearContents

blattschutzAktivieren


MsgBox " Daten gelöscht! Schichtbuch bereit für neue Einträge ! "



blattschutzAktivieren
End If
End Sub
Anzeige
AW: VBA Code " Zeilenhöhe bei Verb. Zellen Funktioniert fasst"
03.11.2023 06:57:53
ralf_b
vesuchs mal damit. Was ist denn mit den anderen Zeilen?

Sub Löschen_Schichtbuch()


Dim sheet As String
If MsgBox("Schichtbuch Daten für neue Einträge löschen ? ", vbYesNo) = vbYes Then

blattschutzAufheben

sheet = sheetnamenausgeben

' Übertragen Farbe wieder auf Weiß
Range("F5,I5,L5,U5,X5").Interior.ColorIndex = 2

Cells(7, 4).Resize(7, 9).Value = ""
'Ausbringung 254 leeren
Cells(7, 16).Resize(7, 9).Value = ""

'Aufgaben Heute
Cells(17, 11).Resize(5, 1).Value = ""

'Wichtige Themen
Cells(17, 14).Resize(5, 3).Value = ""
Cells(17, 25).Resize(2, 3).Value = ""

'Status Rahmen 1 und Rahmen 2 pro Schicht leeren
Union(Cells(35, 7), Cells(35, 10), Cells(35, 16), Cells(35, 19), Cells(35, 25), Cells(35, 28)).Resize(5, 1).Value = ""

'Probleme Ma¤nahmen pro Schicht leeren
Union(Cells(44, 4), Cells(44, 13), Cells(44, 22)).Resize(7, 1).Value = ""

'Dropdowns leeren
Cells(54, 3).Resize(1, 31).Value = ""
Cells(72, 3).Resize(1, 31).Value = ""

Range("GV7:HD13").Clear
Range("JF7:JN13").Clear

Sheets(sheet).Range("GR4:GT6").Clear
Sheets(sheet).Range("IP4:IR6").Clear

Application.EnableEvents = False
Sheets("SFMdigital").Range("C43:j43").ClearContents
Application.EnableEvents = True

blattschutzAktivieren

MsgBox " Daten gelöscht! Schichtbuch bereit für neue Einträge ! "

blattschutzAktivieren 'wieso 2 mal ???
End If
End Sub


Anzeige
AW: VBA Code " Zeilenhöhe bei Verb. Zellen Funktioniert fasst"
03.11.2023 15:56:47
polat
Hallo Ralf
der Fehler lag bei meinem Code. Diese Zeilen wahren nicht richtig. Aber jetzt passt es. Tausend Dank nochmals.
So jetzt geht es zur Spende :-)
Chatgbt wird kann von dir lernen :-)

Gruß Polat
'Probleme Ma¤nahmen pro Schicht leeren  ' Neue Version

For i = 42 To 63
Cells(i, 3).Value = ""
Cells(i, 5).Value = ""
Cells(i, 9).Value = ""
Cells(i, 12).Value = ""
Cells(i, 14).Value = ""
Cells(i, 18).Value = ""
Cells(i, 21).Value = ""
Cells(i, 23).Value = ""
Cells(i, 27).Value = ""


'Probleme Ma¤nahmen pro Schicht leeren  'alte Version

For i = 44 To 50
Cells(i, 4).Value = ""
Cells(i, 13).Value = ""
Cells(i, 22).Value = ""

Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige