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

nur Werte berücksichtigen keine Formeln

nur Werte berücksichtigen keine Formeln
25.09.2006 13:20:37
volker
Hai Leute,
ich hab von Franz folgendes makro.
Hier wird nach einem Bereich abgefragt. Ist dieser kleiner 1 wird das Sheet gelöscht.
Wie kann ich sagen nur Werte berücksichtigen, KEINE Formeln.

Sub BlaetterLoeschen()
Dim wks As Worksheet
For Each wks In ActiveWorkbook.Worksheets
With wks
Select Case .Name
Case "Holzliste", "Zeiten", "Laufkarte"
'do nothing
Case Else
If Application.WorksheetFunction.CountA(.Range("A7:A31"), .Range("A39:A64")) < 1 Then
Application.DisplayAlerts = False
.Delete
Application.DisplayAlerts = True
End If
End Select
End With
Next wks
End Sub

Danke volker

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: nur Werte berücksichtigen keine Formeln
25.09.2006 13:33:45
Oliver
Am besten nur die Zellen markieren, die Zahlen und keine Formeln beinhalten:
Selection.SpecialCells(xlCellTypeConstants, 1).Select
Viele Grüße Oliver
AW: nur Werte berücksichtigen keine Formeln
25.09.2006 14:17:20
volker
Hai,
da das makro automatisch ablaufen soll stelle ich mir eine Lösung vor bei der mein code mit "format" "value" ergänzt wird.
Ich weiss nur nicht so recht wie.
Danke Gruss volker
AW: nur Werte berücksichtigen keine Formeln
25.09.2006 15:44:08
IngGi
Hallo Volker,
der Ansatz von Oliver läßt sich doch wunderbar in dein Makro integrieren, so dass einem automatischen Ablauf nichts im Wege steht:
If Application.WorksheetFunction.CountA(.Range("A7:A31").SpecialCells(xlCellTypeConstants, 1), _
.Range("A39:A64").SpecialCells(xlCellTypeConstants, 1)) < 1 Then
Gruß Ingolf
Anzeige
AW: nur Werte berücksichtigen keine Formeln
25.09.2006 15:59:59
volker
Aha,
ich konnts nicht intergrieren und habs deshalb wahrscheinlich falsch verstanden.
Nun hab ichs drin, aber das makro hält genau an dieser Stelle.
Habs nochmal im gesamten reinkopiert
Kannst Du (Ihr) das nochmals anschauen? Danke Gruss volker

Sub BlaetterLoeschen()
Dim wks As Worksheet
For Each wks In ActiveWorkbook.Worksheets
With wks
Select Case .Name
Case "Holzliste", "Zeiten", "Laufkarte"
'do nothing
Case Else
If Application.WorksheetFunction.CountA(.Range("A7:A31").SpecialCells(xlCellTypeConstants, 1), _
.Range("A39:A64").SpecialCells(xlCellTypeConstants, 1)) < 1 Then
Application.DisplayAlerts = False
.Delete
Application.DisplayAlerts = True
End If
End Select
End With
Next wks
End Sub

Anzeige
AW: nur Werte berücksichtigen keine Formeln
25.09.2006 17:27:51
IngGi
Hallo Volker,
nachdem ich mit der WorksheetFuncion erfolglos ein bisschen rumprobiert habe, mal ein anderer Ansatz:

Sub BlaetterLoeschen()
Dim wks As Worksheet, rng As Range, loeschen As Integer
For Each wks In ActiveWorkbook.Worksheets
With wks
Select Case .Name
Case "Holzliste", "Zeiten", "Laufkarte"
'do nothing
Case Else
For Each rng In .Range("A7:A37")
'loeschen erhöhen, wenn Formel oder leer
If Not rng.HasFormuula Or rng = "" Then loeschen = loeschen + 1
Next 'rng
For Each rng In .Range("A39:A64")
'loeschen erhöhen, wenn Formel oder leer
If Not rng.HasFormula Or rng = "" Then loeschen = loeschen + 1
Next 'rng
'Blatt löschen, wenn alle 57 Zellen (A7:A31 und A39:A64) Formeln oder leer
If loeschen = 57 Then
Application.DisplayAlerts = False
.Delete
Application.DisplayAlerts = True
End If
End Select
End With
Next wks
End Sub
Gruß Ingolf
Anzeige
AW: nur Werte berücksichtigen keine Formeln
26.09.2006 07:49:38
volker
Hai Ingolf,
vielen Dank dass Du Dich der Sache so ausgiebig animmst. Leider läuft das makro immer noch nicht durch. Es bleibt in der abgesetzten Zeile stehen (siehe Code)
Danke Gruss volker

Sub BlaetterLoeschen()
Dim wks As Worksheet, rng As Range, loeschen As Integer
For Each wks In ActiveWorkbook.Worksheets
With wks
Select Case .Name
Case "Holzliste", "Zeiten", "Laufkarte"
'do nothing
Case Else
For Each rng In .Range("A7:A37")
'loeschen erhöhen, wenn Formel oder leer
If Not rng.HasFormuula Or rng = "" Then loeschen = loeschen + 1
Next 'rng
For Each rng In .Range("A39:A64")
'loeschen erhöhen, wenn Formel oder leer
If Not rng.HasFormula Or rng = "" Then loeschen = loeschen + 1
Next 'rng
'Blatt löschen, wenn alle 57 Zellen (A7:A31 und A39:A64) Formeln oder leer
If loeschen = 57 Then
Application.DisplayAlerts = False
.Delete
Application.DisplayAlerts = True
End If
End Select
End With
Next wks
End Sub

Anzeige
AW: nur Werte berücksichtigen keine Formeln
26.09.2006 08:48:29
IngGi
Hallo Volker,
da ist noch ein Schreibfehler drin. Außerdem hab ich vergessen, das "Not" zu löschen. Ursprünglich hatte ich das Ganze anders aufgebaut. Hier nochmal die verbesserte Zeile im Ganzen:
If rng.HasFormula Or rng = "" Then loeschen = loeschen + 1
Das "Next 'rng ist dann übrigens schon wieder eine neue Zeile.
Gruß Ingolf
Danke jetzt passts!!
26.09.2006 10:41:28
volker
schönen Tag Gruss volker

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige