Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.misc
elfmajesty
 
Posts: n/a
Default Autofit with Merged Cells/Wrap Text Macro Problem

Hello,

I've attempted to utilize the frequently posted macro that Jim Rech wrote to
assist in this problem that all of us seem to run into at one point or
another. However, I keep getting a compile syntax error directing me to the
13th line of the macro.(MergedCellRgWidth = CurrCell.ColumnWidth +)

I have inserted this macro as a Module. Do I need to select the rows I need
done? Can anyone assist and where I may be going wrong?

Here's the full Module as I've inserted it:

Sub AutoFitMergedCellRowHeight()
Dim CurrentRowHeight As Single, MergedCellRgWidth As Single
Dim CurrCell As Range, RangeWidth As Single
Dim ActiveCellWidth As Single, PossNewRowHeight As Single
If ActiveCell.MergeCells Then
With ActiveCell.MergeArea
If .Rows.Count = 1 And .WrapText = True Then
Application.ScreenUpdating = False
CurrentRowHeight = .RowHeight
ActiveCellWidth = ActiveCell.ColumnWidth
RangeWidth = .Width
For Each CurrCell In Selection
MergedCellRgWidth = CurrCell.ColumnWidth +
MergedCellRgWidth
Next
.MergeCells = False
.Cells(1).ColumnWidth = MergedCellRgWidth
While .Cells(1).Width < RangeWidth
.Cells(1).ColumnWidth = .Cells(1).ColumnWidth + 0.5
Wend
.Cells(1).ColumnWidth = .Cells(1).ColumnWidth - 0.5
.EntireRow.AutoFit
PossNewRowHeight = .RowHeight
.Cells(1).ColumnWidth = ActiveCellWidth
.MergeCells = True
.RowHeight = IIf(CurrentRowHeight PossNewRowHeight, _
CurrentRowHeight, PossNewRowHeight)
End If
End With
End If
End Sub


  #2   Report Post  
Posted to microsoft.public.excel.misc
elfmajesty
 
Posts: n/a
Default Autofit with Merged Cells/Wrap Text Macro Problem

If I could post an red-faced iicon, I would! No sooner did I post this
question did I see the break right where it said it was. One of those
"forest for the trees" moments, I suppose!! : )

Cheers,
Elf

"elfmajesty" wrote:

Hello,

I've attempted to utilize the frequently posted macro that Jim Rech wrote to
assist in this problem that all of us seem to run into at one point or
another. However, I keep getting a compile syntax error directing me to the
13th line of the macro.(MergedCellRgWidth = CurrCell.ColumnWidth +)

I have inserted this macro as a Module. Do I need to select the rows I need
done? Can anyone assist and where I may be going wrong?

Here's the full Module as I've inserted it:

Sub AutoFitMergedCellRowHeight()
Dim CurrentRowHeight As Single, MergedCellRgWidth As Single
Dim CurrCell As Range, RangeWidth As Single
Dim ActiveCellWidth As Single, PossNewRowHeight As Single
If ActiveCell.MergeCells Then
With ActiveCell.MergeArea
If .Rows.Count = 1 And .WrapText = True Then
Application.ScreenUpdating = False
CurrentRowHeight = .RowHeight
ActiveCellWidth = ActiveCell.ColumnWidth
RangeWidth = .Width
For Each CurrCell In Selection
MergedCellRgWidth = CurrCell.ColumnWidth +
MergedCellRgWidth
Next
.MergeCells = False
.Cells(1).ColumnWidth = MergedCellRgWidth
While .Cells(1).Width < RangeWidth
.Cells(1).ColumnWidth = .Cells(1).ColumnWidth + 0.5
Wend
.Cells(1).ColumnWidth = .Cells(1).ColumnWidth - 0.5
.EntireRow.AutoFit
PossNewRowHeight = .RowHeight
.Cells(1).ColumnWidth = ActiveCellWidth
.MergeCells = True
.RowHeight = IIf(CurrentRowHeight PossNewRowHeight, _
CurrentRowHeight, PossNewRowHeight)
End If
End With
End If
End Sub


  #3   Report Post  
Posted to microsoft.public.excel.misc
elfmajesty
 
Posts: n/a
Default Autofit with Merged Cells/Wrap Text Macro Problem

One more question:
Do I have to select each cell individually and run the macro on each cell?
Is there no way to check the sheet all at once and run it for ANY merged/wrap
text cells?

Thanks in advance.
Elf

"elfmajesty" wrote:

Hello,

I've attempted to utilize the frequently posted macro that Jim Rech wrote to
assist in this problem that all of us seem to run into at one point or
another. However, I keep getting a compile syntax error directing me to the
13th line of the macro.(MergedCellRgWidth = CurrCell.ColumnWidth +)

I have inserted this macro as a Module. Do I need to select the rows I need
done? Can anyone assist and where I may be going wrong?

Here's the full Module as I've inserted it:

