Hi,

I have a workbook set up with various sheets for individual contract managers. On each sheet there is a table listing all contracts that are due for review. I have the following code which enables me to email a copy of each table to the relevant contract manager.

Sub Send_Range()
   
   ActiveSheet.Range("C5:N100").Select
   
   ActiveWorkbook.EnvelopeVisible = True
   
   With ActiveSheet.MailEnvelope
      .Introduction = "Hi,  Please find below all contracts managed by you that are due for review within the next month period.  Please kindly complete a 'Contract Review Form' for each of your contracts due for review, and hand them back to myself. Regards, Ross"
      .Item.To = "employeed email to go here"
      .Item.Subject = "Monthly Contract Reviews"
      .Item.Send
   End With
End Sub
At present this code sends everything from row 5 to row 100 - however I do not need it to send 100 rows as the number of rows will vary from month to month when I run the reports.

Is there an alternative to; ActiveSheet.Range("C5:N100").Select that will select all rows that have data in them, instead of all rows up to 100?

Many thaks

Ross