I've got a problem with one of my macros. This code should import a text file. The name of the imported file is the same as the value of the cell that is active the moment the macro starts. The way I've written it, the code can't find the needed text file.
When I try to insert a row, Excel displays the warning "cannot shift nonblank cells off the worksheet". I understand what the warning means but there are no nonblank cells at the bottom of my worksheet! Just to be sure, I have selected the bottom-most rows, cleared them, deleted them, and everything else I can think of. The warning still appears.
There will be anywhere from 1 to 5 values in each of these columns, but not successively. There will be several blank cells inbetween these nonblank cells, which I need stacked neatly into the first five rows at the top of the worksheet.
Example:
(A10) - Apples (A17) - Oranges (A23) - Peaches (A38) - Some other fruit of your choice...
(B14) - Toyota (B21) - Honda (B44) - Mercury...........
i need vba to automate counting the number of nonblank cells in a colum.
i may be in a diffrent colum each time i run this so i need it to be dynamic in that sense i need to store the result as a variable once i have the result.
i have a feeling the best way to do this would be to calculate it in the bottom most cell.
but i am unsure how to make (C:C) dynamic =65536-(COUNTBLANK(C:C))
I have a pretty big worksheet (230 columns x over a thousand rows). Any given column might have 3-4 nonblank cells; the rest are blank. What I want to do for each column is obtain the address of each nonblank cell, then grab the contents of the corresponding cell in the B column and concatenate the results. In the attached example, I want to put the function in d2, and the expected result would be ar 001, fc 001, hw 003.
I'm currently working on an excel project for work, to replace our production tracking to something more current (anything is better than pen and paper!). I am in charge of keeping track of cases of product made on our shift: product code, flavour, bag size, current shift scheduled #s, next shift scheduled #s, total scheduled #s, produced (on our shift), and product on hold. For the most part, I've achieved to get all of it working, but I want to take it one step further, where it is completely automated.
Normally during the dayshift, we will receive an attainment report from the scheduler, and on this schedule, it lists out what amts are scheduled for each code, for the next 3 shifts. We would then manually write down each product code running on our shift, how much we're scheduled to run on our shift, and the next shift. Before the end of our shift, we would write up another production sheet for the afternoon shift, and the afternoon shift would do the same for the midnight shift, and again for dayshift until the scheduler revised the attainment report.
My file consists of 5 worksheets: Days, Afternoons, Midnights, Product, Schedule Days, Afternoons, Midnights will be where production data is stored throughout each shift. Product holds records for each type of product we produce. Schedule holds the scheduled #s for each product scheduled to run for the next 3 shifts.
So finally getting to the point, I would like to check the Schedule worksheet, column C for any non-blank cells, and copy the corresponding product code to the dayshift worksheet starting at A3, and the same for column F for afternoons, and column I for midnights.
I'm trying to have one cell be the constant place I enter data and then when I hit enter, I'd like the data I entered to be moved down to the cell below it. Then for every new number I enter in that first cell, it would auto shift the previous data down and add the new data to the cell below it.
Basically, I'd like to record data but I dont want to have to scroll to the bottom every time to enter new data since this list will be continuously updated. And I'd like the most recent data entered to be on top.
Then I want to take the top 100 cells in that column, and do a running average of them.
I have to make something what will import data from other documents.
I made a template report. Now I need a button or something what will open a file (a want to choose it) and import some cells from 5 sheets (not whole sheets) to the contfirmed cells in the template. All of the files are the same (i make inspections of some stuff) only data is different.
It will save a lot of time, cuz i have about 300 something documents from which i have to make the reports.
I have the basics set up, but need to work out how to make it calculate my pay per shift dependant on the type of shift i have worked.
I have attached a screen shot of the current page,
In it i have currently used validation drop boxes for the location and worked columns with tables just to one side of the sheet.
The shift pay is the column i am having trouble with.
I would like it to change dependant on what is selected in the 'worked' column. For most things it should just display basic plus holiday, however if supervisor is selcted in the work column, it should display basic plus holiday plus supervisor.
a person works for certain hours and get paid according to the hours worked either by day or by night or a mix of both. Day payment is $8 when worked between 08:00 and 19:59 , night payment is $12 when worked between 20:00 and 07:59. The excel cell are formatted as datetime with yyyy-mm-dd hh:mm , the function works fine in getting the time information and checking whether the whole work is all day or all night , yet the if-then-else statements for calculation seems to be wrong!!
examples:
start = 2008-01-01 09:15 , end = 2008-01-01 11:40 , all day as it is between 08:00 and 20:00 and cost = 8/hr = 19.333
start = 2008-01-03 21:05 , end = 2008-01-04 02:05 , all night as it is between 20:00 and 08:00 and cost = 12/hr = 60.000
start = 2008-02-02 19:00 , end = 2008-02-02 20:05 , cost = 9.000 as 1 hour day = 8.000 plus 5minutes night = 1.000
Function prod(st As Date, en As Date) As Double Dim shour As Integer Dim smin As Integer Dim ehour As Integer Dim emin As Integer Dim stod As String Dim etod As String pday = 8 pnight = 12 shour = Hour(st) smin = Minute(st) + shour * 60 If (shour >= 8 & shour < 20) Then stod = "day" Else stod = "night" End If ehour = Hour(en) emin = Minute(en) + ehour * 60 If (ehour >= 8 & ehour < 20) Then.................
I have a problem in making a delete function/sub and i'm applying it to a listbox in userform ... i'm trying to delete a row of data in the listbox which refers to cells (A12:D12) ... and at the same row (row=12), there are other data cells (E12:H12) ... after deleting the cells all other data below the deleted cells will shift up taking over the deleted cells ...
If I put a length in (G13) such as 4.44 & position from (H13) is 1. Then I want that length of (G13) to move its value (4.44) into (C15) the 1st cell to add to is (C15)
Then Move (C15) to (C16) 11.12 becomes C16 and move (C16) to (C17) and so on all the way down the C column.
When it hits the last joint (C374) position 360. I want a messageBox that says you can not insert anymore.
Basically shift the existing values down untill (C374) I have only column C to shift the calue from (G13)
I do NOT want to delete rows!
Below is how it looks before macro: GH12LENGTHPOSITION134.441
Below is how it will look after macro: The RED moves to (C15) C14LENGTH154.441611.121712.221811.561911.862013.112112.872213.062311.992412.03GH12LENGTHPOSITION134.441..........................
Whenever "online" appears in the "Desc" column I need to shift the matching row down (shaded area). for example, "online" appears in H2, hence, C2:E2 need to be shifted down to C3:E3 leaving C2:E2 blank. Next, H3 has "online" there, C3:E3 need to be shifted down one row so the result will look like the data on the "result" tab.
I am trying to delete a group of four cells and have the remaining block shift up. My code is below and crashes on the red. What is the right code to get this to work?
Code:
Do ActiveCell.Offset(1, 0).Select If ActiveCell.Value = Range("G1").Value Then Range(ActiveCell:ActiveCell.Resize(0, 3)).Delete Shift:=xlUp Exit Do End If Loop
I am looking for a macro that can delete whole rows (shift cells up then). How i would like it to perform is if there is nothing in cell(s) B then delete the whole row?
In the range A1:Y66, for every cell whose formula returns a 0, I want it to delete that cell and shift the cells up.
Here is the code I tried, but nothing happened:
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column > 25 Then Exit Sub If Target.Rows > 66 Then Exit Sub If Target.Cells.Count > 1 Then Exit Sub If Target.Value = 0 Then Target.Delete Shift:=xlUp End Sub
I want to be able to insert-shift cells down based on criteria in another cell. For instance, I would like a macro that would look at column B for saturday and sunday and then insert-shift cells down on the corresponding cells in column D...
i need a button to copy the content of A8:C28 and paste in another section of the worksheet, i get the button to copy and paste the selected range, but when i copy and paste again it overides my current paste, i need it to paste my new selection underneath my previous paste.
I need a macro that will "examine" the text of column B for every row checking to see if the text "Proper Text" is in the cell and if not, execute this code for that cell and then move on to perfrom the same until it finds an empty cell:
I am trying to make a macro to take a set of data and shift the data range down depending on the value in the A:1 cell. For example if the data in column A starts with 5, 6, 7, 8 and so on.... I would like to copy/ paste and shift the column down 5 cells so I can start A:1 at 0.....so that the data can begin as 0,1,2,3,4,5.....etc.
How do I shift all the cells up labelled data, so that there are no blank rows in between? I tried using the ones found on the forum via search but it is stuck in an infinite loop.
I'm trying to do is check each Row and move the last 3 Columns of data in each Row to the left so they fall under the headings NHA2, NHA1, and OEM PN (Columns U, V, and W). Columns A and B are temporary. Column A utilizes the formula "= COUNTA(B2:AG2)" to count the number of cells in the row that contain data. Column B utilizes the formula "=COUNTA(C:C)" to count the total rows of data in the active worksheet. Columns A and B will be deleted at the end of the Macro.
The GOAL (END RESULT) is for Columns A through W (and ONLY these Columns) to contain data (keeping in mind that Columns A and B will be deleted at the end). If some rows have Column W (and beyond) blank, then I want to MOVE data from Columns U & V over to V & W and then COPY data from Column T into the [currently] blank Column U.
I've been trying to get the Macro to start in the last row and, using CASE Statements, delete the proper range of cells and SHIFT LEFT as it counts backwards towards the first row. I'm not too sure this is the best approach and could really use some advice from the experts! I can provide a "test" file if necessary ... the test file I've been working with is approximately 6.5MB, but I can delete most of the 14,287 rows and still give a good representation of how the data varies.
Sub b_DeleteCellsShiftLeft() ' DeleteShiftLeft Macro ' Macro recorded 3/14/2007 by George Nicholaou
' Need to assign variable for current row (?) ' r=ROW()
' Columns A and B are temporary ' Column A utilizes the formula "=COUNTA(B2:AG2)" to count the number of cells in ' the row that contain data ' Column B utilizes the formula "=COUNTA(C:C)" to count the total rows of data ' in the active worksheet ' They will be deleted at the end of the Macro ' What I want the Macro to do from this point is: ' 1. Check each Row and move the last 3 Columns of data in each Row to the left so ' they fall under the headings NHA2, NHA1, and OEM PN (Columns U, V, and W) ' 2. The GOAL (END/RESULT) is for Columns A through W (and ONLY these Columns) ' to contain data (keep in mind, Columns A and B will be deleted at the end) ' 3. If some rows have Column W blank, then MOVE data from Columns U & V over to V & W............
I'd like to have a sheet with multiple columns of data (say A thru K for instance.). Id like to reserve column A for ONLY imputing an X. The rest of the columns b-K would have data in the cells. I'd like to have a macro that when it saw an X in column A, would copy all of the data in cells B-K in that row, paste it into the next empty row of a second sheet (for history tracking), then go back to the original sheet and continue looking for additional "X"'s and repeat. Once all of the X's were copied, it would "clear" (Not delete because some of the cells would have formulas in them that would need to remain for future use.) the cells based on the "X" then finally move all of the remaining data up to the empty rows to fill in the empty rows. This last piece would be more for esthetics to have a clean looking sheet.
I am trying to find a method for deleting empty cells in a range and shift cells left upon deletion automatically. I could do this manually, but with 3000 rows of data it could be a long task. I have attched a small spreadsheet to show what I am looking for.