Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1200to1204
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

ActiveCell.Offset(1, 0).Select

ActiveCell.Offset(1, 0).Select
Sandra
Hallo zusammen,
ich habe in einem großem Makro - nicht selbst geschrieben - u.a. die Zeile ActiveCell.Offset(1, 0).Select
Das funktioniert auch alles prima. Wo es nicht funktioniert, ist, wenn der Bereich gefiltert ist. Hier wird nicht die nächste gefilterte Zeile ansprungen, sondern das Makro läuft z.B. Zeile 1,2,3,4,5 usw.
Kann man dem Makro auch sagen, springe in die nächste Zeile des ausgesuchten Filters (also z.B.
von Zeile 5 direkt in Zeile 22 und dann in Zeile 139....)
Danke schön und viele Grüße
Sandra

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
Nächste Zeile in gefilterter Liste markieren
25.02.2011 16:32:36
NoNet
Hallo Sandra,
hier ein Ansatz, der zwar nicht sonderlich elegant ist, aber immerhin funktioniert :
Sub AutofilterNaechsteZeileMarkieren()
Dim rngBereich As Range, lngZ As Long
Set rngBereich = ActiveCell.EntireColumn
For lngZ = ActiveCell.Row + 1 To rngBereich.Cells(rngBereich.Rows.Count, 1).End(xlUp).Row
If Not Rows(lngZ).Hidden Then
Cells(lngZ, rngBereich.Column).Select
lngZ = rngBereich.Cells(rngBereich.Rows.Count, 1).End(xlUp).Row
End If
Next
End Sub
Gruß, NoNet
AW: Nächste Zeile in gefilterter Liste markieren
25.02.2011 17:52:50
Sandra
Hallo NoNet,
vielen Dank für Deine Hilfe!
Ich werde mal schauen, ob ich das in das Makro eingebaut bekomme.
Viele Grüße
Sandra
Anzeige
Noch eine Frage
28.02.2011 22:01:46
Sandra
Hallo NoNet, hallo die anderen,
der Code funktioniert - allerdings noch mit der Einschränkung, dass ich das Makro immer wieder neu aufrufen muss.
Wie müsste der Code aussehen, wenn das Makro in einer Schleife alle gefilterten Zeilen abarbeitet?
Vielleicht einfach nur mit der Aufgabe, in die Zeile das Wort "Test" schreiben, damit ich besser nachvollziehen kann, wo ich etwas ändern muss?
ActiveCell.Offset(0, 1).Value = "Test"
VIelen Dank!
Liebe GRüße
Sandra
AW: Noch eine Frage
28.02.2011 23:24:46
mpb
Hallo Sandra,
ich nehme mal an, in Zeile 1 stehen Spaltenüberschriften und der zu filternde Bereich beginnt ab Zeile 2. Füge eine Hilfsspalte hinzu, z.B. Spalte E, in die für gefilterte Zeilen "Test" geschirben werden soll, gib der Spalte eine Überschrift und lasse alle anderen Zellen leer. Führe dann folgendes Makro aus:
Sub Gefilterte_Zeilen()
z = Range("A65536").End(xlUp).Row
Range(Cells(2, 5), Cells(z, 5)).SpecialCells(xlCellTypeVisible) = "Test"
End Sub
Wenn Du statt Spalte E eine anderen Spalte wählst, musst Du in der dritten Zeile des Codes die 5 anpassen.
Gruß
Martin
Anzeige
AW: Noch eine Frage
01.03.2011 22:06:26
Sandra
Hallo Martin, hallod die anderen,
das Makro funktioniert soweit. Allerdings will ich ja eigentlich im gefilterten Bereich bestimmte Änderungen in einer Hostanwendung vornehmen.
Soll heissen: Ich will nur die Zeilen (Kundennummern) verarbeiten, die gefiltert sind. Das geht aber nur in einer Schleife von oben nach unten.
Also erst suche die nächste gefilterte Zeile, dann mach die Änderung in der Hostanwendung (mein Makro) und dann such die nächste gefilterte Zeile.
VIelleicht ist mein Problem jetzt etwas klarer geworden.
Vielen lieben Dank für Eure Hilfe!
Viele Grüße
Sandra
Anzeige
AW: Noch eine Frage
01.03.2011 22:14:08
Josef

Hallo Sandra,
vielleicht solltst du mal den Code deines Originalmakros posten.
Zusätzlich würde es helfen, wenn du beschreibst, wo sich eine gefilterte Liste befindet und auf welche Spalte sich das Makro beziehen soll.

Gruß Sepp

AW: Noch eine Frage
02.03.2011 12:24:36
Sandra
Hallo Sepp,
so sähe das Makro aus:
Dim Mldg, Titel, Voreinstellung, Wert1
Mldg = "Zeile angeben wo das Makro anfangen soll" ' Aufforderung festlegen.
Titel = "Zeilenanfang" ' Titel festlegen.
Voreinstellung = "2" ' Voreinstellung festlegen.
' Meldung, Titel und Standardwert anzeigen.
Wert1 = InputBox(Mldg, Titel, Voreinstellung)
If Wert1 = "" Then
GoTo Zeile2
End If
Range("a2").Select
c = Wert1 - 2
ActiveCell.Offset(c, 0).Select
Do Until ActiveCell.Value = ""
i = i + 1
If i = 500 Then
ActiveWorkbook.Save
i = 1
Else
End If
--------
.......bestimmte Daten werden in eine Hostanwendung ein- bzw. ausgelesen........
--------
Range("Ausgelesen2").Cells(ActiveCell.Row, 1).Value = Format(Date & " " & Time)
Cells(ActiveCell.Row + 1, 1).Select
Loop
Zeile2:
MsgBox "Die Abfrage wurde abgebrochen", vbInformation, "Hinweis!"
Exit Sub
End Sub
Kannst Du damit was anfangen? Also eigentlich müsste die Zeile Cells(ActiveCell.Row + 1, 1).Select
durch was anderes (nehme die nächste Zeile des gefilterten Bereich) ersetzt werden.
Vielen lieben Dank!
Sandra
Anzeige
AW: Noch eine Frage
02.03.2011 17:02:11
Josef

Hallo Sandra,
also ausser das sinnlos irgendwelche Zellen selektiert werden, kann man aus dem Code nicht erkennen,was da eigentlich geschehen soll!
im Prinzip muss es etwa so laufen

Dim rng As Range, rngVisible As Range
On Error Resume Next
Set rngVisible = Range("A1").AutoFilterRange.Columns(1).SpecialCells(xlCellTypeVisible)
On Error Goro 0
If Not rngVisible Is Nothing Then
For Each rng In rngVisible
'nur was soll jetzt mit rng geschehen?
rng.Select 'Select und Activate sind zu 99,9% unnötig und unprofessionell
Next
End If

Gruß Sepp

Anzeige
AW: Noch eine Frage
02.03.2011 20:27:26
Sandra
Hallo Sepp,
vermutlich hast Du recht und ich habe mich total verrant.
Danke trotzdem für Deine Hilfe!
Schönen Abend!
Sandra

40 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige