Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1496to1500
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

@Patrick

@Patrick
13.06.2016 13:55:15
Werner
Hallo Patrick,
versuch mal folgendes:
Code in "Diese Arbeitsmappe"
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.Calculation = xlCalculationAutomatic
Dim bereich As Range
Dim zelle As Range
Set bereich = Tabelle3.Range("K2:M1500") 'Bereich mit Formeln, Bereich ggf. anpassen
With Tabelle3
For Each zelle In bereich
If zelle  "" Then
.Range(.Cells(zelle.Row, 1), .Cells(zelle.Row, 13)).Borders.Weight = xlMedium
.Range(.Cells(zelle.Row, 1), .Cells(zelle.Row, 13)).HorizontalAlignment = xlCenter
.Range(.Cells(zelle.Row, 1), .Cells(zelle.Row, 13)).VerticalAlignment = xlCenter
With .Range(.Cells(zelle.Row, 1), .Cells(zelle.Row, 13)).Font
.Name = "Arial"
.Size = 10
.Bold = True
End With
End If
Next
End With
End Sub
Private Sub Workbook_Open()
Application.Calculation = xlCalculationManual
With Tabelle3
.Unprotect Password:="PW"
.EnableAutoFilter = True
.Protect UserInterfaceOnly:=True, Password:="PW"
End With
End Su
Code in "Tabelle3"
Private Sub Worksheet_Change(ByVal Target As Range)
Dim bereich As Range
Dim zelle As Range
Set bereich = Tabelle3.Range("A2:J1500") 'Bereich mit händischen Eintragungen, ggf. anpassen
With Tabelle3
For Each zelle In bereich
If zelle  "" Then
.Range(.Cells(zelle.Row, 1), .Cells(zelle.Row, 13)).Borders.Weight = xlMedium
.Range(.Cells(zelle.Row, 1), .Cells(zelle.Row, 13)).HorizontalAlignment = xlCenter
.Range(.Cells(zelle.Row, 1), .Cells(zelle.Row, 13)).VerticalAlignment = xlCenter
With .Range(.Cells(zelle.Row, 1), .Cells(zelle.Row, 13)).Font
.Name = "Arial"
.Size = 10
.Bold = True
End With
End If
Next
End With
End Sub

Gruß Werner

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: @Patrick
13.06.2016 17:28:19
Patrick
Hi Werner,
vielen Dank, dass Du an mich gedacht hast. das funktioniert soweit ganz gut. Hätte zwar aus optischen Gründen gerne, dass freigebliebene Zellen nicht umrandet werden (Spalte M), aber das wäre auch nur eine Schönheitskorrektur.
Ich bin ja froh, dass es wenigstens jetzt klappt.
Freut mich sehr ;-).

AW: @Patrick
13.06.2016 17:50:56
Patrick
Hi Werner,
ich in Spalte N werden auch Formeln stehen. ich habe soeben testweise eine Formel eingegeben und den VBA-Code auf Spalte N erweitert. Allerdings wird hier kein automatischer Format durchgeführt...

AW: @Patrick
13.06.2016 18:41:42
Werner
Hallo Patrick,
hier incl. Spalte N
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.Calculation = xlCalculationAutomatic
Dim bereich As Range
Dim zelle As Range
Set bereich = Tabelle3.Range("K2:N1500") 'Bereich mit Formeln, Bereich ggf. anpassen
With Tabelle3
For Each zelle In bereich
If zelle  "" Then
.Range(.Cells(zelle.Row, 1), .Cells(zelle.Row, 14)).Borders.Weight = xlMedium
.Range(.Cells(zelle.Row, 1), .Cells(zelle.Row, 14)).HorizontalAlignment = xlCenter
.Range(.Cells(zelle.Row, 1), .Cells(zelle.Row, 14)).VerticalAlignment = xlCenter
With .Range(.Cells(zelle.Row, 1), .Cells(zelle.Row, 14)).Font
.Name = "Arial"
.Size = 10
.Bold = True
End With
End If
Next
End With
End Sub
Oder so, wenn nur die Zellen einen Rahmen haben sollen, wenn ein Wert ausgewiesen wird.
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.Calculation = xlCalculationAutomatic
Dim bereich As Range
Dim zelle As Range
Set bereich = Tabelle3.Range("K2:N1500") 'Bereich mit Formeln, Bereich ggf. anpassen
With Tabelle3
For Each zelle In bereich
If zelle  "" Then
zelle.Borders.Weight = xlMedium
zelle.HorizontalAlignment = xlCenter
zelle.VerticalAlignment = xlCenter
With zelle.Font
.Name = "Arial"
.Size = 10
.Bold = True
End With
End If
Next
End With
End Sub
Gruß Werner

