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

Formel aus einzelnen Zellen löschen

Formel aus einzelnen Zellen löschen
23.04.2020 15:30:01
Tina
Hallo Zusammen,
meine Beispieldatei ist hier: https://www.herber.de/bbs/user/136990.xlsx
Ich arbeite nicht mit einer xlsm Datei, sondern mit Makros in der persönlichen Makromappe, weshalb ich meinen Code unten in den Text kopiere.
Mit meinem Code setze ich in Spalte H ab Zelle 6 eine Formel ein und formatiere sie anschliessend um auf Arial 8 und mittig in der Zelle. Das funktioniert wunderbar.
Allerdings schreibt er mir die Formel natürlich auch in die Zeilen in dennen eigentlich Titel 1 oder 2 stehen.
In Zelle H12+13 soll also nichts stehen oder die Formel muss wieder gelöscht werden.
Der knackpunkt ist, das die Titel nicht immer in der gleichen Zeile stehen. Es handelt sich um eine Angebotsliste die mal 100 Zeilen lang ist und 5 mal durch Titel unterbrochen wird oder nur 5 Zeilen kurz ist mit einem Titel am Anfang.
Kann mir jemand erklären mit welchem Ansatz ich hier weiter komme?

Sub Mitbewerber() ' Makro für Angebotsliste Mitbewerber 23.04.20 cho
Application.ScreenUpdating = False
Call MakroMitbewerber
Call textformatieren
Application.ScreenUpdating = True
End Sub
Sub MakroMitbewerber()
Dim letztezeile As Long
letztezeile = ActiveSheet.Cells(1048576, 2).End(xlUp).Row
On Error Resume Next
ActiveSheet.Range("H6:H" & letztezeile).SpecialCells(xlCellTypeBlanks).Formula = "=SUM(RC[- _
3]*RC[-2])*RC[-1]"
End Sub
Sub textformatieren()
Range("H6:H5000").Select
With Selection.Font
.Name = "Arial"
.Size = 8
End With
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
End With
Range("A1").Select
End Sub

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Formel aus einzelnen Zellen löschen
23.04.2020 15:42:43
MRUTor
Hallo Tina,
ich kann dir das hier anbieten:

Sub Mitbewerber() ' Makro für Angebotsliste Mitbewerber 23.04.20 cho
Application.ScreenUpdating = False
Call MakroMitbewerber
Call textformatieren
Application.ScreenUpdating = True
End Sub
Sub MakroMitbewerber()
Dim letztezeile As Long
Dim rngZelle As Range, rngBereich As Range
letztezeile = ActiveSheet.Cells(1048576, 2).End(xlUp).Row
On Error Resume Next
ActiveSheet.Range("H6:H" & letztezeile).SpecialCells(xlCellTypeBlanks).Formula = "=SUM(RC[- _
3]*RC[-2])*RC[-1]"
Set rngBereich = ActiveSheet.Range("H6:H" & letztezeile)
For Each rngZelle In rngBereich
If rngZelle.Offset(0, -6) Like "Titel*" Then
rngZelle = ""
End If
Next
End Sub
Sub textformatieren()
Range("H6:H5000").Select
With Selection.Font
.Name = "Arial"
.Size = 8
End With
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
End With
Range("A1").Select
End Sub

Gruss Torsten
Anzeige
AW: Formel aus einzelnen Zellen löschen
23.04.2020 16:25:26
Tina
Hallo Torsten,
vielen Dank für deine schnelle Lösung.
Ich habe deinen Code ausprobiert und er funktioniert.
Gibt es eine allgemeine Formulierung für "Titel*" ? Denn die Überschriften heissen leider nicht immer Titel, sondern z.B. "Aktion" , "KW 52 /03" oder auch "Freiland überdacht/plein champ couvert"
Grüsse Tina
AW: Formel aus einzelnen Zellen löschen
23.04.2020 18:53:05
Nepumuk
Hallo Tina,
teste mal:
Option Explicit

Public Sub Mitbewerber() ' Makro für Angebotsliste Mitbewerber 23.04.20 cho
    Application.ScreenUpdating = False
    Call MakroMitbewerber
    Call Textformatieren
    Application.ScreenUpdating = True
End Sub

Private Sub MakroMitbewerber()
    Dim letztezeile As Long, lngRow As Long
    letztezeile = Cells(Rows.Count, 2).End(xlUp).Row
    On Error Resume Next
    Range("H6:H" & letztezeile).SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=SUM(RC[-3]*RC[-2])*RC[-1]"
    On Error GoTo 0
    For lngRow = 6 To letztezeile
        With Cells(lngRow, 8)
            If .Offset(0, -1).MergeCells Then .Value = Empty
        End With
    Next
End Sub

Private Sub Textformatieren()
    With Range("H6:H5000")
        With .Font
            .Name = "Arial"
            .Size = 8
        End With
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
    End With
End Sub

Gruß
Nepumuk
Anzeige
AW: Formel aus einzelnen Zellen löschen
24.04.2020 07:30:24
Tina
Hallo Nepumuk,
vielen Dank für deine Antwort. Ich habe deinen Code getestet und jetzt funktioniert er mit allen Texten. Perfekt.
Ich verstehe die Lösung nicht ganz, werde mich also nochmal mit ein paar Basics befassen.
Grüsse Tina
AW: Formel aus einzelnen Zellen löschen
23.04.2020 19:10:22
Daniel
Hi
Wenn ich mir deine Tabelle so anschauen, dann muss doch nur dort was eingetragen werden, wo auch in Spalte C ein Wert steht.
Probier mal das einfügen der Formel mit
ActiveSheet.Range("C6:C10000").SpecialCells(xlCelltypeConstants).offset(0, 5).Formula = "=SUM(RC[-3]*RC[-2])*RC[-1]"
Gruß Daniel
AW: Formel aus einzelnen Zellen löschen
24.04.2020 07:35:48
Tina
Hallo Daniel,
vielen Dank für deine Antwort.
Ich habe mit Nepumuks Lösung bereits das was ich gesucht habe.
Die Zeile in der der Titel steht, ist ja mit anderen Zellen verbunden. Daher kam ich wohl auch an dieser Stelle nicht weiter.
Ich habe deinen Code ausprobiert und er funktioniert genau so gut wie der andere.
Ich nehme die Variation in meine Sammlung auf und muss auch hier nochmal über die Bücher um die Logik zu verstehen.
Ich bin sehr dankbar für dieses Forum!
Grüsse Tina
Anzeige
AW: Formel aus einzelnen Zellen löschen
24.04.2020 09:42:07
Daniel
Ja, es ist immer besser, Dinge mit mehreren Programmschritten zu lösen als mit einem ;-)
Die logik ist doch einfach: nimm alle Zellen in Spalte C die einen Wert enthalten und trage die Formel dann um 5 Spalten nach rechts versetzt ein.
Bezüglich deiner Titelzeilen.
Ich würde hier keine Zellverbünde erstellen.
Die verkomplizieren meist die Bearbeitung der Datei mit unerwünschten Effekten, die man beachten muss.
Im Prinzip reicht es aus, die Zeilen mit der Hintergrundfarbe weiss zu färben um die Linien zwischen den Spalten verschwinden zu lassen.
Außerdem würde ich die Titeltexte in eine eigene Spalte schreiben (Spalte A und den Rest um 1 nach rechts versetzen).
Das macht es dir einfacher, die Titel auszuwählen und zu bearbeiten.
Gruß Daniel
Anzeige

332 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige