Microsoft Office Forums

Go Back   Microsoft Office Forums > >

Reply
 
Thread Tools Display Modes
  #1  
Old 01-25-2012, 02:46 AM
Colin Legg's Avatar
Colin Legg Colin Legg is offline How to use named ranges in excel vba? Windows 7 32bit How to use named ranges in excel vba? Office 2010 32bit
Expert
 
Join Date: Jan 2011
Location: UK
Posts: 369
Colin Legg will become famous soon enough
Default

I think bosve73 finds there is a problem if someone starts inserting columns in the sheet though. Ideally this wouldn't happen and some sort of structural protection would be enforced, but using named ranges is a good safeguard. You could actually have 3 named ranges, one for each of the "Risk", "Problem" and "Status" columns.

Then your code would be something like this (I've broken it out into logical steps):

Code:
Public Sub Save_Click()
    Dim lNextRow As Long
    Dim wksDb As Worksheet
    
    Dim rngRisk As Range
    Dim rngProblem As Range
    Dim rngStatus As Range
    
    Set wksDb = Worksheets("Databas")
    
    Set rngRisk = wksDb.Range("Risk")
    Set rngProblem = wksDb.Range("Problem")
    Set rngStatus = wksDb.Range("Status")
    
    ' The statement simulates activating the last cell in the "risk" column, pressing End,
    ' pressing Up Arrow, and then moving down one row. If you do that manually,
    ' the cell pointer will be in the next empty cell in the "risk" column  — even if the data
    ' area doesn’t begin in row 1 and contains blank rows.
    lNextRow = wksDb.Cells(wksDb.Rows.Count, rngRisk.Column).End(xlUp).Offset(1, 0).Row
    
    wksDb.Cells(lNextRow, rngRisk.Column) = Me.cboRisk.Value
    wksDb.Cells(lNextRow, rngProblem.Column) = Me.txtProblem.Value
    wksDb.Cells(lNextRow, rngStatus.Column) = Me.cboStatus.Value
End Sub

Reply With Quote
  #2  
Old 01-25-2012, 06:25 AM
bosve73 bosve73 is offline How to use named ranges in excel vba? Windows XP How to use named ranges in excel vba? Office 2003
Novice
How to use named ranges in excel vba?
 
Join Date: Aug 2010
Posts: 6
bosve73 is on a distinguished road
Default

Thank you Collin that was exactly what I was looking for. I tried your code and it works perfect. I still have some questions since I really want to learn more about VBA.

Code:
lNextRow = wksDb.Cells(wksDb.Rows.Count, rngRisk.Column).End(xlUp).Offset(1, 0).Row
I understand how the rest of the code works except the line above, to be more specific (wksDb.Rows.Count, rngRisk.Column).End

How come i don't need to add the rest of the ranges(problem and status)?
Reply With Quote
  #3  
Old 01-25-2012, 09:26 AM
Colin Legg's Avatar
Colin Legg Colin Legg is offline How to use named ranges in excel vba? Windows 7 32bit How to use named ranges in excel vba? Office 2010 32bit
Expert
 
Join Date: Jan 2011
Location: UK
Posts: 369
Colin Legg will become famous soon enough
Default

That's a very good question and the answer is that the code makes a big assumption (this assumption was already included in your original post). When the VBA code determines the first free row, it does so by only checking the Risk column. It assumes that the first free row in the risk column will be the same for the others. If that may not be the case then you should change the code to check them all.
Reply With Quote
Reply



Similar Threads
Thread Thread Starter Forum Replies Last Post
How to use named ranges in excel vba? email as pdf attachment - subject line and attachment named after mail merge Nexus Mail Merge 12 04-13-2011 11:34 PM
How to use named ranges in excel vba? Named range drop-down jgelpi16 Excel 1 04-08-2011 03:08 PM
Dynamic Named Ranges using text hannu Excel 0 06-22-2010 04:42 PM
Can't import home adresses in outlook 2010 from excel named ranges eekie Outlook 0 05-14-2010 02:04 PM
How to use named ranges in excel vba? Opening multiple Excel files within the same Excel window. lost9471 Excel 2 05-01-2010 01:57 PM

Other Forums: Access Forums

All times are GMT -7. The time now is 03:02 PM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2025, vBulletin Solutions Inc.
Search Engine Optimisation provided by DragonByte SEO (Lite) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.
MSOfficeForums.com is not affiliated with Microsoft