Go Premium for a chance to win a PS4. Enter to Win


How to make data flow from one cell to next in Excel

Posted on 2014-12-10
Medium Priority
Last Modified: 2015-01-15
I've been using Excel for years and this may not be possible. But I figured if it was, someone here would know how.
If it's not, I'd be interested in options.

I'm trying to create a simple receipt using Excel Invoice templates. We've tried several and even tried making one from scratch.
What we are wanting to do, is to have the description of an item drop down to the next line if it won't fit in the allotted space.  
Qty (column)              Description (column)                 Price (column)
                                      If I start typing here when it
                                      gets to the next line I want it
                                      to drop down to the next cell.

We are familiar with word wrap, and that creates unexpected and unwanted behavior. It will kick all the cells down a line and this causes the invoice/receipt to create a second unwanted page.  

We are using Excel 2010, if that makes any difference, on Windows 7 Pro systems.

Any and all help is appreciated.
Question by:Jeff Perkins
LVL 70

Expert Comment

ID: 40491974
Can't be done. Wrap text is as good as it gets.
LVL 15

Author Comment

by:Jeff Perkins
ID: 40492179
Any suggestions as to something else we can use to do this?
LVL 29

Expert Comment

ID: 40492235
You may be able to do something with the selection change event through VBA. Basically the idea would be to check the size of the string after the user hits Enter and cut the string if its too large. There are some limitations on this based on your invoice template, but it should not be too hard to code for.

Efficient way to get backups off site to Azure

This user guide provides instructions on how to deploy and configure both a StoneFly Scale Out NAS Enterprise Cloud Drive virtual machine and Veeam Cloud Connect in the Microsoft Azure Cloud.

LVL 15

Author Comment

by:Jeff Perkins
ID: 40492284
Is this something you think you would like to undertake?
LVL 29

Expert Comment

ID: 40492455
Ok, lets give this a try. Place this code in the sheet module. I am assuming 100 character string length here. If you want bigger or smaller you can change the parameter.
Private PreviousActiveCell As Range
Private Const MAX_STRING_LEN = 100

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Static pPrevious As Range
Dim strPrimary As String, strNext As String
    On Error Resume Next
    If pPrevious.Address = "" Then
    End If
    If Err.Number <> 0 Then
        Set pPrevious = Me.Cells(1, 1)
    End If
    Set PreviousActiveCell = pPrevious
    Set pPrevious = ActiveCell

    strPrimary = PreviousActiveCell.Value

    If Len(strPrimary) > MAX_STRING_LEN Then
        strNext = Right(strPrimary, Len(strPrimary) - MAX_STRING_LEN)
        strPrimary = Left(strPrimary, MAX_STRING_LEN)
        PreviousActiveCell.Value = strPrimary
        PreviousActiveCell.Offset(1).Value = strNext
    End If
End Sub

Open in new window

Please note that I have not tested this in great detail and some adjustments will need to be made.

LVL 15

Author Comment

by:Jeff Perkins
ID: 40492479
Ok Leon, perhaps I should have explained before asking you to take this on, I'm an Excel user... and not much more than that.  How do I "Place this code in the sheet module"?  I understand basics of what a module is, or believe it's a snippet of code such as you have written that creates more functionality.  But have no idea how to add or use a module in a template.
  If that makes this task undesirable, I understand, but if not, I'm a quick study if you can tell me how to create a module, and utilize it.
LVL 29

Accepted Solution

leonstryker earned 2000 total points
ID: 40492529
Ok, here is a primer http://msdn.microsoft.com/en-us/library/office/ee814737%28v=office.14%29.aspx

To summarize you will need to do the following:
1. Open your Invoice template
2. Press Alt - F11 keys - This will open the VB Editor. You should see VBAProject  on the left side
3. Double click on the sheet name containing your invoice in the VBAProject window. You should get a blank sheet on the right side. It will say (General) and (Declarations) in the two drop down boxes above the sheet
4. Copy/Paste the code I gave you above into this sheet.
5. Go back to the Excel sheet of your invoice and save. Make sure you are saving the file with a .xls or .xlsm extension depending on your Excel version.
6. Try typing more than 100 characters into your invoice sheet.

If everything goes fine, you will want to adjust that number of characters. To do that, use Alt-F11 to go back to the editor and change the value of MAX_STRING_LEN from 100, to the one you want. Save and try it out.

Let me know if you are having issues,
LVL 34

Expert Comment

by:Rob Henson
ID: 40493549
Stick with Wrap Text but then set the Page settings to Fit to One Page.

Or if you want to limit the description to say 6 lines, merge 6 cells and then description can then fill the merged cells.

You can also set it to "Shrink to Fit", you have to untick Wrap text first as Shrink is greyed out when Wrap text is selected.

Rob H
LVL 49

Expert Comment

by:Martin Liss
ID: 40550853
This question has been classified as abandoned and is closed as part of the Cleanup Program. See the recommendation for more details.

Featured Post

Hire Technology Freelancers with Gigs

Work with freelancers specializing in everything from database administration to programming, who have proven themselves as experts in their field. Hire the best, collaborate easily, pay securely, and get projects done right.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Cancel future meetings from user mailboxes in Office 365 using Remove-CalendarEvents
Quickbooks hosting can do wonders to your enterprise but considering the points elaborated in the article which will help you to better analyze the outcomes. So scan your business, its needs and then move to the new world of limitless benefits.
This Micro Tutorial will demonstrate how to use a scrolling table in Microsoft Excel using the INDEX function.
Have you created a query with information for a calendar? ... and then, abra-cadabra, the calendar is done?! I am going to show you how to make that happen. Visualize your data!  ... really see it To use the code to create a calendar from a q…

916 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question