Einzelnen Beitrag anzeigen
Ungelesen 29.05.15, 10:25   #2
eitch100
Agnostiker
 
Benutzerbild von eitch100
 
Registriert seit: Dec 2009
Beiträge: 4.435
Bedankt: 4.856
eitch100 leckt gerne myGully Deckel in der Kanalisation! | 1162455674 Respekt Punkteeitch100 leckt gerne myGully Deckel in der Kanalisation! | 1162455674 Respekt Punkteeitch100 leckt gerne myGully Deckel in der Kanalisation! | 1162455674 Respekt Punkteeitch100 leckt gerne myGully Deckel in der Kanalisation! | 1162455674 Respekt Punkteeitch100 leckt gerne myGully Deckel in der Kanalisation! | 1162455674 Respekt Punkteeitch100 leckt gerne myGully Deckel in der Kanalisation! | 1162455674 Respekt Punkteeitch100 leckt gerne myGully Deckel in der Kanalisation! | 1162455674 Respekt Punkteeitch100 leckt gerne myGully Deckel in der Kanalisation! | 1162455674 Respekt Punkteeitch100 leckt gerne myGully Deckel in der Kanalisation! | 1162455674 Respekt Punkteeitch100 leckt gerne myGully Deckel in der Kanalisation! | 1162455674 Respekt Punkteeitch100 leckt gerne myGully Deckel in der Kanalisation! | 1162455674 Respekt Punkte
Standard

Hi... also so richtig habe ich nicht verstanden, was du genau vorhast...
Hier mal ein Code, der dir den Bereich von K1:K6 zufällig mischt und ab dort einfügt (allerdings auf demselben Blatt), wo die markierte Zelle ist...
Ich würde mir einen CommandButton auf das Blatt legen und folgenden Code einfügen...
Code:
   Dim myRange As Range
   Dim myZeilen As Integer, myZufall As Integer
   Dim zeile, spalte
   
   zeile = ActiveCell.Row
   spalte = ActiveCell.Column
   
   Randomize
   
   Range("K1:K6").Select 
   myZeilen = Selection.Rows.Count
   
   Range(Cells(zeile, spalte), Cells(zeile + myZeilen - 1, spalte)).ClearContents 'der Bereich der leer sein muss
   Range("A1:J100").ClearContents 'wenn ein bestimmter Bereich vorm (nächsten) Mischen geleert werden soll
   
   For Each myRange In Selection.Cells
   
      myZufall = Int((myZeilen * Rnd) + 1)
      
      Do While Not IsEmpty(Cells(myZufall + zeile - 1, spalte))
         myZufall = Int((myZeilen * Rnd) + 1)
      Loop
      
      Cells(myZufall + zeile - 1, spalte).Value = myRange.Value
      
    Next myRange
    
    Cells(zeile, spalte).Select
Edit: In diesem Code mischt er die Werte aus K1:K6 immer in L1:L6. Nun könntest du aus bestimmten Zellen mit einer Formel auf die gemischten Werte zugreifen... Also z.B. in die Zelle A3 die Formel =L1, in Zelle A5 die Formel =L2, usw. Mit einem klick auf den Button wird neu gemischt...
Code:
   Dim myRange As Range
   Dim myZeilen As Integer, myZufall As Integer
   Dim zeile, spalte
   
   zeile = 1
   spalte = 12
   
   Randomize
   
   Range("K1:K6").Select
   myZeilen = Selection.Rows.Count
   
   Range("L1:L6").ClearContents
   
   For Each myRange In Selection.Cells
   
      myZufall = Int((myZeilen * Rnd) + 1)
      
      Do While Not IsEmpty(Cells(myZufall + zeile - 1, spalte))
         myZufall = Int((myZeilen * Rnd) + 1)
      Loop
      
      Cells(myZufall + zeile - 1, spalte).Value = myRange.Value
      
    Next myRange

    Range("A1").Select
__________________
Der Klügere gibt nach... deshalb regieren die Dummen die Welt
eitch100 ist offline   Mit Zitat antworten