Thema Datum  Von Nutzer Rating
Antwort
07.04.2016 10:19:29 kallapatti
NotSolved
Blau so oder so ähnlich
07.04.2016 19:08:57 Gast70117
NotSolved
07.04.2016 21:53:04 kallapatti
NotSolved
10.04.2016 18:41:58 Gast70117
NotSolved

Ansicht des Beitrags:
Von:
Gast70117
Datum:
07.04.2016 19:08:57
Views:
1024
Rating: Antwort:
  Ja
Thema:
so oder so ähnlich
Option Explicit

Sub LfdNummern()
Const c_MAX As Integer = 260         'Obergrenze
Dim rngNamen As Range, c As Range
Dim rngNummern As Range, arrDef() As String, x As Long
Dim intRnd As Integer, intNamen As Integer

   'Namen in Spalte C
   Set rngNamen = Range(Cells(5, 3), Cells(Rows.Count, 3).End(xlUp))
   'Prüfung auf Obergrenze
   intNamen = rngNamen.Cells.Count - WorksheetFunction.CountBlank(rngNamen)
   If intNamen >= c_MAX Then
        Call MsgBox("Maximalvorgabe überschritten", vbOKOnly + vbCritical, "Abbruch")
        Exit Sub
   End If
   'Nummernbereich (Ende)
   Set rngNummern = rngNamen.Offset(, -1).Cells(rngNamen.Cells.Count).Offset(1)
   'Ausnahmen
   arrDef = Split(Cells(4, 2).Formula, ",")
   'Nachprüfung
   intNamen = intNamen + UBound(arrDef) + 1
   If intNamen >= c_MAX Then
        Call MsgBox("Maximalvorgabe überschritten", vbOKOnly + vbCritical, "Abbruch")
        Exit Sub
   End If
   'anhängen
   For x = LBound(arrDef) To UBound(arrDef)
      Cells(rngNummern.Row, 2).Offset(x).Value = CInt(arrDef(x))
   Next x
   'Nummernbereich (gesamt)
   Set rngNummern = Range(Cells(5, 2), Cells(Rows.Count, 2).End(xlUp))
   For Each c In rngNamen
      If c.Value <> "" Then
         With rngNummern
          Do
            'eine Zufallszahl
            intRnd = WorksheetFunction.RandBetween(1, c_MAX)
            'bereits benutzt
            If .Find(intRnd, , xlValues, xlWhole) Is Nothing Then
               'eintragen
               c.Offset(, -1).Value = intRnd
               Exit Do
            End If
          Loop
         End With
      End If
   Next c
   'Krücke löschen
   With rngNummern
      For x = LBound(arrDef) To UBound(arrDef)
         Set c = .Find(CInt(arrDef(x)), , xlValues, xlWhole)
         c.Clear
      Next x
   End With
'
End Sub

 


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
Blau so oder so ähnlich
07.04.2016 19:08:57 Gast70117
NotSolved
07.04.2016 21:53:04 kallapatti
NotSolved
10.04.2016 18:41:58 Gast70117
NotSolved