Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 48
Default macro not working as intended

Ok, I have been at this for awhile, with no knowledge of VB at all, what I am
trying to do is copy all the rows on a sheet to the appropriate named sheet
using the B column as the reference to the sheet name. I have the code
working to where i dont get errors now, but its not working as intended. i
dont get any errors.. but its not moving all the data, only some of it, the
names are correct, it just dosn't move them. For example, it skips everything
that goes to the "BOB" sheet, even though there is plenty of things that
match that criteria, but the "RES" sheet has everythign moved over to it just
fine.. its being selective..any help would be great here is the code i have
that produces no errors

Sub CopyToSheets()

Dim rng As Range
Dim oCell As Range

Set rng = Range("B4:B" & Cells(Rows.Count, "B").End(xlUp).Row)
For Each oCell In rng
oCell.EntireRow.Copy _
Destination:=Sheets(oCell.Value).Range("A65536").E nd(xlUp).Offset(1,
0)
Next oCell


End Sub

  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 252
Default macro not working as intended

Michael,
This looks like the code I sent you earlier. A couple of comments.

1. This code only copies but does not delete the old. Usually when we say
we intend to MOVE data it means we also want to delete the old data. Do you
want to just copy or also delete the old data?

2. Since the code works for some sheet names but not others, it leads me to
the conclusion that the code is good but the Sheet name is not the same as
what you have in Col B. My guess is that it is a case-sensitive issue:
something may be capitalizes but not everywhe (BOB vs Bob) or maybe a
space at the end ("BOB" vs "BOB ") which cannot be seen but is still there.

You might try adding the following error trapping:

Sub CopyToSheets()

Dim rng As Range
Dim oCell As Range
Dim Sh As Worksheet

On Error GoTo ErrHandler
Set rng = Range("B4:B" & Cells(Rows.Count, "B").End(xlUp).Row)
For Each oCell In rng
oCell.EntireRow.Copy _
Destination:=Sheets(oCell.Value).Range("A65536").E nd(xlUp).Offset(1,
0)
Sheets(oCell.Value).Select
Sheets("Sheet1").Select
Next oCell
Exit Sub
ErrHandler:
MsgBox "Cannot find the Worksheet: " & oCell.Value
For Each Sh In Worksheets
If UCase(Sh.Name) Like UCase(Trim(oCell.Value)) Then
MsgBox "However, the Sheet named: " & Sh.Name & " was
found."
End If
Next Sh
End Sub

"Michael A" wrote:

Ok, I have been at this for awhile, with no knowledge of VB at all, what I am
trying to do is copy all the rows on a sheet to the appropriate named sheet
using the B column as the reference to the sheet name. I have the code
working to where i dont get errors now, but its not working as intended. i
dont get any errors.. but its not moving all the data, only some of it, the
names are correct, it just dosn't move them. For example, it skips everything
that goes to the "BOB" sheet, even though there is plenty of things that
match that criteria, but the "RES" sheet has everythign moved over to it just
fine.. its being selective..any help would be great here is the code i have
that produces no errors

Sub CopyToSheets()

Dim rng As Range
Dim oCell As Range

Set rng = Range("B4:B" & Cells(Rows.Count, "B").End(xlUp).Row)
For Each oCell In rng
oCell.EntireRow.Copy _
Destination:=Sheets(oCell.Value).Range("A65536").E nd(xlUp).Offset(1,
0)
Next oCell


End Sub

  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 48
Default macro not working as intended

hey gocush, im glad you responded, it is indeed the code you sent me. I was
mistaken when i posted this.. the sheets that I thought it wasn't pasting
them to, it is, however, it is pasting them to row 20345 and below. So some
are working just fine but others arent posting until after row 20k, but they
are blank sheets below line 4.. any ideas?

"gocush" wrote:

Michael,
This looks like the code I sent you earlier. A couple of comments.

1. This code only copies but does not delete the old. Usually when we say
we intend to MOVE data it means we also want to delete the old data. Do you
want to just copy or also delete the old data?

2. Since the code works for some sheet names but not others, it leads me to
the conclusion that the code is good but the Sheet name is not the same as
what you have in Col B. My guess is that it is a case-sensitive issue:
something may be capitalizes but not everywhe (BOB vs Bob) or maybe a
space at the end ("BOB" vs "BOB ") which cannot be seen but is still there.

You might try adding the following error trapping:

Sub CopyToSheets()

Dim rng As Range
Dim oCell As Range
Dim Sh As Worksheet

On Error GoTo ErrHandler
Set rng = Range("B4:B" & Cells(Rows.Count, "B").End(xlUp).Row)
For Each oCell In rng
oCell.EntireRow.Copy _
Destination:=Sheets(oCell.Value).Range("A65536").E nd(xlUp).Offset(1,
0)
Sheets(oCell.Value).Select
Sheets("Sheet1").Select
Next oCell
Exit Sub
ErrHandler:
MsgBox "Cannot find the Worksheet: " & oCell.Value
For Each Sh In Worksheets
If UCase(Sh.Name) Like UCase(Trim(oCell.Value)) Then
MsgBox "However, the Sheet named: " & Sh.Name & " was
found."
End If
Next Sh
End Sub

"Michael A" wrote:

