Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Zellen Multiselect per VBA

Zellen Multiselect per VBA
06.11.2008 02:11:00
marion
Hallo,
Leider habe ich im Archiv nicht das Richtige gefunden, daher bitte ich hier um Hilfe.
Ich möchte per VBA mehrere Zellen selektieren.
for i = 1 to 100
if cells(1, i ) = "Test" then
cells(1, i).Multiselect 'geht natürlich nicht, oder?
( hier ist das Problem, es sollen mehrere nicht zusammenhängende Zellen selektiert werden. So wie "Shift+Mausklick)
end if
next i
Hoffe ich habe mich verständlich ausgedrückt.
Per Makro mehrere nicht zusammenhängende Zellen selektieren ( in einer for/next Schleife).
Ich hoffe auf Eure Hilfe und Danke schon einmal für jede Anregung.
marion
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zellen Multiselect per VBA
06.11.2008 07:45:32
Werner
Hallo Marion,
es gibt da bestimmt eine elegantere Lösung, um die Zellen zu formatieren (?) oder ähnliches wo ein bestimmter Text enthalten ist.
Trotzdem hier mal ein evtl. Lösungsansatz, der jede Zelle, wo der Text "Test" vorhanden ist, selektiert.
Ich habe in diesem Beispiel eine Stringvariable benutzt, die nicht unendlich "befüllt" werden kann.
Bei über 40 gefundene Zellen mit "Test", steigt die Prozedure aus.
Hier der Code:


Sub RngSelect()
Dim r, c, Zaehler As Integer
Dim RngStr As String
Zaehler = 0
  For r = 1 To 10
    For c = 1 To 10
      If ActiveSheet.Cells(c, r).Value = "Test" Then
        Zaehler = Zaehler + 1
        RngStr = RngStr & "," & ActiveSheet.Cells(c, r).Address
        If Zaehler > 40 Then
          MsgBox "Bereich zu groß"
          Exit Sub
        End If
      End If
    Next c
  Next r
  RngStr = Mid(RngStr, 2)
  If RngStr <> "" Then ActiveSheet.Range(RngStr).Select
End Sub


Gruß
Werner
Anzeige
AW: Zellen Multiselect per VBA
06.11.2008 07:52:00
Beverly
Hi Marion,

Sub multi_select()
Dim raBereich As Range
Dim inZelle As Integer
For inZelle = 1 To 100
If Cells(1, inZelle) = "Test" Then
If raBereich Is Nothing Then
Set raBereich = Cells(1, inZelle)
Else
Set raBereich = Union(raBereich, Cells(1, inZelle))
End If
End If
Next inZelle
raBereich.Select
Set raBereich = Nothing
End Sub




Anzeige
Danke Werner, Danke Beverly, klappt
06.11.2008 12:07:00
marion
Danke Werner u Beverly,
klappt wunderbar.
schönen Tag
marion
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige