ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Creating a new worksheet by checking for blank values in a range (https://www.excelbanter.com/excel-programming/357891-creating-new-worksheet-checking-blank-values-range.html)

Geoff[_13_]

Creating a new worksheet by checking for blank values in a range
 
Hello, I am trying to create a new worksheet from an existing range of
data (pivot table copy/pasted values). This idea is to scan this range
and identify where there are no, or blank, values in a cell and return
take the heading (row and column) value for the blank cell and paste
them into a new worksheet for each occurrance. I have an example below
with A through C as column headings and 1 through 3 as row headings....

A B C
1 4 5 6
2 4 6
3 5

Using this example, I would want the new worksheet to populate as
such....

3 A
2 B
3 C

This is basically a tool to identify each area where there is missing
data and populate a new worksheet with those areas.

Can anyone help? This is beyond my programming capabilities, which are
quite modest.

Many Thanks!
Geoff


Martin Krastev[_2_]

Creating a new worksheet by checking for blank values in a range
 
Try this code:

Dim sh As Worksheet
Dim r As Range, rng As Range
Dim i As Integer

i = 1
Set rng = Selection ' get the selected range
Set sh = ActiveWorkbook.Sheets.Add ' add a new sheet
For Each r In rng 'iterate through all cells of rng
If r.Value = "" Then 'check if cell is empty
sh.Cells(i, 1).Value = r.Address ' write the empty cell address
in the new sheet
i = i + 1 'goto next row
End If
Next r


"Geoff" wrote:

Hello, I am trying to create a new worksheet from an existing range of
data (pivot table copy/pasted values). This idea is to scan this range
and identify where there are no, or blank, values in a cell and return
take the heading (row and column) value for the blank cell and paste
them into a new worksheet for each occurrance. I have an example below
with A through C as column headings and 1 through 3 as row headings....

A B C
1 4 5 6
2 4 6
3 5

Using this example, I would want the new worksheet to populate as
such....

3 A
2 B
3 C

This is basically a tool to identify each area where there is missing
data and populate a new worksheet with those areas.

Can anyone help? This is beyond my programming capabilities, which are
quite modest.

Many Thanks!
Geoff



Geoff[_13_]

Creating a new worksheet by checking for blank values in a range
 
I believe you are on to something with that, but there is one
discrepancy.

The "headings" I was referring to are actual data in cells, not the
cell address. For instance, the columns are patient numbers (1-250)
and the rows are patient data (text such as Cycle1). Sorry for the
confusion. In an ideal world, the 1st column on the new spreadsheet
would contain the patient number corresponding to the blank cell and
the second column would contain the patient data corresponding to the
blank cell .

Thanks!!!
Geoff


Martin Krastev[_2_]

Creating a new worksheet by checking for blank values in a ran
 
Then try this:
Sub a()
Dim sh As Worksheet
Dim r As Range, rng As Range
Dim i As Integer

i = 1
Set rng = Selection ' get the selected range
Set sh = ActiveWorkbook.Sheets.Add ' add a new sheet
For Each r In rng 'iterate through all cells of rng
If r.Value = "" Then 'check if cell is empty
sh.Cells(i, 1).Value = rng(r.Row - 1, 0).Value ' write the cell
value at left of range in col1
sh.Cells(i, 2).Value = rng(0, r.Column - 1).Value ' write the
cell value at top of range to col2
i = i + 1 'goto next row
End If
Next r

End Sub

To get it working you select the data range(excluding header columns and
rows) and run the macro. Good Luck!

"Geoff" wrote:

I believe you are on to something with that, but there is one
discrepancy.

The "headings" I was referring to are actual data in cells, not the
cell address. For instance, the columns are patient numbers (1-250)
and the rows are patient data (text such as Cycle1). Sorry for the
confusion. In an ideal world, the 1st column on the new spreadsheet
would contain the patient number corresponding to the blank cell and
the second column would contain the patient data corresponding to the
blank cell .

Thanks!!!
Geoff



Geoff[_13_]

Creating a new worksheet by checking for blank values in a ran
 
Excellent, all is working now! I did have to make a change to the
column and row indicators (r.Row - 3 and r.Column - 2) to get it to
work correctly. I have no idea why this is the case, I just messed
around with it until it worked. In any case, THANKS MARTIN!!! The new
code is below.........

Sub Reconcile()
Dim sh As Worksheet
Dim r As Range, rng As Range
Dim i As Integer

i = 1
Set rng = Selection
' get the selected range
Set sh = ActiveWorkbook.Sheets.Add
' add a new sheet
For Each r In rng
'iterate through all cells of rng
If r.Value = "" Then
'check if cell is empty
sh.Cells(i, 1).Value = rng(r.Row - 3, 0).Value
' write the cell value at left of range in col1
sh.Cells(i, 2).Value = rng(0, r.Column - 2).Value
' write the cell value at top of range to col2
i = i + 1
'goto next row
End If
Next r


End Sub



All times are GMT +1. The time now is 10:14 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com