Ok, I have been at this for awhile, with no knowledge of VB at all, what I am
trying to do is copy all the rows on a sheet to the appropriate named sheet
using the B column as the reference to the sheet name. I have the code
working to where i dont get errors now, but its not working as intended. i
dont get any errors.. but its not moving all the data, only some of it, the
names are correct, it just dosn't move them. For example, it skips everything
that goes to the "BOB" sheet, even though there is plenty of things that
match that criteria, but the "RES" sheet has everythign moved over to it just
fine.. its being selective..any help would be great here is the code i have
that produces no errors

Sub CopyToSheets()

Dim rng As Range
Dim oCell As Range

Set rng = Range("B4:B" & Cells(Rows.Count, "B").End(xlUp).Row)
For Each oCell In rng
oCell.EntireRow.Copy _
Destination:=Sheets(oCell.Value).Range("A65536").E nd(xlUp).Offset(1,
0)
Next oCell


End Sub

  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 48
Default macro not working as intended

ok, its working great now. Thank you very much for your help.

"Michael A" wrote:

hey gocush, im glad you responded, it is indeed the code you sent me. I was
mistaken when i posted this.. the sheets that I thought it wasn't pasting
them to, it is, however, it is pasting them to row 20345 and below. So some
are working just fine but others arent posting until after row 20k, but they
are blank sheets below line 4.. any ideas?

"gocush" wrote:

Michael,
This looks like the code I sent you earlier. A couple of comments.

1. This code only copies but does not delete the old. Usually when we say
we intend to MOVE data it means we also want to delete the old data. Do you
want to just copy or also delete the old data?

2. Since the code works for some sheet names but not others, it leads me to
the conclusion that the code is good but the Sheet name is not the same as
what you have in Col B. My guess is that it is a case-sensitive issue:
something may be capitalizes but not everywhe (BOB vs Bob) or maybe a
space at the end ("BOB" vs "BOB ") which cannot be seen but is still there.

You might try adding the following error trapping:

Sub CopyToSheets()

Dim rng As Range
Dim oCell As Range
Dim Sh As Worksheet

On Error GoTo ErrHandler
Set rng = Range("B4:B" & Cells(Rows.Count, "B").End(xlUp).Row)
For Each oCell In rng
oCell.EntireRow.Copy _
Destination:=Sheets(oCell.Value).Range("A65536").E nd(xlUp).Offset(1,
0)
Sheets(oCell.Value).Select
Sheets("Sheet1").Select
Next oCell
Exit Sub
ErrHandler:
MsgBox "Cannot find the Worksheet: " & oCell.Value
For Each Sh In Worksheets
If UCase(Sh.Name) Like UCase(Trim(oCell.Value)) Then
MsgBox "However, the Sheet named: " & Sh.Name & " was
found."
End If
Next Sh
End Sub

"Michael A" wrote:

Ok, I have been at this for awhile, with no knowledge of VB at all, what I am
trying to do is copy all the rows on a sheet to the appropriate named sheet
using the B column as the reference to the sheet name. I have the code
working to where i dont get errors now, but its not working as intended. i
dont get any errors.. but its not moving all the data, only some of it, the
names are correct, it just dosn't move them. For example, it skips everything
that goes to the "BOB" sheet, even though there is plenty of things that
match that criteria, but the "RES" sheet has everythign moved over to it just
fine.. its being selective..any help would be great here is the code i have
that produces no errors

Sub CopyToSheets()

Dim rng As Range
Dim oCell As Range

Set rng = Range("B4:B" & Cells(Rows.Count, "B").End(xlUp).Row)
For Each oCell In rng
oCell.EntireRow.Copy _
Destination:=Sheets(oCell.Value).Range("A65536").E nd(xlUp).Offset(1,
0)
Next oCell


End Sub

  #5   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1,758
Default macro not working as intended

See one more guess at your other thread.

Michael A wrote:

Ok, I have been at this for awhile, with no knowledge of VB at all, what I am
trying to do is copy all the rows on a sheet to the appropriate named sheet
using the B column as the reference to the sheet name. I have the code
working to where i dont get errors now, but its not working as intended. i
dont get any errors.. but its not moving all the data, only some of it, the
names are correct, it just dosn't move them. For example, it skips everything
that goes to the "BOB" sheet, even though there is plenty of things that
match that criteria, but the "RES" sheet has everythign moved over to it just
fine.. its being selective..any help would be great here is the code i have
that produces no errors

Sub CopyToSheets()

Dim rng As Range
Dim oCell As Range

Set rng = Range("B4:B" & Cells(Rows.Count, "B").End(xlUp).Row)
For Each oCell In rng
oCell.EntireRow.Copy _
Destination:=Sheets(oCell.Value).Range("A65536").E nd(xlUp).Offset(1,
0)
Next oCell


End Sub


--

Dave Peterson
Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Conditional Formatting Not Working As Intended Bishop Excel Worksheet Functions 3 February 5th 10 08:51 PM
Excel 2003 worksheet duplication -not intended Joan Excel Worksheet Functions 2 December 17th 07 04:10 PM
Limit Macro to Intended worksheet. Quin Excel Worksheet Functions 2 March 2nd 07 02:49 AM
Macro working in Excel 2003; not working in Excel 2000 Leslie Barberie Excel Programming 5 May 20th 04 07:51 PM
Code deleting values -- not as intended Stuart[_5_] Excel Programming 2 May 3rd 04 07:36 PM


All times are GMT +1. The time now is 12:44 AM.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright ©2004-2024 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"