Thema Datum  Von Nutzer Rating
Antwort
07.04.2016 10:19:29 kallapatti
NotSolved
07.04.2016 19:08:57 Gast70117
NotSolved
07.04.2016 21:53:04 kallapatti
NotSolved
Blau auch ne Lösung
10.04.2016 18:41:58 Gast70117
NotSolved

Ansicht des Beitrags:
Von:
Gast70117
Datum:
10.04.2016 18:41:58
Views:
938
Rating: Antwort:
  Ja
Thema:
auch ne Lösung

Dann eben NICHT die Zahlen zufällig, sondern einen Stapel bilden und den MISCHEN

Option Explicit
Dim arrDef() As String
Dim arrNamen() As Variant

Sub Nummerieren()
Dim rngNamen As Range, c As Range
Dim rngNummern As Range, x As Long, y As Long
Dim intRnd As Integer, intNamen As Long
Dim intStart As Integer, intx As Integer

   'Ausnahmen
   arrDef = Split(Cells(4, 2).Formula, ",")
   
   'Namen in Spalte C
   Set rngNamen = Range(Cells(5, 3), Cells(Rows.Count, 3).End(xlUp))
   intNamen = rngNamen.Cells.Count - WorksheetFunction.CountBlank(rngNamen)
      
   'Array der Namen-Spalten
   ReDim arrNamen(1 To intNamen, 1 To 2)
   For Each c In rngNamen
      If c.Value <> "" Then
         y = y + 1
         arrNamen(y, 1) = c.Row
         Do
            x = x + 1
            If IsDef(x) = False Then
               arrNamen(y, 2) = x
               Exit Do
            End If
         Loop
      End If
   Next c
   
   'arrNamen mischen
   Mischen
   'arrNamen eintragen
   Eintragen
'
End Sub

Private Sub Eintragen()
Dim j As Long
Dim lngAlt As Long, lngRnd As Long
For j = LBound(arrNamen) To UBound(arrNamen)
   Cells(arrNamen(j, 1), 2).Value = arrNamen(j, 2)
Next j
End Sub

Private Sub Mischen()
Dim j As Long
Dim lngAlt As Long, lngRnd As Long
For j = LBound(arrNamen) To UBound(arrNamen)
   lngAlt = arrNamen(j, 2)
   lngRnd = WorksheetFunction.RandBetween(LBound(arrNamen), UBound(arrNamen))
   arrNamen(j, 2) = arrNamen(lngRnd, 2)
   arrNamen(lngRnd, 2) = lngAlt
Next j
End Sub

Private Function IsDef(ByVal Zahl As Long) As Boolean
Dim i As Long
For i = LBound(arrDef) To UBound(arrDef)
   If Zahl = CLng(arrDef(i)) Then
      IsDef = True
      Exit Function
   End If
Next i
IsDef = False
End Function

 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
07.04.2016 10:19:29 kallapatti
NotSolved
07.04.2016 19:08:57 Gast70117
NotSolved
07.04.2016 21:53:04 kallapatti
NotSolved
Blau auch ne Lösung
10.04.2016 18:41:58 Gast70117
NotSolved