Alt Enter triggers input box

SlinkRN

Well-known Member
Joined
Oct 29, 2002
Messages
724
Hi all,
I am wondering if there is a simple explanation why an input box from some code I adapted pops up when I hit Alt + Enter in a cell. Here is the code:

Sub WorkCalendar()

' Unprotect sheets
Sheets("Jan").Select
Dim y
Application.ScreenUpdating = False
For y = 1 To Sheets.Count
Sheets(y).Unprotect "password here"
Next y
' Clear area a1:g14 including any previous calendar.
Range("a1:g14").Clear
Range("d1").NumberFormat = "mmmm yyyy"
calyear = InputBox("Type Year for Calendar", "Year")
If calyear = "" Then Exit Sub
currmonth = 1
nextmonth:
startday = currmonth & "/1/" & calyear
Range("a1:g14").Clear
Range("d1").NumberFormat = "mmmm yyyy"
Range("d1") = startday


' Center the Month and Year label across a1:g1 with appropriate
' size, height and bolding.
With Range("d1:e1")
.HorizontalAlignment = xlCenterAcrossSelection
.VerticalAlignment = xlCenter
.Font.Size = 18
.Font.Bold = True
.RowHeight = 35
End With
Range("a1") = "Use Alt + Enter to get more than one line per box"
With Range("a1:c1")
.HorizontalAlignment = xlCenterAcrossSelection
.VerticalAlignment = xlCenter
.Font.Size = 14
.Font.Bold = True
.RowHeight = 35
.Font.ThemeColor = xlThemeColorLight2
.Font.TintAndShade = 0.399975585192419
End With

' Prepare a2:g2 for day of week labels with centering, size,
' height and bolding.
With Range("a2:g2")
.ColumnWidth = 20
.VerticalAlignment = xlCenter
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.Orientation = xlHorizontal
.Font.Size = 12
.Font.Bold = True
.RowHeight = 20
End With
' Put days of week in a2:g2.
Range("a2") = "Sunday"
Range("b2") = "Monday"
Range("c2") = "Tuesday"
Range("d2") = "Wednesday"
Range("e2") = "Thursday"
Range("f2") = "Friday"
Range("g2") = "Saturday"
' Prepare a3:g7 for dates with left/top alignment, size, height
' and bolding.
With Range("a3:g8")
.HorizontalAlignment = xlRight
.VerticalAlignment = xlTop
.Font.Size = 18
.Font.Bold = True
.RowHeight = 21
End With
' Put inputted month and year fully spelling out into "a1".
'Range("a1").Value = Application.Text(MyInput, "mmmm yyyy")
' Set variable and get which day of the week the month starts.
DayofWeek = Weekday(startday)
' Set variables to identify the year and month as separate
' variables.
curyear = Year(startday)
curmonth = Month(startday)
' Set variable and calculate the first day of the next month.
FinalDay = DateSerial(curyear, curmonth + 1, 1)
startday = DateSerial(curyear, curmonth, 1)
' Place a "1" in cell position of the first day of the chosen
' month based on DayofWeek.
Select Case DayofWeek
Case 1
Range("a3").Value = 1
Case 2
Range("b3").Value = 1
Case 3
Range("c3").Value = 1
Case 4
Range("d3").Value = 1
Case 5
Range("e3").Value = 1
Case 6
Range("f3").Value = 1
Case 7
Range("g3").Value = 1
End Select
' Loop through range a3:g8 incrementing each cell after the "1"
' cell.
For Each cell In Range("a3:g8")
RowCell = cell.Row
ColCell = cell.Column
' Do if "1" is in first column.
If cell.Column = 1 And cell.Row = 3 Then
' Do if current cell is not in 1st column.
ElseIf cell.Column <> 1 Then
If cell.Offset(0, -1).Value >= 1 Then
cell.Value = cell.Offset(0, -1).Value + 1
' Stop when the last day of the month has been
' entered.
If cell.Value > (FinalDay - startday) Then
cell.Value = ""
' Exit loop when calendar has correct number of
' days shown.
Exit For
End If
End If
' Do only if current cell is not in Row 3 and is in Column 1.
ElseIf cell.Row > 3 And cell.Column = 1 Then
cell.Value = cell.Offset(-1, 6).Value + 1
' Stop when the last day of the month has been entered.
If cell.Value > (FinalDay - startday) Then
cell.Value = ""
' Exit loop when calendar has correct number of days
' shown.
Exit For
End If
End If
Next

