Anzeige
Archiv - Navigation
1344to1348
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
Werte in gefilterter Liste hochzählen
17.01.2014 00:07:52
Inge
Hallo EXCEL-Fans,
bitte, kann mir jemand helfen? Ich such' mir 'nen Wolf ...
Meine Datei hat Werte (Zahlen) in der Spalte M. Diese stellen eine Rangfolge der Zeilen(einträge) dar und werden als Wert in die Zelle eingetragen (ist auch okay so). Die Anzahl der Zeilen mit Rang (also mit Eintrag in M) variiert. Die Spalte M hat auch leere Zellen.
Wenn ich eine Zeile lösche, in der in der Spalte M ein 'Rang' eingetragen war (z.B. Rang 20), habe ich in der Rangfolge eine Lücke (Rang 1 - 19 und 21 bis nn). Diese behebe ich bisher manuell (in freie Zelle eine 1 eintragen, Zelle kopieren, in Spalte M benutzerdefinierter Filter 'größer oder gleich' 20, Gehe zu .., Inhalte, nur sichtbare Zellen, Inhalte einfügen, addieren, Filter in M wieder raus, die anfangs eingetragene 1 wieder löschen).
Ich bastele an einem Makro (mit InputBox für den Autofilter), krieg's aber nicht hin. Wahrscheinlich denke ich zu kompliziert. Über Hilfe würde ich mich riesig freuen.
Gruß Inge

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

Betreff
Datum
Anwender
Anzeige
AW: Werte in gefilterter Liste hochzählen
17.01.2014 08:00:28
fcs
Hallo Inge,
die entsprechende Korrektur funktioniert auch ohne setzen des Filters, Die Wertprüfung kann man im Makro einbauen.
Gruß
Franz
Sub RangKorrigieren()
Dim wks As Worksheet
Dim lngZeile As Long
Dim lngRang As Variant
Dim lngSpalte As Long
lngSpalte = 13 'Spalte M = zu korrigierende Spalte
lngRang = Application.InputBox("Ab welcher Zahl soll Rang korrigiert werden?", _
Title:="Rang korrigieren", Type:=1)
If lngRang = False Then Exit Sub
Set wks = ActiveSheet
Application.ScreenUpdating = False
With wks
For lngZeile = 2 To .Cells(.Rows.Count, lngSpalte).End(xlUp)
With .Cells(lngZeile, lngSpalte)
If IsNumeric(.Text) And .Value >= lngRang Then
.Value = .Value - 1
End If
End With
Next
End With
Application.ScreenUpdating = True
End Sub

Anzeige
AW: Werte in gefilterter Liste hochzählen
17.01.2014 15:50:09
Inge
Hallo Franz,
vielen Dank für die schnelle Antwort.
Das Makro erzeugt in der Zeile
For lngZeile = 2 To .Cells(.Rows.Count, lngSpalte).End(xlUp)
bei mir einen "Laufzeitfehler 13 - Typen unverträglich".
Habe ich vielleicht das falsche Format in den Werten oder Zellen? Werte sind Zahlen (mit ISTZAHL geprüft), Zellenformat = Standard.
Gruß Inge

AW: Werte in gefilterter Liste hochzählen
17.01.2014 17:18:03
Inge
.

AW: Werte in gefilterter Liste hochzählen
18.01.2014 01:01:33
fcs
Hallo Inge,
da hab ich noch eine Kleinigkeit übersehen, die mir beim Testen nicht aufgefallen ist.
Gruß
Franz
Sub RangKorrigieren()
Dim wks As Worksheet
Dim lngZeile As Long
Dim lngRang As Variant
Dim lngSpalte As Long
lngSpalte = 13 'Spalte M = zu korrigierende Spalte
lngRang = Application.InputBox("Ab welcher Zahl soll Rang korrigiert werden?", _
Title:="Rang korrigieren", Type:=1)
If lngRang = False Then Exit Sub
Set wks = ActiveSheet
Application.ScreenUpdating = False
With wks
For lngZeile = 2 To .Cells(.Rows.Count, lngSpalte).End(xlUp).Row   'Korrektur
With .Cells(lngZeile, lngSpalte)
If IsNumeric(.Text) And .Value >= lngRang Then
.Value = .Value - 1
End If
End With
Next
End With
Application.ScreenUpdating = True
End Sub

Anzeige
AW: Werte in gefilterter Liste hochzählen
19.01.2014 16:52:01
Inge
Hallo Franz,
fantastisch!! Vielen lieben Dank, das Makro ist mir eine echte Hilfe!
Gruß Inge

314 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige