Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.worksheet.functions
external usenet poster
 
Posts: 465
Default Changing Content in one coulumn using given content in another


Hi All

I have a small puzzle.

In one column , I have a list of various components , many of which
appear multiple times. In another , I have a list of their prices.

I need a small routine which will ask via popup for the column and
identify a particular component in it.

Then a new price for the chosen components will be requested and each
changed accordingly in the second column.

For example ;

Before

a 2.50
b 3.60
c 11.56
d 6.35
a 2.50
b 3.60
c 11.56
d 6.35
a 2.50
b 3.60
c 11.56
d 6.35

After ( component a is chosen , new price is 4.85)

a 4.85
b 3.60
c 11.56
d 6.35
a 4.85
b 3.60
c 11.56
d 6.35
a 4.85
b 3.60
c 11.56
d 6.35


Other prices for other components will be unaffected.

Can someone help?



Best Wishes
  #2   Report Post  
Posted to microsoft.public.excel.worksheet.functions
external usenet poster
 
Posts: 2,203
Default Changing Content in one coulumn using given content in another

Perhaps the routine below will work for you. You'd select an item which you
want to change the price for and then run the macro (you could put a button
or shape such as the text box from the drawing toolbar on the sheet and
attach the macro to it). It will then ask you for the new price, and if you
enter zero (the default at the prompt), nothing happens, but any non-zero
value will be used as the new price for all products/items that match.

Make a copy of your workbook to test with. Open the copy and press
[Alt]+[F11] to open the VB Editor. Choose Insert -- Module and copy the
code below and paste it into the module presented to you. Edit the Const
values in the code to tailor it to your worksheet. Close the VB Editor, save
the workbook and give it a try.

Sub ChangePrices()
'after selecting a cell that
'has the name of a product/item
'to change the price of, call
'this routine to change the
'price of that item in all
'instances where it appears
'in the same column.
'
'change these Const values as needed
'
'this should be the column
'that the product/item name
'is in
Const KeyCol = "A"
'this should be the column
'that the prices are in
Const priceCol = "B"

Dim searchItem As String
Dim searchList As Range
Dim anyCell As Range
Dim promptPhrase As String
'change the type as needed
'set up as Currency, but
'could also be Single or Double
'to accomodate decimal values
Dim newPrice As Currency

'test to validate that we
'should even begin processing
If Selection.Cells.Count 1 Then
'more than one cell selected
Exit Sub
End If
If Selection.Column < _
Range(KeyCol & 1).Column Then
'not in the proper column
Exit Sub
End If
'set up prompt for the new price
promptPhrase = "Enter the new price for '"
promptPhrase = promptPhrase & ActiveCell.Value
promptPhrase = promptPhrase & "'." & vbCrLf & _
"Enter zero or just press [Enter] to cancel."
newPrice = _
InputBox(promptPhrase, "Enter New Price", 0)
If newPrice = 0 Then
Exit Sub ' user cancelled
End If
'capture the product/item name
searchItem = ActiveCell.Value
'set up the range to be searched
'assumes row 1 has a label
Set searchList = _
Range(KeyCol & "2:" & _
Range(KeyCol & Rows.Count).End(xlUp).Address)
'improve performance
Application.ScreenUpdating = False
'do the work
For Each anyCell In searchList
If anyCell = searchItem Then
Range(priceCol & anyCell.Row) = newPrice
End If
Next
'house cleaning
Set searchList = Nothing
'announce job completion
MsgBox "Price change for '" & _
ActiveCell.Value & "' completed."
End Sub


"Colin Hayes" wrote:


Hi All

I have a small puzzle.

In one column , I have a list of various components , many of which
appear multiple times. In another , I have a list of their prices.

I need a small routine which will ask via popup for the column and
identify a particular component in it.

Then a new price for the chosen components will be requested and each
changed accordingly in the second column.

For example ;

Before

a 2.50
b 3.60
c 11.56
d 6.35
a 2.50
b 3.60
c 11.56
d 6.35
a 2.50
b 3.60
c 11.56
d 6.35

After ( component a is chosen , new price is 4.85)

a 4.85
b 3.60
c 11.56
d 6.35
a 4.85
b 3.60
c 11.56
d 6.35
a 4.85
b 3.60
c 11.56
d 6.35


Other prices for other components will be unaffected.

Can someone help?



Best Wishes
.

  #3   Report Post  
Posted to microsoft.public.excel.worksheet.functions
external usenet poster
 
Posts: 15,768
Default Changing Content in one coulumn using given content in another

I like the detailed comments!

--
Biff
Microsoft Excel MVP


"JLatham" wrote in message
...
Perhaps the routine below will work for you. You'd select an item which
you
want to change the price for and then run the macro (you could put a
button
or shape such as the text box from the drawing toolbar on the sheet and
attach the macro to it). It will then ask you for the new price, and if
you
enter zero (the default at the prompt), nothing happens, but any non-zero
value will be used as the new price for all products/items that match.

Make a copy of your workbook to test with. Open the copy and press
[Alt]+[F11] to open the VB Editor. Choose Insert -- Module and copy the
code below and paste it into the module presented to you. Edit the Const
values in the code to tailor it to your worksheet. Close the VB Editor,
save
the workbook and give it a try.

Sub ChangePrices()
'after selecting a cell that
'has the name of a product/item
'to change the price of, call
'this routine to change the
'price of that item in all
'instances where it appears
'in the same column.
'
'change these Const values as needed
'
'this should be the column
'that the product/item name
'is in
Const KeyCol = "A"
'this should be the column
'that the prices are in
Const priceCol = "B"

Dim searchItem As String
Dim searchList As Range
Dim anyCell As Range
Dim promptPhrase As String
'change the type as needed
'set up as Currency, but
'could also be Single or Double
'to accomodate decimal values
Dim newPrice As Currency

'test to validate that we
'should even begin processing
If Selection.Cells.Count 1 Then
'more than one cell selected
Exit Sub
End If
If Selection.Column < _
Range(KeyCol & 1).Column Then
'not in the proper column
Exit Sub
End If
'set up prompt for the new price
promptPhrase = "Enter the new price for '"
promptPhrase = promptPhrase & ActiveCell.Value
promptPhrase = promptPhrase & "'." & vbCrLf & _
"Enter zero or just press [Enter] to cancel."
newPrice = _
InputBox(promptPhrase, "Enter New Price", 0)
If newPrice = 0 Then
Exit Sub ' user cancelled
End If
'capture the product/item name
searchItem = ActiveCell.Value
'set up the range to be searched
'assumes row 1 has a label
Set searchList = _
Range(KeyCol & "2:" & _
Range(KeyCol & Rows.Count).End(xlUp).Address)
'improve performance
Application.ScreenUpdating = False
'do the work
For Each anyCell In searchList
If anyCell = searchItem Then
Range(priceCol & anyCell.Row) = newPrice
End If
Next
'house cleaning
Set searchList = Nothing
'announce job completion
MsgBox "Price change for '" & _
ActiveCell.Value & "' completed."
End Sub


"Colin Hayes" wrote:


Hi All

I have a small puzzle.

In one column , I have a list of various components , many of which
appear multiple times. In another , I have a list of their prices.

I need a small routine which will ask via popup for the column and
identify a particular component in it.

Then a new price for the chosen components will be requested and each
changed accordingly in the second column.

For example ;

Before

a 2.50
b 3.60
c 11.56
d 6.35
a 2.50
b 3.60
c 11.56
d 6.35
a 2.50
b 3.60
c 11.56
d 6.35

After ( component a is chosen , new price is 4.85)

a 4.85
b 3.60
c 11.56
d 6.35
a 4.85
b 3.60
c 11.56
d 6.35
a 4.85
b 3.60
c 11.56
d 6.35


Other prices for other components will be unaffected.

Can someone help?



Best Wishes
.



  #4   Report Post  
Posted to microsoft.public.excel.worksheet.functions
external usenet poster
 
Posts: 2,203
Default Changing Content in one coulumn using given content in another

Thanks!
I like to dream a little and actually have hope that perhaps a little
teaching can be accomplished along with providing help or solutions. And
even if the specific OP doesn't carry on with learning VBA, someone finding
such a post as a possible solution to their own problem might be able to
figure out if it's suitable and how to modify it for their own use.
Also, if someone sees it and realizes there's a better way to accomplish a
particular part of the code, then maybe they'll mention it.

"T. Valko" wrote:

I like the detailed comments!

--
Biff
Microsoft Excel MVP


"JLatham" wrote in message
...
Perhaps the routine below will work for you. You'd select an item which
you
want to change the price for and then run the macro (you could put a
button
or shape such as the text box from the drawing toolbar on the sheet and
attach the macro to it). It will then ask you for the new price, and if
you
enter zero (the default at the prompt), nothing happens, but any non-zero
value will be used as the new price for all products/items that match.

Make a copy of your workbook to test with. Open the copy and press
[Alt]+[F11] to open the VB Editor. Choose Insert -- Module and copy the
code below and paste it into the module presented to you. Edit the Const
values in the code to tailor it to your worksheet. Close the VB Editor,
save
the workbook and give it a try.

Sub ChangePrices()
'after selecting a cell that
'has the name of a product/item
'to change the price of, call
'this routine to change the
'price of that item in all
'instances where it appears
'in the same column.
'
'change these Const values as needed
'
'this should be the column
'that the product/item name
'is in
Const KeyCol = "A"
'this should be the column
'that the prices are in
Const priceCol = "B"

Dim searchItem As String
Dim searchList As Range
Dim anyCell As Range
Dim promptPhrase As String
'change the type as needed
'set up as Currency, but
'could also be Single or Double
'to accomodate decimal values
Dim newPrice As Currency

'test to validate that we
'should even begin processing
If Selection.Cells.Count 1 Then
'more than one cell selected
Exit Sub
End If
If Selection.Column < _
Range(KeyCol & 1).Column Then
'not in the proper column
Exit Sub
End If
'set up prompt for the new price
promptPhrase = "Enter the new price for '"
promptPhrase = promptPhrase & ActiveCell.Value
promptPhrase = promptPhrase & "'." & vbCrLf & _
"Enter zero or just press [Enter] to cancel."
newPrice = _
InputBox(promptPhrase, "Enter New Price", 0)
If newPrice = 0 Then
Exit Sub ' user cancelled
End If
'capture the product/item name
searchItem = ActiveCell.Value
'set up the range to be searched
'assumes row 1 has a label
Set searchList = _
Range(KeyCol & "2:" & _
Range(KeyCol & Rows.Count).End(xlUp).Address)
'improve performance
Application.ScreenUpdating = False
'do the work
For Each anyCell In searchList
If anyCell = searchItem Then
Range(priceCol & anyCell.Row) = newPrice
End If
Next
'house cleaning
Set searchList = Nothing
'announce job completion
MsgBox "Price change for '" & _
ActiveCell.Value & "' completed."
End Sub


"Colin Hayes" wrote:


Hi All

I have a small puzzle.

In one column , I have a list of various components , many of which
appear multiple times. In another , I have a list of their prices.

I need a small routine which will ask via popup for the column and
identify a particular component in it.

Then a new price for the chosen components will be requested and each
changed accordingly in the second column.

For example ;

Before

a 2.50
b 3.60
c 11.56
d 6.35
a 2.50
b 3.60
c 11.56
d 6.35
a 2.50
b 3.60
c 11.56
d 6.35

After ( component a is chosen , new price is 4.85)

a 4.85
b 3.60
c 11.56
d 6.35
a 4.85
b 3.60
c 11.56
d 6.35
a 4.85
b 3.60
c 11.56
d 6.35


Other prices for other components will be unaffected.

Can someone help?



Best Wishes
.



.

  #5   Report Post  
Posted to microsoft.public.excel.worksheet.functions
external usenet poster
 
Posts: 465
Default Changing Content in one coulumn using given content in another


Hi

OK Thanks for your help with this. It worked perfectly , first time.

I'm grateful for your time and expertise.



Best Wishes




In article , JLatham
writes
Perhaps the routine below will work for you. You'd select an item which you
want to change the price for and then run the macro (you could put a button
or shape such as the text box from the drawing toolbar on the sheet and
attach the macro to it). It will then ask you for the new price, and if you
enter zero (the default at the prompt), nothing happens, but any non-zero
value will be used as the new price for all products/items that match.

Make a copy of your workbook to test with. Open the copy and press
[Alt]+[F11] to open the VB Editor. Choose Insert -- Module and copy the
code below and paste it into the module presented to you. Edit the Const
values in the code to tailor it to your worksheet. Close the VB Editor, save
the workbook and give it a try.

Sub ChangePrices()
'after selecting a cell that
'has the name of a product/item
'to change the price of, call
'this routine to change the
'price of that item in all
'instances where it appears
'in the same column.
'
'change these Const values as needed
'
'this should be the column
'that the product/item name
'is in
Const KeyCol = "A"
'this should be the column
'that the prices are in
Const priceCol = "B"

Dim searchItem As String
Dim searchList As Range
Dim anyCell As Range
Dim promptPhrase As String
'change the type as needed
'set up as Currency, but
'could also be Single or Double
'to accomodate decimal values
Dim newPrice As Currency

'test to validate that we
'should even begin processing
If Selection.Cells.Count 1 Then
'more than one cell selected
Exit Sub
End If
If Selection.Column < _
Range(KeyCol & 1).Column Then
'not in the proper column
Exit Sub
End If
'set up prompt for the new price
promptPhrase = "Enter the new price for '"
promptPhrase = promptPhrase & ActiveCell.Value
promptPhrase = promptPhrase & "'." & vbCrLf & _
"Enter zero or just press [Enter] to cancel."
newPrice = _
InputBox(promptPhrase, "Enter New Price", 0)
If newPrice = 0 Then
Exit Sub ' user cancelled
End If
'capture the product/item name
searchItem = ActiveCell.Value
'set up the range to be searched
'assumes row 1 has a label
Set searchList = _
Range(KeyCol & "2:" & _
Range(KeyCol & Rows.Count).End(xlUp).Address)
'improve performance
Application.ScreenUpdating = False
'do the work
For Each anyCell In searchList
If anyCell = searchItem Then
Range(priceCol & anyCell.Row) = newPrice
End If
Next
'house cleaning
Set searchList = Nothing
'announce job completion
MsgBox "Price change for '" & _
ActiveCell.Value & "' completed."
End Sub


"Colin Hayes" wrote:


Hi All

I have a small puzzle.

In one column , I have a list of various components , many of which
appear multiple times. In another , I have a list of their prices.

I need a small routine which will ask via popup for the column and
identify a particular component in it.

Then a new price for the chosen components will be requested and each
changed accordingly in the second column.

For example ;

Before

a 2.50
b 3.60
c 11.56
d 6.35
a 2.50
b 3.60
c 11.56
d 6.35
a 2.50
b 3.60
c 11.56
d 6.35

After ( component a is chosen , new price is 4.85)

a 4.85
b 3.60
c 11.56
d 6.35
a 4.85
b 3.60
c 11.56
d 6.35
a 4.85
b 3.60
c 11.56
d 6.35


Other prices for other components will be unaffected.

Can someone help?



Best Wishes
.


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
range of Formula copy but not changing the content aw Excel Discussion (Misc queries) 4 November 20th 07 05:00 AM
How to transpose formulas from column content to row content. Notrom Excel Worksheet Functions 1 October 12th 06 06:57 PM
Changing row content with single cell click aussiemike Excel Discussion (Misc queries) 2 May 25th 06 06:37 AM
changing the colour of cells depending on the content. johnny.exe Excel Discussion (Misc queries) 3 January 26th 06 09:41 AM
Changing the font size of a drop-down box content Ross Macadam Excel Discussion (Misc queries) 1 August 5th 05 05:07 PM


All times are GMT +1. The time now is 03:05 PM.

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"