VBA Search / Replace With Offset 1 Column And Offset 2 Column
Mar 22, 2013
I am trying to work out how to nest offset in a code using search replace. The goal is to find a value from cell A1 (example) and replace the values in the cells next to the cell containing samuel and the cell containing samuel.
A sort of search and remove data tool if you like So for example:
[QUOTE]A1: "samuel" (the search criteria)
Search range is: B1:D400
(for example)
Cell B40 = samuel
C40 = Driver
D40 = year
So, the macro is activated and finds "samuel" in B40 and I would like C40 & D40 replaced with "" The code I'm using is below: (this is just replacing the cell containing the search criteria with "test". I would like to nest offset(0,2) & offset(0,3).Value = ""
Sub Macro1()
Range("B1:D400").Select
Selection.Replace What:=Sheets("Sheet1").Range("A1").Value, Replacement:="test", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
End Sub
I am having some difficulties using a combination of IF and the OFFSET function to display a range of cell values from another column based on a simple condition. The values I need to display at the destination cells should be offset by 8 columns to the right and "X" rows down from the reference column. The value "X" is to be determined via the IF function to check for the row index number.
For example, if Index value "X" = 8, then display the value of B2 in cell I9. IF X = "9", display B2 in cell I10 etc.
I have attached a sample worksheet that provides some examples.
I have created some code to look in a cell to see if the name matches that which has been input in a drop down list on a combo box on an input form and then copy the value of column 10 in the same row. I created a public variable for that name as txtTenant.
What I wanted to do was to then write the code that if the first cell did not match the name selected (txtTenant) that it would then drop down one cell and compare it and keep going down until it finds a match, right down to the end of the column of data if necessary.
My coding is not working - it stays at the first person it finds in the first cell. I am not sure if I should be using For...next loops or loop.....
This is the Sub FillData()
Application. ScreenUpdating = False
RentRow = 2 'sets the first row as row 2 in the data sheet to copy from NewRentRow = 7 'seta the row to copy to in txtTenant
I need to make a list of items that occur above the string "Room" and the data offset to the bottom and bottom right.
Here is the sample data: 1, 100A 2, Room, Rh 3, 123, 11 3, 200B 4, Room, Rh 5, 456, 24 6, 300C 7, Room, Rh 8, 789, 56 ...
On another sheet this is what the output should look like: 1 100A 123 11 2 200B 456 24 3 300C 789 56 ...
Here is a copied function that I've been trying to work with. "ROOM_AREAS" is the range in column A. I just can't seem to figure out how the ROW and SMALL functions are supposed to work here.
Here's another question for you excel junkies to solve, while I try to understand what y'all are doing. I have two worksheets named "MASTER" and "BEDS". What I need to do, in sheet "MASTER" is go down column ("K:K"). "K:K" has unique data in it. then for each row...
"X" .value = offset minus one "Y".value = no offset
now I need to go to sheet "BEDS" and find "Y" in column "A:A" then
from "Y" offset + 3.value = "TRUE" "Y" offset +4.value = "X"
there should only be one instance of "Y" in column "A:A"..............
I need to combine rows that have the same value in column a and column b to the same row by offsetting column c to the next available column. For example, I would like the first 6 rows of the provided sample to appear like this.
0014B22<@44>Soil Properties and Qualities<@44>Soil Properties and Qualities<@44>Soil Properties and Qualities 0014B23<@28>Coursey<@28>Ogles<@28>Shelocta
Sometimes the values are the same in column c, sometimes they are different. I do not want to delete duplicate rows where they are the same. Sometimes there are 2 rows that have the same values in column a and column b, other times there may be 3 or even 4 rows with the same values in column a and column b. Regardless, I would like the values in column c combined on the same row in the next available column. It would be nice if the duplicate column a and column b rows (with a null column c cell) were then removed, but I could do that in the next step.
0014B22<@44>Soil Properties and Qualities 0014B22<@44>Soil Properties and Qualities 0014B22<@44>Soil Properties and Qualities 0014B23<@28>Coursey 0014B23<@28>Ogles 0014B23<@28>Shelocta 0014B24<@33><i>Available water capacity:<p> High (about 11.5 inches) 0014B24<@33><i>Available water capacity:<p> Very low (about 2.9 inches) 0014B24<@33><i>Available water capacity:<p> High (about 9.0 inches) 0014B25<@33><i>Slowest saturated hydraulic conductivity:<p> Moderately high (about 0.57 in/hr) 0014B25<@33><i>Slowest saturated hydraulic conductivity:<p> High (about 1.98 in/hr) 0014B25<@33><i>Slowest saturated hydraulic conductivity:<p> Moderately high (about 0.57 in/hr) 0014B26<@33><i>Depth class:<p> Very deep (more than 60 inches) 0014B26<@33><i>Depth class:<p> Very deep (more than 60 inches) 0014B26<@33><i>Depth class:<p> Very deep (more than 60 inches) 0014B27<@33><i>Depth to root-restrictive feature:<p> More than 60 inches 0014B27<@33><i>Depth to root-restrictive feature:<p> More than 60 inches..............
This question is probably simple for some of you but I can't seem to figure it out. All I am doing is grouping data by company name in column A and taking the value of orders in column P and subtotaling them. What I would like to do is offset the subtotal to be in column Q instead of totaling in column P. This is my code for the subtotal:
Sub CustomerWarrantySubtotals() Dim EOF As Integer Sheets("Customer Warranty").Activate EOF = Columns("A:A"). find(what:="", lookat:=xlWhole).Row - 1 Range("A1:P" & EOF).Select Selection.Subtotal GroupBy:=1, Function:=xlSum, TotalList:=Array(16), _ Replace:=False, PageBreaks:=False, summaryBelowData:=True 'Is there anything in here that will let me change what column to put the total in? End Sub
I am looking to create a Macro that says: look at all of the data in column E:E and if you find a cell that has the word "Ohio" in the string of information, then offset that cell by 3 to the right and make that cell equal to "4"
Sub Test()
Columns("E:E").Select Dim rng As Range, cell As Range Dim worksh As Worksheet Set worksh = Worksheets("Axys Layout") Set rng = Range("E:E") For Each cell In rng If InStr(1, cell, "Ohio", 1) Then cell.Offset(, 3).Value = 4 End If Next Ecell End Sub
This is not working and I'm not even sure that I am on the right track!
I am attempting to do is have a macro (Via Command button) go through column A to find the word "TOTAL". Once that is found I want it to offset by 3 rows (from the word "TOTAL") to grab the number and place it into column B.
I have sheet1 with four columns. Team, Issue, Discussion and Recommendation. Discussion and Recommendation headings were placed in column B along with the data in the file I was sent. I need to get it back into table format to eventually load into Access. What I'm trying to do is to loop reading down column B. When I find the word “Discussion” (exact format) I need to drop down one row below the word, cut whatever is in the row, move one column to the right, Column C, and two rows up and paste. For example, cell B3 has “Discussion”. I need to drop to B4, cut whatever is in the cell and move to C2 and paste. I also need the same to happen for Recommendation. Find the word, drop down one row, cut whatever is in the cell, move two columns to the right and up four rows. I would like to delete the rows I moved data from, but will do that by hand if it’s too hard to do in a macro.
An example of my data: TeamText Design4. Reuse existing code to extent possible. DesignDiscussion DesignNo discussion DesignRecommendation DesignEstablish a baseline and work to the plan. Design5. Delete old code DesignDiscussion DesignNo discussion DesignRecommendation DesignNo recommendation Design6. Plan to work without full details. DesignDiscussion DesignIncremental design DesignRecommendation DesignWork on smaller details first
I have months listed in this format in columns/rows 01/01/06, 02/01/06 and so on in (J9 to L9). I have a reference cell A5 = Month in the same format. This value changes every month. I want to use the SUM Formula of YTD in column/row W9. If the month is 05/01/6 then the sum should be C9 to G9 and so on.
i tried using the lookup but it gave a different result. i want to search a value from sheet1 A to sheet2 A and copy the remarks from sheet2 B and paste it to sheet 1 B and if not found leave it blank.
I'm writing some code where I need to know the column in which a specifc text string occurs. Because of the nature of the sheet, the string will only appear in one column, but that could be in almost any column on the worksheet.
For example say the text string is "Year 1", I need to find the column with this string, and then offset down to a predetermined row, or offset over to the appropriate column (something like below).
With Selection .Offset(0, x).Select If List.Selected(0) = True Then y = i - 1 With Selection .Value = Salary * Inflation1 ^ y End With Else
i'm running out an option, i must use offset or index function but there are problem found: 1.Offset function cannot use a dynamic height or number of columns and the result are #NAME?, here is the code
VB: Private Sub CommandButton1_Click()Dim k As Variant Dim b As Variant Range(Me.RefEdit1).Name = "item"
I am in the process of writing a VBA code(I should I am fairly new to this code writing!!!).What I need to be able to do is below.(enclosed please find a output in an xls file) What I should be able to do is below:
1.Find the text "Cash(No Listing)(Monthly)"
2. Offset to the 13th Column after that
3.Select the value in this column ,copy the value
4.Go to a row above and move one column to the left i.e.offset (-1,-1) and move 12 column backwards i.e.offset(0,-12)
5.Copy the value in 3 above to this entire range
6.Repeat this process for the entire file
My code is as below.Let me know where am I making a mistake. Just to let you know that this code performs the job well for the first entry i.e in the yellow makde area and doesn't do the job for any further entries .Llooks like I have some problem with the loop but not sure as to whats happening!
I want to be able to search all of column A for the string "UNAUTH O/D FEE £20.00" and when it is found, add £20 to column B, and 01/01/00 into column D of the same row.
Sub feedate()
Set rd = Sheets("fees")
z = 20 x = 1 / 1 / 6
For i = 1 To rd. Range("A65536").End(xlUp).Row If UCase(Cells(i, 1)) = "UNAUTH O/D FEE £20.00" Then Cells(i, 2).Value = z Cells(i, 3).Value = x End If Next i End Sub
I've created a search box for a price list, but some of the values come up with #REF. After many attempts I noticed that each of the formulas I created on the price list page came up with a different result for the values highlighted in each column. The formula is the same for each column, the column numbers being the
only difference - for instance: Column A = code - the formula is =OFFSET(Pricelist!$A$3,0,0,COUNTA(Pricelist!$A:$A)-1). Column D = colour - the formula is the same, but reads $D$3 and $D:$D.
When I go to Name Manager and check this formula, it only selects the first 105 entries in the column. There are about 380 entries and more may be added at various stages.
I have formulas for five other columns and they do exactly the same thing, but each column stops at a different entry. I'm working in Excel 2007, but it's a 2003 document.
I am attempting to change what cells this macro places into the report from each sheet and am having no luck. It now captures the “ Date”, Worksheet name”, “Address”, “Pwo”, “Part”, “Time” and “Comments” . I would like to replace the time field (the one after the “Part” and change it to “Quality Technician” so that each entry it finds with comments it will also list who’s comments they are instead of the time. I have not been able to fix the missing headers or changing what it captures.
Private Sub CommandButton1_Click()
Dim wks As Worksheet .......... Dim FirstCol As Long Dim LastCol As Long Dim iCol As Long
I'm trying to search a column to match the value in textbox1 then return to the userform the values from the same row in columns A to textbox2 and so forth.
I can get it to find the value but am struggling to get the data back to the userform
Reason for this is so the user can search an Id, get all the data back on the order before changing the Id number
The code im trying to use is
Code:
Private Sub CommandButton1_Click() Dim lr As Long, i As Long Dim x As Variant, y As String Dim Found As Range x = TextBox1.Value y = UserForm2.TextBox2
I'm using a code to search some information in a pivot table and copy the value in the cells with offset(0,1) and is very very slow, I tryed another method with the using of Find but isn't working: error message: missing object in the with cycle.
Here is the working code:
Dim DataFine, DataInizio, UltimaRiga, Gg As Date Dim NomeMacchina, Plant As String Dim Cl As Object Dim Pr As String Application.ScreenUpdating = False
[Code] .......
Here is the code who doesn't work
For i = 6 To 500 Giorno = Sheets("OEE03").Cells(i, 2) With Sheets("01") Pr = Range("A5:A500").Find(Giorno).Offset(0, 1).Value Sheets("OEE03").Cells(i, 9).Value = Pr End With Next
if I use this code on a normal sheet it works but when I try to use it on a Pivot table fields give me always the error message.
I want to replace all blank cells in column A with the word "BLANK" but my problem is that I need to tell Excel to stop searching for blank cells in column A once and only once column A is equal to the last data row in the column named "Product Number". I tried this macro but, naturally, it replaces all the empty cells in the WHOLE COLUMN.
I will always have a header column in row 1. The data is below that (data will always start at row 2).
Columns("A:A").Select Selection.Replace What:="", Replacement:="BLANK", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False How can I change this so that the find/replace macro searches all the way down equal to the last data row in the "Product Number" column?
Below are 2 examples. Example 1 is pre macro and example 2 is post macro.