Anzeige
AW: @Patrick
13.06.2016 21:27:27
Patrick
Hi Werner,
genau wie im ersten Code habe ich es auch angepasst. Aber warum auch immer, funktioniert es nicht. Spalte N formatiert sich nicht und es erscheinen keine Rahmen.
Mit zweiter Formel (habe sie in Diese Arbeitsmappe kopiert, war hoffentlich richtig) werden trotzdem auch leere Zellen mit Rahmen versehen.
Das sieht für mich immer logisch aus, wenn ich mir gewisse Teile der Codes ansehe, aber verstehe nicht, warum es bei mir nicht klappen will. :-(

AW: @Patrick
14.06.2016 10:30:03
Werner
Hallo Patrick,
folgenden Code in "Diese Arbeitsmappe"
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.Calculation = xlCalculationAutomatic
Dim bereich As Range
Dim zelle As Range
Set bereich = Tabelle3.Range("K2:N1500") 'Bereich mit Formeln, Bereich ggf. anpassen
With Tabelle3
For Each zelle In bereich
If zelle  "" Then
zelle.Borders.Weight = xlMedium
zelle.HorizontalAlignment = xlCenter
zelle.VerticalAlignment = xlCenter
With zelle.Font
.Name = "Arial"
.Size = 10
.Bold = True
End With
End If
Next
End With
End Sub
Private Sub Workbook_Open()
Application.Calculation = xlCalculationManual
With Tabelle3
.Unprotect Password:="PW"
.EnableAutoFilter = True
.Protect UserInterfaceOnly:=True, Password:="PW"
End With
End Sub

folgenden Code in "Tabelle3"
Private Sub Worksheet_Calculate()
Dim bereich As Range
Dim zelle As Range
Set bereich = Tabelle3.Range("K2:N1500") 'Bereich mit Formeln, Bereich ggf. anpassen
With Tabelle3
For Each zelle In bereich
If zelle  "" Then
zelle.Borders.Weight = xlMedium
zelle.HorizontalAlignment = xlCenter
zelle.VerticalAlignment = xlCenter
With zelle.Font
.Name = "Arial"
.Size = 10
.Bold = True
End With
End If
Next
End With
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
Dim bereich As Range
Dim zelle As Range
Set bereich = Tabelle3.Range("A2:J1500") 'Bereich mit händischen Eintragungen, ggf. anpassen
With Tabelle3
For Each zelle In bereich
If zelle  "" Then
zelle.Borders.Weight = xlMedium
zelle.HorizontalAlignment = xlCenter
zelle.VerticalAlignment = xlCenter
With zelle.Font
.Name = "Arial"
.Size = 10
.Bold = True
End With
End If
Next
End With
End Sub
Bei mir werden keine leeren Zellen formatiert, Spalte N wird ebenfalls entsprechend formatiert. Das natürlich nur, wenn du eine Neuberechnung durchführst. Du hast ja bei Start der Datei die Berechnung auf "Manuell" eingestellt. Der Code reagiert nur, wenn die Formeln berechnet werden und das passiert halt bei der Einstellung "Manuell" nicht. Also muss eine Neuberechnung angeschoben werden oder die Datei geschlossen werden. In beiden Fällen werden die Formeln berechnet und der Code zur Formatierung startet.
Gruß Werner
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige