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

30 Spalten zufällig auswählen.

30 Spalten zufällig auswählen.
08.05.2006 16:25:17
udo
Hallo zusammen !
Ich hab immer 60 Spalten, davon sollen immer 30 zufällig ausgewählt und markiert werden. Der u. a. vba Code macht dies in etwa. Allerdings, wenn ich bestimmte Konstellationen in den 60 Spalten habe, macht er immer dasselbe. Und er wählt auch nicht immer genau 30 Spalten aus, manchmal auch weniger. Wenn in a1=1 steht, dann funktioniert der Code gar nicht.
Wäre super, wenn jemand eine Idee hat, wie ich korrekt immer 30 Spalten zufällig auswählen kann.
LG udo

Sub dreissig()
Dim L As Long
Dim Z As Integer
Dim bereich As Range
If [b1] > 1 Then
Z = 1
Set bereich = Columns(1)
For L = 2 To 60
If Z = 30 Then Exit For
If Cells(L, 2) > 20 Then
Set bereich = Union(bereich, Columns(L)) 'cells(L,2)=BL,also B2
Z = Z + 1
End If
Next
End If
bereich.Select
MsgBox Z
Set bereich = Nothing
End Sub

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: 30 Spalten zufällig auswählen.
08.05.2006 18:57:22
Josef
Hallo Udo!
Vielleicht so!
Sub DreisigSpaltenSollstDuWaehlen()
Dim varColumns() As Integer
Dim intIndex As Integer, intRnd As Integer
Dim rngCol As Range

Redim varColumns(59)

For intIndex = 0 To UBound(varColumns)
  varColumns(intIndex) = intIndex + 2
Next

Randomize

For intIndex = 1 To 30
  
  intRnd = Int(Rnd() * UBound(varColumns)) + 1
  
  If rngCol Is Nothing Then
    Set rngCol = Columns(varColumns(intRnd))
  Else
    Set rngCol = Union(rngCol, Columns(varColumns(intRnd)))
  End If
  
  varColumns(intRnd) = varColumns(UBound(varColumns))
  Redim Preserve varColumns(UBound(varColumns) - 1)
  
Next

rngCol.Select

End Sub


'******************************
'* Gruß Sepp
'*
'* Rückmeldung wäre nett!
'******************************

Anzeige
AW: 30 Spalten zufällig auswählen.
08.05.2006 21:26:43
udo
Hallo Sepp !
Das ist jetzt schon das 2. Mal, daß Du mir freundlicherweise hilfst :-) Der Code ist ja ganz anders !! Damit kann ich schon viel anfangen. Ein kleiner Schönheitsfehler:
der markiert mir manchmal auch die leere Spalte 61 und dann hab ich nur 29 ausgewählte und markierte Spalten. Da ich keinen blassen Schimmer von dem vba code habe, kann ich leider nicht erkennen, was zu ändern ist.
LG Udo
AW: 30 Spalten zufällig auswählen.
08.05.2006 21:33:46
Josef
Hallo Udo!
Sorry! Da hab ich zuwenig aufgepasst und das Array zu groß dimensioniert!
So passt es!
' **********************************************************************
' Modul: Modul2 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Sub DreisigSpaltenSollstDuWaehlen()
Dim varColumns() As Integer
Dim intIndex As Integer, intRnd As Integer
Dim rngCol As Range

'Array dimensionieren
Redim varColumns(58)

'Array mit den Zahlen von 2 bis 60 füllen
For intIndex = 0 To UBound(varColumns)
  varColumns(intIndex) = intIndex + 2
Next

'Zufallsgeneratot 'anstossen!
Randomize

For intIndex = 1 To 30
  
  'Zufällig eine Zahl zwischen 0 und Obergrenze des Arrays wählen
  intRnd = Int(Rnd() * UBound(varColumns))
  
  'Die Zufällig gewählte Spalte der Range-Variablen zuwisen
  If rngCol Is Nothing Then
    Set rngCol = Columns(varColumns(intRnd))
  Else
    Set rngCol = Union(rngCol, Columns(varColumns(intRnd)))
  End If
  
  'Das letzte Element des Arrays in die eben gewählte Position schreiben
  'und das Array um das letzte Element kürzen. (damit keine Zahl doppelt gewählt wird!)
  varColumns(intRnd) = varColumns(UBound(varColumns))
  Redim Preserve varColumns(UBound(varColumns) - 1)
  
Next

'Ausgewählte Spalten markieren
rngCol.Select

End Sub


'******************************
'* Gruß Sepp
'*
'* Rückmeldung wäre nett!
'******************************

Anzeige
AW: 30 Spalten zufällig auswählen.
08.05.2006 21:40:04
udo
Hallo Sepp !
Einfach genial, hüpfe grade vor Freude durch die Wohnung. Meine kleine Siamkatze guckt schon ganz komisch :-)
Funktioniert tadellos. Für mich eine grosse Arbeitserleichterung. Vielen Dank dafür.
Falls Du mal irgendwas brauchst , was mit Schach zu tun hat, einfach fragen.
Schönen Abend
Udo
AW: 30 Spalten zufällig auswählen.
08.05.2006 21:40:18
udo
Hallo Sepp !
Einfach genial, hüpfe grade vor Freude durch die Wohnung. Meine kleine Siamkatze guckt schon ganz komisch :-)
Funktioniert tadellos. Für mich eine grosse Arbeitserleichterung. Vielen Dank dafür.
Falls Du mal irgendwas brauchst , was mit Schach zu tun hat, einfach fragen.
Schönen Abend
Udo
Anzeige
AW: 30 Spalten zufällig auswählen.
08.05.2006 21:40:19
udo
Hallo Sepp !
Einfach genial, hüpfe grade vor Freude durch die Wohnung. Meine kleine Siamkatze guckt schon ganz komisch :-)
Funktioniert tadellos. Für mich eine grosse Arbeitserleichterung. Vielen Dank dafür.
Falls Du mal irgendwas brauchst , was mit Schach zu tun hat, einfach fragen.
Schönen Abend
Udo
AW: 30 Spalten zufällig auswählen.
08.05.2006 21:40:28
udo
Hallo Sepp !
Einfach genial, hüpfe grade vor Freude durch die Wohnung. Meine kleine Siamkatze guckt schon ganz komisch :-)
Funktioniert tadellos. Für mich eine grosse Arbeitserleichterung. Vielen Dank dafür.
Falls Du mal irgendwas brauchst , was mit Schach zu tun hat, einfach fragen.
Schönen Abend
Udo
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige