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

Zahlenreihe bearbeiten

Zahlenreihe bearbeiten
29.05.2006 23:20:15
Martin
Hallo VBA-Cracks,
ich habe ein Makro geschrieben, um folgendes Problem zu lösen: Ich habe eine Zahlenreihe, die mit 3599001 beginnt. Die nächste Zahl ist jeweils 1 grösser. Die letzte Zahl ist variabel, liegt jedoch im Bereich von 3599400. Dazu habe ich eine zweite Menge von rund 20 Zahlen, die alle irgendwo innerhalb der Zahlenreihe liegen. Diese Menge von Zahlen muss mein Makro nun aus der Zahlenreihe löschen. Mein Makro dafür lautet:

Sub test()
Dim B As Long, C As Long
a1:
B = Range("C1").Value
Range("A1").Select
Cells.Find(What:=B, After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:= _
False).Activate
ActiveCell.Delete
Range("C1").Select
Selection.Delete Shift:=xlUp
If ActiveCell.Value > "0" Then
GoTo a1
Else
MsgBox "ich bin fertig"
End If
End Sub
Das Makro benötigt natürlich reichlich Zeit, um die Aufgabe zu lösen. Meine Frage deshalb: Gibt es einen besseren Ansatz, um die Aufgabe zu lösen, als dass ich gewählt habe?
Herzlichen Dank für Eure Hilfe und Liebgruss
Martin

		

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

Betreff
Datum
Anwender
Anzeige
AW: Zahlenreihe bearbeiten
29.05.2006 23:36:25
Glen
Hi,
lass alle select und activate weg, wenn du nicht weißt wie, nutz die Recherche.
mfg Glen
AW: Zahlenreihe bearbeiten
29.05.2006 23:46:07
martin
Ciao Glen,
verstehe leider nicht, wie mein Makro dann aussehen soll, wenn ich alle select und activate weglasse. Wie meinst du das genau?
Gruss
Martin
AW: Zahlenreihe bearbeiten
30.05.2006 00:36:16
Daniel
Hallo
ganz einfach. Statt
sheets("Tabelle1").select
Range("A1").select
selection.value = "Hallo"
kann man auch einfach schreiben:
Sheets("Tabelle1").Range("A1").Value = "Hallo"
Macht das ganze schneller und einfacher zum Verstehen.
Hier jetzt mal ne schnelle lösung für dein Problem:
Voraussetzung:
- die Zahlenreihe steht lückenlos in der Spalte A, beginnend mit A1
- die Zahlen, die aus der Zahlenreihe gelöscht werden sollen, stehen lückenlos in der Spalte C, beginnend mit C1
- die Spalte B ist frei (die wird für eine kurze Zwischenrechnung benötigt.

Sub Löschen()
Dim Zahlenreihe As Range
Dim LöschMengeAddr As String
Set Zahlenreihe = Range(Range("A1"), Range("A1").End(xlDown))
LöschMengeAddr = Range(Range("C1"), Range("C1").End(xlDown)).Address
Zahlenreihe.Offset(0, 1).FormulaLocal = "=WENN(ZÄHLENWENN(" & LöschMengeAddr & ";A1)>0;#NV;1)"
Range("B:B").SpecialCells(xlCellTypeFormulas, 16).Offset(0, -1).Delete shift:=xlUp
Range("B:B").ClearContents
End Sub

Gruß, Daniel Eisert
Anzeige
AW: Zahlenreihe bearbeiten
30.05.2006 15:03:35
Martin
Ciao Daniel,
herzlichen Dank für deine Erklärung und den Makro-Vorschlag. Ich habe ihn ausprobiert. Leider muss er irgendwo noch einen Fehler haben, denn er hat nur die erste zu löschende Zahl gelöscht und die anderen nicht. Mal schauen, ob ich den Hacken erkenne, meine VBA-Kenntniss sind leider beschränkt.
Gruss
martin
AW: Zahlenreihe bearbeiten
30.05.2006 23:03:52
Daniel
Hallo,
kannst du mal die Beispieldatei hochladen, dann kann ichs mir mal ansehen.
Sind in deinen Daten vielleicht irgendwelche Leerzellen?
so wie ichs geschrieben habe, dürfen zwischen den Zahlen keine Leerzeilen vorkommen.
Gruß, Daniel

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige