Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
864to868
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
864to868
864to868
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Wenn Zelle "0" diese & 5 Nachbarzellen löschen

Wenn Zelle "0" diese & 5 Nachbarzellen löschen
26.04.2007 19:58:45
Tobi
Hallo, habe aus Euren Forum schon sehr viele Codeschnipsel verwenden können und bin allen Beteiligten für die Veröffentlichung dankbar.
Ich habe auch schon Ansatzlösungen für mein Problem, welches jedoch nicht ganz getroffen wurde.
Problem: Ich habe in der Spalte A & H komplett leere Zellen und Zellen mit einem Zahlenwert 0 oder 5 usw.
Nun möchte ich die beiden Spalten prüfen und die Zellen wo ein Zahlenwert 0 steht sowie die 5 rechten Nachbarzellen löschen und alles andere nach oben schieben.
Die Zellen welche leer sind und keinen Zahlenwert enthalten dürfen jedoch von dieser Aktion nicht betroffen sein.
Hätte jemand einen Lösungsvorschalg.
Ich bin Euch schon jetzt dankbar. TOBI

19
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Wenn Zelle "0" diese & 5 Nachbarzellen lösche
26.04.2007 20:08:15
Worti
Hallo Tobi,
hiermit sollte es gehen:

Sub Del()
Dim lngL As Long
For lngL = Cells(Rows.Count, 1).End(xlUp).Row To 1 Step -1
If Cells(lngL, 1).Value  "" Then
If Cells(lngL, 1).Value = 0 Then
Range("A" & lngL & ":F" & lngL).Delete xlUp
End If
End If
Next lngL
End Sub


Gruß Worti

AW: Wenn Zelle "0" diese & 5 Nachbarzellen lösche
26.04.2007 20:17:00
Tobi
Das geht ja hier wirklich schnell.
Vielen Dank Worti. Macht es mit Spalte A sehr gut.
Nur Spalte H und die 5 danebenliegenden Zellen werden leider nicht abgearbeitet.
gibts da auch noch so ne Turbolösung ?
Dank Dir schon mal ! TOBI

Anzeige
AW: Wenn Zelle "0" diese & 5 Nachbarzellen lösche
26.04.2007 20:24:45
Worti
Hallo Tom,
Schleife einfach doppeln und an Spalte H anpassen:

Sub Del()
Dim lngL As Long
For lngL = Cells(Rows.Count, 1).End(xlUp).Row To 1 Step -1
If Cells(lngL, 1).Value  "" Then
If Cells(lngL, 1).Value = 0 Then
Range("A" & lngL & ":F" & lngL).Delete xlUp
End If
End If
Next lngL
For lngL = Cells(Rows.Count, 8).End(xlUp).Row To 1 Step -1
If Cells(lngL, 8).Value  "" Then
If Cells(lngL, 8).Value = 0 Then
Range("H" & lngL & ":M" & lngL).Delete xlUp
End If
End If
Next lngL
End Sub


Gruß Worti

Anzeige
AW: Wenn Zelle "0" diese & 5 Nachbarzellen lösche
26.04.2007 20:30:26
Tobi
Worti - Du bist Spitze.
Allerletzte Frage: Wenn ich die Zellen so gelöscht habe raube ich meinen Summenzellen die Aktoren.
Ergebnis ist dann immer: =SUMME(#BEZUG!)
Kann ich das "=SUMME(#BEZUG!)" auch automatisch nachträglich mit 0 füllen lassen ?
Danke Tobi

AW: Wenn Zelle "0" diese & 5 Nachbarzellen lösche
26.04.2007 20:43:00
Worti
In welchen Zellen stehen den deine Formeln? Lieg ich richtig, dass sie in jeder Zeile in Spalte G und in Spalte N stehen?
Gruß Worti

AW: Wenn Zelle "0" diese & 5 Nachbarzellen lösche
26.04.2007 20:56:00
Tobi
Spalte A = Anzahl * Spalte B = Bezeichnung * Spalte C-E = hoch/breit/tief * Spalte F = Summe
A * B C * D * E * F
1 * Brett * 100 *30 *220 *0,66 m³
1 *Stuhl *120 *80 *100 *0,96 m³
0 *Blume *42 *34 41 * 0,00 m³
10 * Bücher * 42 *34 *41 *0,59 m³
10 * Bild * 42 * 34 * 41 * 0,59 m³
0 * US * 42 * 34 * 41 * 0,00 m³
* Summe * * * 2,21 m³
So sieht es aus.
Manchmal auch so:
A * B * C * D * E * F
0 * Brett * 100 * 30 *220 *0,00 m³
0 * Stuhl * 120 * 80 *100 *0,00 m³
0 * Blume * 42 *34* 41 * 0,00 m³
0 * Bücher * 42 *34 *41 *0,00 m³
0 * Bild * 42 * 34 * 41 * 0,00 m³
0 * US * 42 * 34* 41 * 0,00 m³
* Summe *** 0,00 m³
wenn in A alles auf NULL steht bleibt nur Summe übrig.
Statt NULL steht dann jedoch "=SUMME(#BEZUG!)"
Danke Tobi

Anzeige
AW: Wenn Zelle "0" diese & 5 Nachbarzellen lösche
26.04.2007 21:09:00
Worti
Hallo Tobi,
poste doch mal bitte die Formel aus Spalte F.

AW: Wenn Zelle "0" diese & 5 Nachbarzellen lösche
26.04.2007 21:17:00
Tobi
Spalte A = Anzahl * Spalte B = Bezeichnung * Spalte C-E = hoch/breit/tief * Spalte F = Summe
A * B C * D * E * F
1 * Brett * 100 *30 *220 *0,66 m³ --> SP F "=E6*D6*C6/1000000*A6"
1 *Stuhl *120 *80 *100 *0,96 m³ --> SP F "=E7*D7*C7/1000000*A7"
0 *Blume *42 *34 41 * 0,00 m³ --> SP F "=E8*D8*C8/1000000*A8"
10 * Bücher * 42 *34 *41 *0,59 m³ --> SP F "=E9*D9*C9/1000000*A9"
* Summe * * * 2,21 m³ --> SP F "=SUMME(F6:F9)"
Neues Prob erkannt : nach dem löschen von Zwischenzeilen wird nicht immer
die Summenformel richtig an die neuen Zellbereiche angepasst.
Ich hoffe Du kannst es verstehen soll ich mal eine unbearbeitete und eine bearbeitete Version
hochladen ?
Danke Tobi

Anzeige
AW: Wenn Zelle "0" diese & 5 Nachbarzellen lösche
26.04.2007 21:29:00
Worti
Hallo Tobi,
lade mal hoch. Komm aber jetzt noch nicht dazu, hab grad besuch bekommen. Meld mich später nochmal, vielleicht auch erst morgen früh.
Gruß Worti

Dateien hochgeladen
26.04.2007 23:04:00
Tobi
Freue mich über deine weitere Hilfe - gerne auch erst Morgen.
Zur Erklärung:
Status 1: so kommt die csv vom Server:
https://www.herber.de/bbs/user/42052.xls
Status 2: hier habe ich Formeln und Formate hinzugefügt
https://www.herber.de/bbs/user/42053.xls
Status 3: hier habe ich die Nuller mit Deinem Script entfernt
https://www.herber.de/bbs/user/42054.xls
Wenn Du noch was brauchst sags ruhig ! Ich bin gerade am Überarbeiten meines Codes zum Umwamdeln von Stufe 1 zu 2. Die Summenformelnfehlern beruhten wohl auf einen Progi-Bug.
Danke TOBI

Anzeige
Hier noch mein Script
27.04.2007 00:34:00
Tobi
hier noch mein überarbeitetes Script:

Sub Liste()
' Liste Makro
' Tastenkombination: Strg+l
#   markiere Spalte und füge eine neue mit Verschiebung nach rechts ein
Columns("F:F").Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
#   setze von Spaltenbreiten
Columns("A:A").ColumnWidth = 7.00
Columns("B:B").ColumnWidth = 25.00
Columns("C:C").ColumnWidth = 9.00
Columns("D:D").ColumnWidth = 9.00
Columns("E:E").ColumnWidth = 9.00
Columns("F:F").ColumnWidth = 11.00
Columns("G:G").ColumnWidth = 3.00
Columns("H:H").ColumnWidth = 7.00
Columns("I:I").ColumnWidth = 25.00
Columns("J:J").ColumnWidth = 9.00
Columns("K:K").ColumnWidth = 9.00
Columns("L:L").ColumnWidth = 9.00
Columns("M:M").ColumnWidth = 11.00
#   markiere Zellen und schneide die Zellen mit Verschiebung nach oben aus
Range("A3:M3").Select
Selection.Delete Shift:=xlUp
Range("H24:L24").Select
Selection.Delete Shift:=xlUp
Range("A24:F24").Select
Selection.Delete Shift:=xlUp
Range("A59:M59").Select
Selection.Delete Shift:=xlUp
Range("A59:F59").Select
Selection.Delete Shift:=xlUp
Range("H59:M59").Select
Selection.Delete Shift:=xlUp
Range("A115:M115").Select
Selection.Delete Shift:=xlUp
Range("A115:M115").Select
Selection.Delete Shift:=xlUp
#   markiere Zellen und füge eine neue Zeile mit Verschiebung nach unten ein
Range("A4:M4").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Range("A60:F60").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Range("H60:M60").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Range("A23:F23").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Range("H32:M32").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Range("A61:F61").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Range("H62:M62").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Range("A91:F91").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Range("H92:M92").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Range("H108:M108").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Range("A120:F120").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Range("H121:M121").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Range("A138:F138").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Range("H151:M151").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
#   schneide Zellen aus und füge Sie woanders ein
Range("C25").Select
Selection.Cut
Range("B25").Select
ActiveSheet.Paste
Range("C121").Select
Selection.Cut
Range("B121").Select
ActiveSheet.Paste
#   lege in Spalte F & M das Format m³ fest
Columns("F:F").Select
Selection.NumberFormat = "0.00 ""m³"""
Columns("M:M").Select
Selection.NumberFormat = "0.00 ""m³"""
#   mache Zelle rot
Range("B5,B25,B63,B92,B121,B139,I152,I122,I109,I93,I63,I34,I5").Select
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorAccent2
.TintAndShade = 0.799981688894314
.PatternTintAndShade = 0
End With
#   fügt die Summenschriftfelder ein
Range("B23").Select
ActiveCell.FormulaR1C1 = "Summe"
Range("B61").Select
ActiveCell.FormulaR1C1 = "Summe"
Range("B90").Select
ActiveCell.FormulaR1C1 = "Summe"
Range("B119").Select
ActiveCell.FormulaR1C1 = "Summe"
Range("B137").Select
ActiveCell.FormulaR1C1 = "Summe"
Range("B177").Select
ActiveCell.FormulaR1C1 = "Summe"
Range("I178").Select
ActiveCell.FormulaR1C1 = "Summe"
Range("I150").Select
ActiveCell.FormulaR1C1 = "Summe"
Range("I120").Select
ActiveCell.FormulaR1C1 = "Summe"
Range("I107").Select
ActiveCell.FormulaR1C1 = "Summe"
Range("I91").Select
ActiveCell.FormulaR1C1 = "Summe"
Range("I61").Select
ActiveCell.FormulaR1C1 = "Summe"
Range("I32").Select
ActiveCell.FormulaR1C1 = "Summe"
#   gehe in Zelle & füge Summenformel ein, kopiere diese bis Ende Block
Range("F6").Select
ActiveCell.FormulaR1C1 = "=RC[-1]*RC[-2]*RC[-3]/1000000*RC[-5]"
Range("F6:F22").Select
Selection.FillDown
Range("F26").Select
ActiveCell.FormulaR1C1 = "=RC[-1]*RC[-2]*RC[-3]/1000000*RC[-5]"
Range("F26:F60").Select
Selection.FillDown
Range("F64").Select
ActiveCell.FormulaR1C1 = "=RC[-1]*RC[-2]*RC[-3]/1000000*RC[-5]"
Range("F64:F89").Select
Selection.FillDown
Range("F93").Select
ActiveCell.FormulaR1C1 = "=RC[-1]*RC[-2]*RC[-3]/1000000*RC[-5]"
Range("F93:F118").Select
Selection.FillDown
Range("F122").Select
ActiveCell.FormulaR1C1 = "=RC[-1]*RC[-2]*RC[-3]/1000000*RC[-5]"
Range("F122:F136").Select
Selection.FillDown
Range("F140").Select
ActiveCell.FormulaR1C1 = "=RC[-1]*RC[-2]*RC[-3]/1000000*RC[-5]"
Range("F140:F176").Select
Selection.FillDown
Range("M6").Select
ActiveCell.FormulaR1C1 = "=RC[-1]*RC[-2]*RC[-3]/1000000*RC[-5]"
Range("M6:M31").Select
Selection.FillDown
Range("M35").Select
ActiveCell.FormulaR1C1 = "=RC[-1]*RC[-2]*RC[-3]/1000000*RC[-5]"
Range("M35:M60").Select
Selection.FillDown
Range("M64").Select
ActiveCell.FormulaR1C1 = "=RC[-1]*RC[-2]*RC[-3]/1000000*RC[-5]"
Range("M64:M90").Select
Selection.FillDown
Range("M94").Select
ActiveCell.FormulaR1C1 = "=RC[-1]*RC[-2]*RC[-3]/1000000*RC[-5]"
Range("M94:M106").Select
Selection.FillDown
Range("M110").Select
ActiveCell.FormulaR1C1 = "=RC[-1]*RC[-2]*RC[-3]/1000000*RC[-5]"
Range("M110:M119").Select
Selection.FillDown
Range("M123").Select
ActiveCell.FormulaR1C1 = "=RC[-1]*RC[-2]*RC[-3]/1000000*RC[-5]"
Range("M123:M149").Select
Selection.FillDown
Range("M153").Select
ActiveCell.FormulaR1C1 = "=RC[-1]*RC[-2]*RC[-3]/1000000*RC[-5]"
Range("M153:M177").Select
Selection.FillDown
#   gehe in Zelle und füge Summenformel von - bis ein
Range("F23").Select
ActiveCell.FormulaR1C1 = "=SUM(R[-17]C:R[-1]C)"
Range("F61").Select
ActiveCell.FormulaR1C1 = "=SUM(R[-35]C:R[-1]C)"
Range("F90").Select
ActiveCell.FormulaR1C1 = "=SUM(R[-26]C:R[-1]C)"
Range("F119").Select
ActiveCell.FormulaR1C1 = "=SUM(R[-26]C:R[-1]C)"
Range("F137").Select
ActiveCell.FormulaR1C1 = "=SUM(R[-15]C:R[-1]C)"
Range("F177").Select
ActiveCell.FormulaR1C1 = "=SUM(R[-37]C:R[-1]C)"
Range("M32").Select
ActiveCell.FormulaR1C1 = "=SUM(R[-26]C:R[-1]C)"
Range("M61").Select
ActiveCell.FormulaR1C1 = "=SUM(R[-26]C:R[-1]C)"
Range("M91").Select
ActiveCell.FormulaR1C1 = "=SUM(R[-27]C:R[-1]C)"
Range("M107").Select
ActiveCell.FormulaR1C1 = "=SUM(R[-13]C:R[-1]C)"
Range("M120").Select
ActiveCell.FormulaR1C1 = "=SUM(R[-10]C:R[-1]C)"
Range("M150").Select
ActiveCell.FormulaR1C1 = "=SUM(R[-27]C:R[-1]C)"
Range("M178").Select
ActiveCell.FormulaR1C1 = "=SUM(R[-25]C:R[-1]C)"
#   mache Zelle gelb
Range("B23,F23,B61,F61,B90,F90,B119,F119,B137,F137,B177,F177,I32,M32,I61,M61,I91,M91,I107, _
M107,I120,M120,I150,M150,I178,M178").Select
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 65535
.TintAndShade = 0
.PatternTintAndShade = 0
End With
#   fügt die Gesamt-Summenfelder & Stückzahl ein
Range("I1").Select
ActiveCell.FormulaR1C1 = "Gesamtkubikmeter"
Range("I2").Select
ActiveCell.FormulaR1C1 = "Gesamtstückzahl"
Range("I1:I2").Select
Selection.Font.Size = 12
Selection.Font.Bold = True
With Selection.Font
.Color = -16776961
.TintAndShade = 0
End With
#   verbinden von Zellen
Range("J1:K1").Select
With Selection
.HorizontalAlignment = xlGeneral
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = True
End With
Range("J2:K2").Select
With Selection
.HorizontalAlignment = xlGeneral
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = True
End With
#   Gesamtkubikmeter berechnen
Range("J1:K1").Select
ActiveCell.FormulaR1C1 = _
"=R[22]C[-4]+R[60]C[-4]+R[89]C[-4]+R[118]C[-4]+R[176]C[-4]+R[177]C[3]+R[149]C[3]+R[119] _
C[3]+R[106]C[3]+R[90]C[3]+R[60]C[3]+R[31]C[3]"
Range("J2:K2").Select
#   Gesamtstückzahl berechnen
Range("J2:K2").Select
ActiveCell.FormulaR1C1 = _
"=SUM(R[2]C[-9]:R[178]C[-9])+(SUM(R[2]C[-2]:R[178]C[-2]))"
Range("J2:K2").Select
#   Endungen & Formatierung oben festlegen
Range("J1:K1").Select
Selection.NumberFormat = "0.00 ""m³"""
Range("J2:K2").Select
Selection.NumberFormat = "0 ""Stück"""
Range("J1:K2").Select
Range("J2").Activate
Selection.Font.Bold = True
With Selection.Font
.Color = -16776961
.TintAndShade = 0
End With
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
End With
#   Absätze sortieren
Range("A6:F22").Select
ActiveWorkbook.Worksheets(1).Sort.SortFields.Clear
ActiveWorkbook.Worksheets(1).Sort.SortFields.Add _
Key:=Range("A6"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption _
:=xlSortNormal
With ActiveWorkbook.Worksheets(1).Sort
.SetRange Range("A6:F22")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("A26:F60").Select
ActiveWorkbook.Worksheets(1).Sort.SortFields.Clear
ActiveWorkbook.Worksheets(1).Sort.SortFields.Add _
Key:=Range("A26"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption _
:=xlSortNormal
With ActiveWorkbook.Worksheets(1).Sort
.SetRange Range("A26:F60")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("A64:F89").Select
ActiveWorkbook.Worksheets(1).Sort.SortFields.Clear
ActiveWorkbook.Worksheets(1).Sort.SortFields.Add _
Key:=Range("A64"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption _
:=xlSortNormal
With ActiveWorkbook.Worksheets(1).Sort
.SetRange Range("A64:F89")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("A93:F118").Select
ActiveWorkbook.Worksheets(1).Sort.SortFields.Clear
ActiveWorkbook.Worksheets(1).Sort.SortFields.Add _
Key:=Range("A93"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption _
:=xlSortNormal
With ActiveWorkbook.Worksheets(1).Sort
.SetRange Range("A93:F118")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("A122:F136").Select
ActiveWorkbook.Worksheets(1).Sort.SortFields.Clear
ActiveWorkbook.Worksheets(1).Sort.SortFields.Add _
Key:=Range("A122"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption _
:=xlSortNormal
With ActiveWorkbook.Worksheets(1).Sort
.SetRange Range("A122:F136")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("A140:F176").Select
ActiveWorkbook.Worksheets(1).Sort.SortFields.Clear
ActiveWorkbook.Worksheets(1).Sort.SortFields.Add _
Key:=Range("A140"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption _
:=xlSortNormal
With ActiveWorkbook.Worksheets(1).Sort
.SetRange Range("A140:F176")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("H6:M31").Select
ActiveWorkbook.Worksheets(1).Sort.SortFields.Clear
ActiveWorkbook.Worksheets(1).Sort.SortFields.Add _
Key:=Range("H6"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption _
:=xlSortNormal
With ActiveWorkbook.Worksheets(1).Sort
.SetRange Range("H6:M31")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("H35:M60").Select
ActiveWorkbook.Worksheets(1).Sort.SortFields.Clear
ActiveWorkbook.Worksheets(1).Sort.SortFields.Add _
Key:=Range("H35"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption _
:=xlSortNormal
With ActiveWorkbook.Worksheets(1).Sort
.SetRange Range("H35:M60")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("H64:M90").Select
ActiveWorkbook.Worksheets(1).Sort.SortFields.Clear
ActiveWorkbook.Worksheets(1).Sort.SortFields.Add _
Key:=Range("H64"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption _
:=xlSortNormal
With ActiveWorkbook.Worksheets(1).Sort
.SetRange Range("H64:M90")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("H94:M106").Select
ActiveWorkbook.Worksheets(1).Sort.SortFields.Clear
ActiveWorkbook.Worksheets(1).Sort.SortFields.Add _
Key:=Range("H94"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption _
:=xlSortNormal
With ActiveWorkbook.Worksheets(1).Sort
.SetRange Range("H94:M106")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("H110:M119").Select
ActiveWorkbook.Worksheets(1).Sort.SortFields.Clear
ActiveWorkbook.Worksheets(1).Sort.SortFields.Add _
Key:=Range("H110"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption _
:=xlSortNormal
With ActiveWorkbook.Worksheets(1).Sort
.SetRange Range("H110:M119")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("H123:M149").Select
ActiveWorkbook.Worksheets(1).Sort.SortFields.Clear
ActiveWorkbook.Worksheets(1).Sort.SortFields.Add _
Key:=Range("H123"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption _
:=xlSortNormal
With ActiveWorkbook.Worksheets(1).Sort
.SetRange Range("H123:M149")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("H153:M177").Select
ActiveWorkbook.Worksheets(1).Sort.SortFields.Clear
ActiveWorkbook.Worksheets(1).Sort.SortFields.Add _
Key:=Range("H153"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption _
:=xlSortNormal
With ActiveWorkbook.Worksheets(1).Sort
.SetRange Range("H153:M177")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
#   oben auswählen & speichern als xls
Range("A4").Select
ChDir "C:\............."
ActiveWorkbook.SaveAs _
FileFormat:=xlExcel5, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False
#   Nuller entfernen
Dim lngL As Long
For lngL = Cells(Rows.Count, 1).End(xlUp).Row To 1 Step -1
If Cells(lngL, 1).Value  "" Then
If Cells(lngL, 1).Value = 0 Then
Range("A" & lngL & ":F" & lngL).Delete xlUp
End If
End If
Next lngL
For lngL = Cells(Rows.Count, 8).End(xlUp).Row To 1 Step -1
If Cells(lngL, 8).Value  "" Then
If Cells(lngL, 8).Value = 0 Then
Range("H" & lngL & ":M" & lngL).Delete xlUp
End If
End If
Next lngL
End Sub


Anzeige
AW: Hier noch mein Script
27.04.2007 07:10:49
Matthias
Hallo Tobi,
Habe gerade mal ein wenig experimentiert.
Also nur mit dem Code von Worti nicht mit Deinem Script
wenn Du in jedem Zimmer eine "Dummy-Eins" einträgst, sowie
Deine SummenFormeln alle auf Absolut setzt sollte es gehen!
vor dem Code:
Userbild
nach dem Code:
Userbild
Gruß Matthias

AW: Hier noch mein Script
27.04.2007 08:04:46
Tobi
Hallo Matthias, danke für den Denkansatz. Momentan fülle ich die Zellen mit "=SUMME(#BEZUG!)" manuell einfach mit einer Null. Die Dummy 1 bauscht die optische Größe zusehr auf. Kann man das Füllen nicht automatisch machen ?
Danke TOBI

Anzeige
Probier mal ...
27.04.2007 08:53:00
Matthias
Hi,

Sub BezuegeAendern()
Cells.Select
Range("C1").Activate
Selection.Replace What:="=SUMME(#BEZUG!)", Replacement:="0", LookAt:= _
xlPart, SearchOrder:=xlByRows, MatchCase:=False
Range("C1").Select
End Sub


Userbild
Gruß Matthias

schade
27.04.2007 09:24:00
Tobi
Geht leider nicht - hatte ich auch schon heute Nacht probiert.
Oder ging das etwa bei Dir ?
Trotzdem Danke Matthias

AW: schade
27.04.2007 09:49:00
Matthias
Hi,
erst das Makro von Worti,
dan Rest mache doch einfach händisch
Userbild
das funzt auf jeden Fall
Gruß Matthias

Anzeige
AW: Wenn Zelle "0" diese & 5 Nachbarzellen lösche
27.04.2007 17:48:00
Tobi
Hallo Matthias,
Danke für die Tipps. Gehen jedoch leider nicht.
Auch funzt dies nicht:
Cells.Replace What:="=SUMME(#BEZUG!)", Replacement:="0", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Weis nicht mehr weiter. Manuell ist immer eine Lösung - aber ja nicht unbedingt unser Anspruch.
Bis dann
TOBI

AW: Wenn Zelle "0" diese & 5 Nachbarzellen lösche
27.04.2007 18:03:23
Tobi
Ich glaube ich habe eine für mich akzeptable Lösung gefunden:
Ich ziehe die Summenfelder alle eine Zelle weiter nach oben wo eh nichts drinn steht. Dann habe ich auch wenn alle nuller gelöscht sind keinen Fehlbezug mehr.
Dank an alle für die Hilfe !
Wer es besser weis - ich freue mich über jede Anregung.

Anzeige
gratuliere ...
27.04.2007 20:53:36
Matthias
Hi, Tobi.
Gratuliere ... Deine Lösung ist goldrichtig!
Beim Umschreiben der Formeln wirst Du auch sicher merken, das
einige der Summen falsch gesetzt waren.
Denke nun aber daran die Summenformeln auf ABSOLUT ZU SETZTEN!
Dann Worti's Code laufen lassen - fertig.
Gruß Matthias

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige