Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
Home
DiscussionsAccessExcelInfoPathOutlookPowerPointPublisherWord
DirectoryUser Groups
Related Topics
Outlook ExpressInternet ExplorerWindowsMS Server ProductsMore Topics ...

MS Office Forum / Excel / Programming / December 2007

Tip: Looking for answers? Try searching our database.

Macro to validate is cell is not empty and copy the line

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
Steff - 10 Dec 2007 18:31 GMT
Hello Expert !!!

I would like to run a macro to validate if the cell is not empty and
copy the related lines to another worksheet.

Example :

I have Sheet 1 and Sheet 2

In Sheet 1, I would like run a macro to check if Sheet2  F3 is empty.
If not copy A3, B3, C3 and D3 to Sheet 1. If the F3 is empty, go to F4
and make the same validation.

If you have any questions, feel free to contact me

Thanks a lot

Stephane Vial
Per Jessen - 10 Dec 2007 20:56 GMT
> I would like to run a macro to validate if the cell is not empty and
> copy the related lines to another worksheet.
[quoted text clipped - 12 lines]
>
> Stephane Vial

Hello Stephane

Try to have a look at this.

Sub copy()
With Sheets(2)
   If IsEmpty(.Range("F3")) = False Then
      .Range("A3:D3").copy _
       Destination:=Worksheets("Sheet1").Range("A3")
   ElseIf IsEmpty(.Range("F4")) = False Then
       .Range("A4:D4").copy _
       Destination:=Worksheets("Sheet1").Range("A4")
   End If
End With

End Sub

Regards

Per
Susan - 10 Dec 2007 21:16 GMT
Steff - this is what i came up with:

Option Explicit

Sub check_and_copy()

Dim ws1 As Worksheet
Dim ws2 As Worksheet
Dim wb As Workbook
Dim myRange As Range
Dim c As Range
Dim myLastRow1 As Long
Dim myLastRow2 As Long
Dim myPasteRange As Range

Set wb = ActiveWorkbook
Set ws1 = ActiveWorkbook.Worksheets(1)
Set ws2 = ActiveWorkbook.Worksheets(2)

myLastRow1 = ws1.Cells(20000, 1).End(xlUp).Row
Set myRange = ws1.Range("f1:f" & myLastRow1)

For Each c In myRange
  If c.Value = "" Then
  'do nothing'
  Else
  ws1.Range("a" & c.Row & ":f" & c.Row).Copy
     'the pasting row has to be set inside
     'the loop because it will change each
     'time a new row is pasted
  myLastRow2 = ws2.Cells(20000, 1).End(xlUp).Offset(1, 0).Row
  Set myPasteRange = ws2.Range("a" & myLastRow2)
  myPasteRange.PasteSpecial xlPasteAll
  Application.CutCopyMode = False
  End If
Next c

End Sub

hope it gets you started!!!
:)
susan

> Hello Expert !!!
>
[quoted text clipped - 14 lines]
>
> Stephane Vial
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.