Sub AutoFitMergedCellRowHeight()
Dim CurrentRowHeight As Single, MergedCellRgWidth As Single
Dim CurrCell As Range, RangeWidth As Single
Dim ActiveCellWidth As Single, PossNewRowHeight As Single
If ActiveCell.MergeCells Then
With ActiveCell.MergeArea
If .Rows.Count = 1 And .WrapText = True Then
Application.ScreenUpdating = False
CurrentRowHeight = .RowHeight
ActiveCellWidth = ActiveCell.ColumnWidth
RangeWidth = .Width
For Each CurrCell In Selection
MergedCellRgWidth = CurrCell.ColumnWidth +
MergedCellRgWidth
Next
.MergeCells = False
.Cells(1).ColumnWidth = MergedCellRgWidth
While .Cells(1).Width < RangeWidth
.Cells(1).ColumnWidth = .Cells(1).ColumnWidth + 0.5
Wend
.Cells(1).ColumnWidth = .Cells(1).ColumnWidth - 0.5
.EntireRow.AutoFit
PossNewRowHeight = .RowHeight
.Cells(1).ColumnWidth = ActiveCellWidth
.MergeCells = True
.RowHeight = IIf(CurrentRowHeight PossNewRowHeight, _
CurrentRowHeight, PossNewRowHeight)
End If
End With
End If
End Sub


  #4   Report Post  
Posted to microsoft.public.excel.misc
Dave Peterson
 
Posts: n/a
Default Autofit with Merged Cells/Wrap Text Macro Problem

There's no good way to grab all the merged cells in a worksheet.

You can use specialcells to get formulas, constants, errors, comments, ...

But nothing like that can be done with merged cells.

You can pass the first cell of the mergedarea to Jim's routine, so you don't
have to select cells, too:

Option Explicit
Sub AutoFitMergedCellRowHeight(myActiveCell As Range)
Dim CurrentRowHeight As Single, MergedCellRgWidth As Single
Dim OrigMergeArea As Range
Dim CurrCell As Range
Dim myActiveCellWidth As Single, PossNewRowHeight As Single
If myActiveCell.MergeCells Then
Set OrigMergeArea = myActiveCell.MergeArea
With myActiveCell.MergeArea
If .Rows.Count = 1 And .WrapText = True Then
Application.ScreenUpdating = False
CurrentRowHeight = .RowHeight
myActiveCellWidth = myActiveCell.ColumnWidth
For Each CurrCell In OrigMergeArea
MergedCellRgWidth = CurrCell.ColumnWidth + MergedCellRgWidth
Next
.MergeCells = False
.Cells(1).ColumnWidth = MergedCellRgWidth
.EntireRow.AutoFit
PossNewRowHeight = .RowHeight
.Cells(1).ColumnWidth = myActiveCellWidth
.MergeCells = True
.RowHeight = IIf(CurrentRowHeight PossNewRowHeight, _
CurrentRowHeight, PossNewRowHeight)
End If
End With
End If
End Sub

Sub testme()

Dim myCell As Range
Dim myRng As Range

'limit the range as much as you can
Set myRng = Worksheets("Sheet1").UsedRange

For Each myCell In myRng.Cells
If myCell.MergeArea.Address = myCell.Address Then
'not merged, do nothing
Else
'only do the first cell in the merged area
If myCell.MergeArea.Cells(1).Address < myCell.Address Then
Call AutoFitMergedCellRowHeight(myActiveCell:=myCell)
End If
End If
Next myCell
End Sub

elfmajesty wrote:

One more question:
Do I have to select each cell individually and run the macro on each cell?
Is there no way to check the sheet all at once and run it for ANY merged/wrap
text cells?

Thanks in advance.
Elf

"elfmajesty" wrote:

Hello,

I've attempted to utilize the frequently posted macro that Jim Rech wrote to
assist in this problem that all of us seem to run into at one point or
another. However, I keep getting a compile syntax error directing me to the
13th line of the macro.(MergedCellRgWidth = CurrCell.ColumnWidth +)

I have inserted this macro as a Module. Do I need to select the rows I need
done? Can anyone assist and where I may be going wrong?

Here's the full Module as I've inserted it:

Sub AutoFitMergedCellRowHeight()
Dim CurrentRowHeight As Single, MergedCellRgWidth As Single
Dim CurrCell As Range, RangeWidth As Single
Dim ActiveCellWidth As Single, PossNewRowHeight As Single
If ActiveCell.MergeCells Then
With ActiveCell.MergeArea
If .Rows.Count = 1 And .WrapText = True Then
Application.ScreenUpdating = False
CurrentRowHeight = .RowHeight
ActiveCellWidth = ActiveCell.ColumnWidth
RangeWidth = .Width
For Each CurrCell In Selection
MergedCellRgWidth = CurrCell.ColumnWidth +
MergedCellRgWidth
Next
.MergeCells = False
.Cells(1).ColumnWidth = MergedCellRgWidth
While .Cells(1).Width < RangeWidth
.Cells(1).ColumnWidth = .Cells(1).ColumnWidth + 0.5
Wend
.Cells(1).ColumnWidth = .Cells(1).ColumnWidth - 0.5
.EntireRow.AutoFit
PossNewRowHeight = .RowHeight
.Cells(1).ColumnWidth = ActiveCellWidth
.MergeCells = True
.RowHeight = IIf(CurrentRowHeight PossNewRowHeight, _
CurrentRowHeight, PossNewRowHeight)
End If
End With
End If
End Sub



--

Dave Peterson
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
opening text file in excel problem jz193 Excel Discussion (Misc queries) 18 February 10th 06 02:42 PM
Numbers stored as text causes problem with VLOOKUP bpeltzer Excel Worksheet Functions 0 February 4th 06 08:07 PM
Urgent Help Required on Excel Macro Problem Sachin Shah Excel Discussion (Misc queries) 1 August 17th 05 06:26 AM
Formulas dealing with text data Bagia Excel Worksheet Functions 6 June 20th 05 10:29 PM
Macro or Function to make text size to suite text Length? lbbss Excel Discussion (Misc queries) 4 December 14th 04 07:53 PM


All times are GMT +1. The time now is 05:22 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"