[COLOR=Navy]Sub[/COLOR] MG29Mar46
[COLOR=Navy]Dim[/COLOR] n [COLOR=Navy]As[/COLOR] [COLOR=Navy]Long[/COLOR]
[COLOR=Navy]Dim[/COLOR] Message [COLOR=Navy]As[/COLOR] [COLOR=Navy]String[/COLOR]
[COLOR=Navy]Dim[/COLOR] Title [COLOR=Navy]As[/COLOR] [COLOR=Navy]String[/COLOR]
[COLOR=Navy]Dim[/COLOR] Default [COLOR=Navy]As[/COLOR] [COLOR=Navy]Integer[/COLOR]
[COLOR=Navy]Dim[/COLOR] MyValue [COLOR=Navy]As[/COLOR] [COLOR=Navy]Integer[/COLOR]
[COLOR=Navy]Dim[/COLOR] Lst [COLOR=Navy]As[/COLOR] [COLOR=Navy]Long[/COLOR]
[COLOR=Navy]Dim[/COLOR] Fst [COLOR=Navy]As[/COLOR] [COLOR=Navy]Long[/COLOR]
[COLOR=Navy]Dim[/COLOR] Dic [COLOR=Navy]As[/COLOR] Object
[COLOR=Navy]Dim[/COLOR] R [COLOR=Navy]As[/COLOR] Range
[COLOR=Navy]Dim[/COLOR] Ltr [COLOR=Navy]As[/COLOR] [COLOR=Navy]Long[/COLOR]
Ltr = Cells("1", Columns.Count).End(xlToLeft).Column
Fst = Selection.Row
Lst = Selection.Row + Selection.Rows.Count - 1
Message = "Enter a Number": Title = "Repeat Numbers": Default = 0
[COLOR=Navy]On[/COLOR] [COLOR=Navy]Error[/COLOR] [COLOR=Navy]Resume[/COLOR] [COLOR=Navy]Next[/COLOR]
MyValue = InputBox(Message, Title, Default)
[COLOR=Navy]On[/COLOR] [COLOR=Navy]Error[/COLOR] GoTo endnow
[COLOR=Navy]Set[/COLOR] Dic = CreateObject("scripting.dictionary")
Dic.CompareMode = vbTextCompare
[COLOR=Navy]If[/COLOR] MyValue = 0 [COLOR=Navy]Then[/COLOR] [COLOR=Navy]Exit[/COLOR] [COLOR=Navy]Sub[/COLOR]
[COLOR=Navy]For[/COLOR] n = Lst To Fst [COLOR=Navy]Step[/COLOR] -1
[COLOR=Navy]Set[/COLOR] R = Range("C" & n)
[COLOR=Navy]If[/COLOR] Not Dic.Exists(R.Value) [COLOR=Navy]Then[/COLOR]
Dic.Add R.Value, R
[COLOR=Navy]Else[/COLOR]
[COLOR=Navy]Set[/COLOR] Dic.Item(R.Value) = Union(Dic.Item(R.Value), R)
[COLOR=Navy]End[/COLOR] If
[COLOR=Navy]Next[/COLOR] n
[COLOR=Navy]Dim[/COLOR] k [COLOR=Navy]As[/COLOR] Variant
[COLOR=Navy]Dim[/COLOR] Dn [COLOR=Navy]As[/COLOR] Range
[COLOR=Navy]Dim[/COLOR] c [COLOR=Navy]As[/COLOR] [COLOR=Navy]Integer[/COLOR]
[COLOR=Navy]Dim[/COLOR] cols [COLOR=Navy]As[/COLOR] Variant
[COLOR=Navy]Dim[/COLOR] Ac [COLOR=Navy]As[/COLOR] [COLOR=Navy]Integer[/COLOR]
[COLOR=Navy]Dim[/COLOR] Str [COLOR=Navy]As[/COLOR] [COLOR=Navy]String[/COLOR]
[COLOR=Navy]Dim[/COLOR] Ray
[COLOR=Navy]Dim[/COLOR] olet [COLOR=Navy]As[/COLOR] [COLOR=Navy]String[/COLOR]
cols = Array(1, 4, 6, 8, 15, 17, 34, 35, 43, 46)
Application.ScreenUpdating = False
[COLOR=Navy]For[/COLOR] [COLOR=Navy]Each[/COLOR] k [COLOR=Navy]In[/COLOR] Dic.keys
Str = vbNullString
[COLOR=Navy]For[/COLOR] Ac = 1 To MyValue
n = IIf(Ac > 9, Ac - 9, Ac)
Str = Str & "," & Dic.Item(k).Address
Dic.Item(k).EntireRow.Interior.ColorIndex = cols(n)
Dic.Item(k).EntireRow.Copy
Dic.Item(k).EntireRow.Insert
[COLOR=Navy]Next[/COLOR] Ac
Dic.Item(k).EntireRow.Interior.ColorIndex = cols(n + 1)
Str = Str & "," & Dic.Item(k).Address
Ray = Split(Mid(Str, 2), ",")
[COLOR=Navy]For[/COLOR] Ac = 0 To UBound(Ray)
[COLOR=Navy]For[/COLOR] [COLOR=Navy]Each[/COLOR] R [COLOR=Navy]In[/COLOR] Range(Ray(Ac))
[COLOR=Navy]If[/COLOR] Right(R, 1) Like "[A-Z]" And Ac > 0 [COLOR=Navy]Then[/COLOR]
olet = Chr(Asc(Right(R, 1)) + Ac)
R = Mid(R, 1, Len(R) - 1) & olet
[COLOR=Navy]ElseIf[/COLOR] Not Right(R, 1) Like "[A-Z]" [COLOR=Navy]Then[/COLOR]
R = R & Chr(Ac + 1 + 64)
[COLOR=Navy]End[/COLOR] If
[COLOR=Navy]Next[/COLOR] R
[COLOR=Navy]Next[/COLOR] Ac
[COLOR=Navy]Next[/COLOR] k
Application.ScreenUpdating = True
endnow:
[COLOR=Navy]End[/COLOR] [COLOR=Navy]Sub[/COLOR]