' Create Entry cells, format them centered, wrap text, and border
' around days.
For x = 0 To 5
Range("A4").Offset(x * 2, 0).EntireRow.Insert
With Range("A4:G4").Offset(x * 2, 0)
.RowHeight = 65
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlTop
.WrapText = True
.Font.Size = 10
.Font.Bold = False
' Unlock these cells to be able to enter text later after
' sheet is protected.
.Locked = False
End With
' Put border around the block of dates.
With Range("A3").Offset(x * 2, 0).Resize(2, _
7).Borders(xlLeft)
.Weight = xlThick
.ColorIndex = xlAutomatic
End With

With Range("A3").Offset(x * 2, 0).Resize(2, _
7).Borders(xlRight)
.Weight = xlThick
.ColorIndex = xlAutomatic
End With
Range("A3").Offset(x * 2, 0).Resize(2, 7).BorderAround _
Weight:=xlThick, ColorIndex:=xlAutomatic
Next
If Range("A13").Value = "" Then Range("A13").Offset(0, 0) _
.Resize(2, 8).EntireRow.Delete
' Turn off gridlines.
ActiveWindow.DisplayGridlines = False

' Resize window to show all of calendar (may have to be adjusted
' for video configuration).
ActiveWindow.WindowState = xlMaximized
ActiveWindow.ScrollRow = 1

' Allow screen to redraw with calendar showing.

'Range("a1").Select

' Prevent going to error trap unless error found by exiting Sub
' here.

If currmonth <> 12 Then
currmonth = currmonth + 1
ActiveSheet.Next.Select
GoTo nextmonth
End If

Application.ScreenUpdating = False
For y = 1 To Sheets.Count
Sheets(y).Protect "password here"
Next y
Application.ScreenUpdating = True
Sheets("Jan").Select
End Sub
 

Excel Facts

What do {} around a formula in the formula bar mean?
{Formula} means the formula was entered using Ctrl+Shift+Enter signifying an old-style array formula.
A little more explanation: The workbook has 12 sheets named Jan through Dec and the code pops up an input box to ask for the year for the calendar and then fills each sheet with the months. I put some text in cell A1 so that the user will know that they can type more than one line in each day by using Alt Enter (for the "carriage return") but once the code is run, if I highlight one of the day cells, and then hit Alt Enter, it pops up the input box again that asks for the year of the calendar and then starts to run the code again. It's very strange - if I delete the text in A1 then I don't get the weird behavior, I'm just wondering why in the world it would do that! I'm using Excel 2010 and Windows 7. I hope someone has seen this before and can explain!! Thanks, Slink
 
Upvote 0
It doesn't appear to be a code problem...
Is it possible that the macro has been allocated ALT + Enter as a keyboard shortcut ??
 
Upvote 0
I just realized it has nothing to do with what I enter in cell A1. No matter what, after the code has run if I highlight one of the calendar cells and hit Alt + Enter it runs the code again. I looked at the code options and nothing was assigned as a shortcut. When I record a macro and hit Alt and Enter I get this code recorded (which is the name of my workbook and the name of the macro):

Sub Macro1()
'
' Macro1 Macro
'

'
Range("C6").Select
Application.Run "'Calendar Maker Template.xlsm'!WorkCalendar"
End Sub
 
Upvote 0
Try entering this from the Immediate window:

Code:
Application.OnKey "%~"
 
Upvote 0
Thanks for the help!!! I put Application.OnKey "%~", "" in the workbook open code and now it doesn't happen. I don't know how it got turned on in the first place but now I'm good to go! There was no reason anyone should hit alt + enter when they highlight a cell but since I did it by mistake once, I'm thinking a user probably would too and it erased all the data from the page so it wouldn't have been a welcome error!! I learned something new today!! THanks again, Slink
 
Upvote 0
Nice one shg
There's always something new to learn !!!
 
Upvote 0

Forum statistics

Threads
1,224,603
Messages
6,179,855
Members
452,948
Latest member
UsmanAli786

We've detected that you are using an adblocker.

We have a great community of people providing Excel help here, but the hosting costs are enormous. You can help keep this site running by allowing ads on MrExcel.com.
Allow Ads at MrExcel

Which adblocker are you using?

Disable AdBlock

Follow these easy steps to disable AdBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the icon in the browser’s toolbar.
2)Click on the "Pause on this site" option.
Go back

Disable AdBlock Plus

Follow these easy steps to disable AdBlock Plus

1)Click on the icon in the browser’s toolbar.
2)Click on the toggle to disable it for "mrexcel.com".
Go back

Disable uBlock Origin

Follow these easy steps to disable uBlock Origin

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back

Disable uBlock

Follow these easy steps to disable uBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back
Back
Top