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

fehler bei union und spaltenauswahl

fehler bei union und spaltenauswahl
27.01.2004 12:23:31
calle
hallo leute,
ich hatte schonmal vor einer woche diese frage gestellt, aber bisher konnte mir keiner helfen!
ich habe einen code, der folgendes macht.
habe ein listenfeld in einer Userform und den inhalt des listenfeldes speichere ich in einem array ab.
nun gehe ich jedes element des arrays durch und markiere mir den gesuchten listeninhalt im tabellenblatt und verbinde ihn mit den folgenden gesuchten inhalten der liste die ich noch im array habe.
das klappt soweit auch ganz gut nur das problem ist,
dass er mir immer noch eine weitere spalte(von 1 bis 65536) hinter all meinen schon selectierten spalten markiert die aber gar nicht im array steht!
wieso macht er das? wieso markiert er mir hinter meinen spalten noch eine komplette spalte zusätzlich?
kann mir da jemand weiterhelfen?
hier der code
_________________________________

Private Sub cmdAuswaehlen_Click()
Dim aItem As Variant, suche$
Dim rAlleSp As Range
Dim rGesucht As Range
Dim varArray As Variant
Dim i As Integer
Dim iSelected As Integer
ReDim varArray(1)
For i = 0 To lstMonths.ListCount - 1
If lstMonths.Selected(i) Then
iSelected = iSelected + 1
ReDim Preserve varArray(iSelected)
varArray(iSelected) = lstMonths.List(i)
End If
Next
For Each aItem In varArray
Set rGesucht = Nothing
suche$ = CStr(aItem)
Set rGesucht = Cells.Find(What:=suche$, After:=[A1], _
LookIn:=xlFormulas, _
LookAt:=xlPart,SearchOrder:=xlByRows,SearchDirection:=xlNext, _
MatchCase:=True)
' wenn erstes mal was gefunden
If ((Not rGesucht Is Nothing) And (rAlleSp Is Nothing)) Then
Set rAlleSp = Range(Cells(rGesucht.Row, rGesucht.Column), _
Cells(rGesucht.End(xlDown).Row, _
rGesucht.Column))
' wenn zweites usw. male gefunden, dann den ersten und die weiteren ranges
' miteinander union
ElseIf ((Not rGesucht Is Nothing) And (Not rAlleSp Is Nothing)) Then
Set rAlleSp = Application.Union(rAlleSp, _
Range(Cells(rGesucht.Row, rGesucht.Column), _
Cells(rGesucht.End(xlDown).Row, rGesucht.Column)))
End If
Next aItem
If (Not rAlleSp Is Nothing) Then rAlleSp.Activate
End Sub

______________________________________
danke schonmal
calle

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

Betreff
Datum
Anwender
Anzeige
AW: fehler bei union und spaltenauswahl
27.01.2004 14:00:37
q
Hallo,
versuch es mal mit diesem Code. Es ist fast das gleiche, aber nur fast :-) Gruss q
'hallo leute,
'ich hatte schonmal vor einer woche diese frage gestellt, aber bisher konnte mir keiner helfen!
'ich habe einen code, der folgendes macht.
'habe ein listenfeld in einer Userform und den inhalt des listenfeldes speichere ich in einem array ab.
'nun gehe ich jedes element des arrays durch und markiere mir den gesuchten listeninhalt im tabellenblatt und verbinde ihn mit den folgenden gesuchten inhalten der liste die ich noch im array habe.
'das klappt soweit auch ganz gut nur das problem ist,
'dass er mir immer noch eine weitere spalte(von 1 bis 65536) hinter all meinen schon selectierten spalten markiert die aber gar nicht im array steht!
'wieso macht er das? wieso markiert er mir hinter meinen spalten noch eine komplette spalte zusätzlich?
'kann mir da jemand weiterhelfen?
'hier der code
'_________________________________

Option Explicit

Private Sub cmdAuswaehlen_Click()
Dim aItem As Variant, suche$
Dim rAlleSp As Range
Dim rGesucht As Range
Dim varArray As Variant
Dim i As Integer
Dim iSelected As Integer
ReDim varArray(1)
For i = 0 To lstMonths.ListCount - 1
If lstMonths.Selected(i) Then
iSelected = iSelected + 1
ReDim Preserve varArray(iSelected)
varArray(iSelected) = lstMonths.List(i)
End If
Next
For Each aItem In varArray
' hier ist die Veranderung, Zellen mit "" findet man immer :-)
If (CStr(aItem) = "") Then GoTo NextItem
Set rGesucht = Nothing
suche$ = CStr(aItem)
Set rGesucht = Cells.Find(What:=suche$, After:=[A1], _
LookIn:=xlFormulas, _
LookAt:=xlPart, _
SearchOrder:=xlByRows, _
SearchDirection:=xlNext, _
MatchCase:=True)
' wenn erstes mal was gefunden
If ((Not rGesucht Is Nothing) And (rAlleSp Is Nothing)) Then
Set rAlleSp = Range(Cells(rGesucht.Row, rGesucht.Column), _
Cells(rGesucht.End(xlDown).Row, _
rGesucht.Column))
' wenn zweites usw. male gefunden, dann den ersten und die weiteren ranges
' miteinander union
ElseIf ((Not rGesucht Is Nothing) And (Not rAlleSp Is Nothing)) Then
Set rAlleSp = Application.Union(rAlleSp, _
Range(Cells(rGesucht.Row, rGesucht.Column), _
Cells(rGesucht.End(xlDown).Row, rGesucht.Column)))
End If
NextItem:
Next aItem
If (Not rAlleSp Is Nothing) Then rAlleSp.Activate
End Sub


Private Sub UserForm_Initialize()
Dim vntList As Variant
vntList = ActiveSheet.UsedRange.Value
Me.lstMonths.ColumnCount = ActiveSheet.UsedRange.Columns.Count
If (VarType(vntList) <> vbEmpty And VarType(vntList) <> vbNull) Then
Me.lstMonths.List = Range("a1:c3").Value
Else
MsgBox "Keine Daten.", vbExclamation
End If
End Sub

Anzeige
tausend dank an dich Mr. q
27.01.2004 19:47:14
calle
diese kleine aber feine veränderung hat mir sooo viel nerven gespart.
recht herzlichen danke mr. q
schade dass ich dich nicht mit richtigem namen ansprechen kann
trotzdem tausend dank an dich
mfg calle
AW: tausend dank an dich Mr. q
28.01.2004 06:26:28
q
Hallo,
es freut mich sehr dass es dir geholfen hat. Mein richtiger Name ist Daniel :-). Gruss Daniel

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige