cliniconboarding
New Member
- Joined
- Mar 3, 2018
- Messages
- 7
Hey all, new to this forum. I'm working on a series of macros in excel and I've almost got it working perfectly but I'm running into an issue. Essentially I run this same code on a different reference worksheet to pull PCP provider patients to their respective PCP worksheet (creating a PCP worksheet name in the process). Here I'm trying to run it again on a different worksheet to pull in Non-PCP patients to the respective provider they've most recently seen. But when I run it I'm replacing the data I pulled originally instead of starting in the next available row. I know this should be an easy fix but I think I've been staring at it too long.
Help is much appreciated!
'SPLIT PATIENTS FROM "ADD" WORKSHEET TO THEIR RESPECTIVE PROVIDER
Help is much appreciated!
'SPLIT PATIENTS FROM "ADD" WORKSHEET TO THEIR RESPECTIVE PROVIDER
Code:
Sub parse_NonPCProviders()
Dim lr As Long
Dim ws As Worksheet
Dim vcol, i As Integer
Dim icol As Long
Dim myarr As Variant
Dim title As String
Dim titlerow As Integer
MsgBox (" Brace yourself for this one. You may need to walk away for a bit. ")
vcol = 4
Set ws = Sheets("ADD")
lr = ws.Cells(ws.Rows.Count, vcol).End(xlUp).Row
title = "A1:H1"
titlerow = ws.Range(title).Cells(1).Row
icol = ws.Columns.Count
ws.Cells(1, icol) = "Unique"
For i = 2 To lr
On Error Resume Next
If ws.Cells(i, vcol) <> "" And Application.WorksheetFunction.Match(ws.Cells(i, vcol), ws.Columns(icol), 0) = 0 Then
ws.Cells(ws.Rows.Count, icol).End(xlUp).Offset(1, 0) = ws.Cells(i, vcol)
End If
Next
myarr = Application.WorksheetFunction.Transpose(ws.Columns(icol).SpecialCells(xlCellTypeConstants))
ws.Columns(icol).Clear
For i = 2 To UBound(myarr)
ws.Range(title).AutoFilter field:=vcol, Criteria1:=myarr(i) & ""
If Not Evaluate("=ISREF('" & myarr(i) & "'!A1)") Then
Sheets.Add(after:=Worksheets(Worksheets.Count)).Name = myarr(i) & ""
Else
Sheets(myarr(i) & "").Move after:=Worksheets(Worksheets.Count)
End If
ws.Range("A" & titlerow & ":A" & lr).EntireRow.Copy Sheets(myarr(i) & "").Range("A1")
Sheets(myarr(i) & "").Columns.AutoFit
Next
ws.AutoFilterMode = False
ws.Activate
MsgBox (" Non-PCP Provider Data Parse Complete ")
End Sub
Last edited by a moderator: