CurrentRegion auf eine Spalte beschränken
#11
Hallo,

(16.02.2016, 18:08)DerAnfänger schrieb: Jetzt frage ich mich wie die entsprechende Formel aussehen müßte, um alle Blöcke in Spalte A in denen etwas steht zu markieren?

Range("A:A").SpecialCells(xlCellTypeConstants).Select

Gruß Uwe
[-] Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:
  • DerAnfänger
Top
#12
Hallo Uwe,
vielen Dank, es funktioniert.

Für heute noch eine Frage:

Jetzt habe ich in der Spalte A,  4 durch Leerzellen getrennte Blöcke mit je fünf Werten stehen. Die Werte in den einzelnen Zellen seien
M1, M2 bis M5.  Ich suche jetzt nach einem Befehl, der mir in Spalte A alle Zellen markiert, in denen die Werte M4 vorkommen.
Top
#13
Wozu (denn vermeide 'select' und 'activate' in VBA) ?
Top
#14
Hallo Snb,

was dir so sinnfrei erscheint, ist es absolut nicht. Active, Select und alle damit verbunden eingebauten Befehle und Funktionen sind grundlegend.
Für dich als fortgeschrittener Anwender mag dies nach Kinderkram aussehen, aber bitte bedenke, dass diese simplen Beispiele mir ersparen 
sich durch die ätzende und z.T. schwer verständliche Sprache der Microsoft Referenz quälen zu müssen.
Top
#15
Meine Frage war : wozu ?
Select is immer eine Stufe, kein Ziel.
Du hast noch keine Antwort gegeben.
Top
#16
Moin,
betrachte es doch einmal aus dieser Warte:

Activate und Select sind keineswegs grundlegend, die sind in mehr als 99% aller Fälle überflüssig wie ein Kropf (würde man in Süddeutschland sagen).

Sie werde gewiss bei einer Aufzeichnung mit protokolliert, aber die bremsen den Ablauf enorm aus. Du willst ein Beispiel? Bitte, hier ist eines. Wir fragen dich ja nicht, um dich zu ärgern oder vorzuführen. Da gibt es ganz andre Zeitgenossen, die zwar vo MS zertifiziert wurden aber immer wieder in extrem dümmlicher und arroganter Art ihren Textbaustein-Spruch anbringen.

ICH würde als Antwort ein "Ich will durch Augenschein überprüfen, ob das der richtige Bereich ist" absolut OK finden, denn dann macht das Ganze doch Sinn! Und gerade als Einsteiger finden wir Helfer es ziemlich wichtig, dass sich unangenehme Eigenschaften erst gar nicht "einnisten" oder "festbeißen". Mensch wird sie meist ziemlich schwer wieder los. :s 

Natürlich wäre eine andere (den Tatsachen entsprechende Antwort) auch gut, denn dann werden wir dir erklären, wie es besser geht.
Beste Grüße
  Günther

Excel-ist-sexy.de
  …schau doch mal rein!
Der Sicherheit meiner Daten wegen lade ich keine *.xlsm bzw. *.xlsb- Files mehr herunter! -> So geht's ohne!
Top
#17
Hi!
Meinst Du Hannover, Flughafen, Reise, Günther?  :21:
http://www.hannover-airport.de/fluggaest...ne-buchen/

*DuckUndWeg*

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Top
#18
Hallo,

wieso soll die Auswahl aller Zellen mit Select so absurd bzw. theoretisch sein. Nehmen wir an ich möchte alle Zeilennummern bestimmen, in
denen eine Zelle einen Wert mit "M 4" enthält. Dann wähle ich erst alle Zellen aus (Select). Und dann kann (könnte) ich per Schleife die
entsprechende Zeilennummer berechnen:


Code:
For Each cell In Selection
Debug.Print cell.Row
Next cell

Deshalb würde ich auch nach wie vor gerne von euch wissen wie so eine Auswahl zu schaffen ist.
Top
#19
Hallo,

ich bin zwar nicht der VBA-Crack, aber das dürfte wohl mit find und find next zu machen sein, ganz ohne Schleife.
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Top
#20
Hallo,

z.B. so:


Code:
Option Explicit

Sub Test()
Dim loErste As Long
Dim rngZeile As Range
Dim loCo As Long
Dim strName As String
strName = "M 4"
loCo = 2
Cells(1, 3) = "gefunden:"
With Columns(1)
    Set rngZeile = .Find(strName, , lookat:=xlPart, searchorder:=xlByRows)
    
    If Not rngZeile Is Nothing Then
        loErste = rngZeile.Row
        Cells(loCo, 3) = loErste
        loCo = loCo + 1
    
        Do
            Set rngZeile = .FindNext(rngZeile)
            If rngZeile.Row <> loErste Then
                Cells(loCo, 3) = rngZeile.Row
                loCo = loCo + 1
            End If
        Loop Until rngZeile Is Nothing Or rngZeile.Row = loErste
    End If
End With

 
End Sub
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste