VBA Help

Kyosti

Board Regular
Joined
Jun 2, 2008
Messages
90
I have tried to adjust a VBA Code that was built for me by @Fluff and I thought I was close to getting it to work, but I was mistaken.

Sub Kyosti()
Dim Cl As Range
Dim Ws As Worksheet
Dim Ky As Variant

Set Ws = Sheets("Data")
With CreateObject("scripting.dictionary")
For Each Cl In Ws.Range("O2", Ws.Range("O" & Rows.Count).End(xlUp))
.Item(Cl.Value) = Empty
Next Cl
For Each Ky In .Keys
Ws.Range("A1:O1").AutoFilter 15, Ky
Sheets.Add(, Sheets(Sheets.Count)).Name = Ky
Ws.AutoFilter.Range.SpecialCells(xlVisible).EntireRow.Copy Range("A1")
Next Ky
Ws.AutoFilterMode = False
End With
End Sub

The original code was written for a different file but I am attempting to use the same logic on the file outlined below



Agent #Agency NameAgent First nameAgent Last nameAgency Location AddressAgency Location CityAgency Location CodeAgency Location StateAgency Location Zip CodeAgency Termination DateAgency StatusNew OwnerSale DateEntry DateSale TypeRegionDaysPolicy Count
NJ Region
NY Region
FL Region

<colgroup><col width="64" span="18" style="width:48pt"> </colgroup><tbody>
</tbody>


The new logic would essentially create a new tab for every region with the filtered information. I made adjustments to the original code to match the new file, but I get a debug at:

Sheets.Add(, Sheets(Sheets.Count)).Name = Ky

Can anyone help me understand the language or what it is doing so I can adjust accordingly!? Any help is greatly appreciated.
 

Excel Facts

Select all contiguous cells
Pressing Ctrl+* (asterisk) will select the "current region" - all contiguous cells in all directions.
Is the region column O or column P?
 
Upvote 0
Code:
Option Explicit


Sub Kyosti()
Dim Cl As Range
Dim Ws As Worksheet
Dim Ky As Variant


Set Ws = Sheets("Sheet1")


With CreateObject("scripting.dictionary")


    For Each Cl In Ws.Range("P2", Ws.Range("P" & Rows.Count).End(xlUp))
        .Item(Cl.Value) = Empty
    Next Cl
    
    For Each Ky In .Keys
        Ws.Range("A1:R1").AutoFilter 16, Ky
        Sheets.Add(, Sheets(Sheets.Count)).Name = Ky
        Ws.AutoFilter.Range.SpecialCells(xlVisible).EntireRow.Copy Range("A1")
    Next Ky
    
    Ws.AutoFilterMode = False
    
End With
End Sub
 
Upvote 0
I swear I tried that code too, but I must have been off somewhere! Thank you so much @Logit, however I am still getting an error on the same line. But it did create half of the tabs.
 
Last edited:
Upvote 0
.
The edits in the macro function as expected here. Something else going on with your workbook ?

Is there additional code were aren't aware of ?
 
Upvote 0
.
The only thing I can suggest is to :

Quit Excel.

Shut down your computer.

Turn it back on.

Try the workbook again.


I have found here .... oftentimes when an error has appeared more than once on a workbook I am building, the above steps are the only means of
clearing the cache or memory. I've edited the code and know it is correct but still receiving errors. When re-booting computer the error goes away.
 
Upvote 0

Forum statistics

Threads
1,213,526
Messages
6,114,122
Members
448,550
Latest member
CAT RG

We've detected that you are using an adblocker.

We have a great community of people providing Excel help here, but the hosting costs are enormous. You can help keep this site running by allowing ads on MrExcel.com.
Allow Ads at MrExcel

Which adblocker are you using?

Disable AdBlock

Follow these easy steps to disable AdBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the icon in the browser’s toolbar.
2)Click on the "Pause on this site" option.
Go back

Disable AdBlock Plus

Follow these easy steps to disable AdBlock Plus

1)Click on the icon in the browser’s toolbar.
2)Click on the toggle to disable it for "mrexcel.com".
Go back

Disable uBlock Origin

Follow these easy steps to disable uBlock Origin

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back

Disable uBlock

Follow these easy steps to disable uBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back
Back
Top