PDA

View Full Version : Solved: Create Monthly Calendar using Userform



craigos
05-25-2012, 11:41 PM
Hi All,

I have some excellent code that creates a monthly calendar via an Input Box.

What I would like is for the user to select the Month & Year from Comboboxes in a UF not an Input Box.

I just can't work out how to link my Comboboxes to the code!!

Can Anyone help - copy of workbook attached

Thanks

Craig

defcon_3
05-26-2012, 01:38 AM
How bout this to start http://www.vbaexpress.com/kb/getarticle.php?kb_id=543 (http://www.vbaexpress.com/forum/../kb/getarticle.php?kb_id=543)

Bob Phillips
05-26-2012, 01:39 AM
Userform code

Private mCancel As Boolean

Public Property Get Cancel() As Boolean
Cancel = mCancel
End Property

Private Sub CommandButton1_Click()
mCancel = True
Me.Hide
End Sub

Private Sub CommandButton2_Click()
mCancel = False
Me.Hide
End Sub

Private Sub UserForm_Activate()
ComboBox1.SetFocus
End Sub

Module2 code

Sub Button5_Click()
With UserForm1

.Show
If Not .Cancel Then Call CalBeta1(.ComboBox1.Value & " " & .ComboBox2.Value)
End With
End Sub

Module1 code

Sub CalBeta1(Optional InputDate As String)
Dim diff As Long
Dim finalday As Date
Dim startday As Date

' Unprotect sheet if had previous calendar to prevent error.
' ActiveSheet.Protect DrawingObjects:=False, Contents:=False, _
'Scenarios:=False
' Prevent screen flashing while drawing calendar.
Application.ScreenUpdating = False

' Set up error trapping.
'On Error GoTo MyErrorTrap

' Clear area a1:af35 including any previous calendar.
Range("D3:az35").Clear

If InputDate = "" Then

' Use InputBox to get desired month and year and set variable
' MyInput.
MyInput = InputBox("Type in Month and year for Calendar. [Must be in format: Jan 2012]")

' Allow user to end macro with Cancel in InputBox.
If MyInput = "" Then Exit Sub

' Get the date value of the beginning of inputted month.
startday = DateValue(MyInput)
Else

startday = DateValue(InputDate)
End If

' Check if valid date but not the first of the month
' -- if so, reset StartDay to first day of month.
If Day(startday) <> 1 Then
startday = DateValue(Month(startday) & "/1/" & _
Year(startday))
End If

' BEGIN FORMATTING
' Prepare cell for Month and Year as fully spelled out.
Range("D1").NumberFormat = "mmmm yyyy"
' Center the title with appropriate formatting
Range("D1:H1").Select
With Selection
.HorizontalAlignment = xlLeft
.VerticalAlignment = xlCenter
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
Selection.Merge
Range("D1:H1").Select
With Selection
.Value = "Attendance " '& Year(startday)
.Font.FontStyle = Arial
.Font.Size = 12
.Font.Bold = True
.Font.Italic = False
.HorizontalAlignment = xlLeft
.VerticalAlignment = xlCenter
End With

' Prep next row to display month and year
Range("D2:H2").Select
With Selection
.HorizontalAlignment = xlLeft
.VerticalAlignment = xlCenter
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
Selection.Merge
Range("D2:H2").Select
With Selection
.NumberFormat = "@"
' Put inputted month and year fully spelling out into "a2".
Range("D2").Value = MonthName(Month(startday)) & Chr(32) & Year(startday)
.Font.FontStyle = Arial
.Font.Size = 12
.Font.Bold = True
.Font.Italic = False
.HorizontalAlignment = xlLeft
.VerticalAlignment = xlCenter
End With
'
' BEGIN CALCULATION OF FIRST DAY
' 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)

' Calculate how many days in the given month
mydays = Day(DateSerial(Year(Date), curmonth + 1, 1) - 1)

' Used to input data in the proper format. I.E. if I select column C, I have to -1, if I select column D I have to -2
myspread = mydays - 1
my2spread = mydays - 2

' Place a "1" in cell position of the first day of the chosen
' month based on DayofWeek.
Select Case DayofWeek
Case 1
Range("d3").Value = "Sun"
Range("d4").Value = 1
Case 2
Range("d3").Value = "Mon"
Range("d4").Value = 1
Case 3
Range("d3").Value = "Tue"
Range("d4").Value = 1
Case 4
Range("d3").Value = "Wed"
Range("d4").Value = 1
Case 5
Range("d3").Value = "Thu"
Range("d4").Value = 1
Case 6
Range("d3").Value = "Fri"
Range("d4").Value = 1
Case 7
Range("d3").Value = "Sat"
Range("d4").Value = 1
End Select
' Begin AutoFill days
' need to do a column count and have loop run until column count is equal to mydays
Range("D3").Select
Selection.AutoFill Destination:=Selection.Resize(1, mydays), Type:=xlFillDefault

With Range("E4").Select
Selection.Insert
Selection.Formula = "=(D4+1)"
Selection.AutoFill Destination:=Selection.Resize(1, myspread), Type:=xlFillDefault
End With
'Format the Calendar Range
Range("D3:AI25").Select
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.WrapText = True
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
.Font.Size = 9
.Font.Bold = True
End With
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlInsideVertical)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlInsideHorizontal)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
Range("D3:AI4").Select
With Selection.Interior
.ColorIndex = 15
.Pattern = xlSolid
End With
Columns("D:AI").Select
Range("D3").Activate
Selection.ColumnWidth = 3

Range("D5:AI25").Select
Selection.ClearContents

' Turn on gridlines.
ActiveWindow.DisplayGridlines = False
' Protect sheet to prevent overwriting the dates.
'ActiveSheet.Protect DrawingObjects:=True, Contents:=True, _
'Scenarios:=True
' 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.
Application.ScreenUpdating = True

' Prevent going to error trap unless error found by exiting Sub
' here.
Range("A5").Select

MsgBox "New Monthly Calendar created", vbOKOnly + vbInformation, "FTE Record"

Exit Sub

MyErrorTrap:
MsgBox "You may not have entered your Month and Year correctly." _
& Chr(13) & "Spell the Month correctly" _
& " (or use 3 letter abbreviation)" _
& Chr(13) & "and 4 digits for the Year"
MyInput = InputBox("Type in Month and year for Calendar. [Format: January 2011] ")
If MyInput = "" Then Exit Sub
Resume
End Sub

Bob Phillips
05-26-2012, 02:36 AM
BTW, your code can be tidied up a lot.

I fell you over-comment, it can impede anyone reading the code. Adding a comment for Application.Screenupdating = False is way overkill IMO, and you must be careful that you comments are meaningfull. You had a comment to say you were turning gridlines on, then turned them off. Apart from being an unnecessary comment, it was just plain wrong.

Sub CalBeta1(Optional InputDate As String)
Dim diff As Long
Dim finalday As Date
Dim startday As Date

Application.ScreenUpdating = False

If InputDate = "" Then

' Use InputBox to get desired month and year and set variable MyInput.
MyInput = InputBox("Type in Month and year for Calendar. [Must be in format: Jan 2012]")

' Allow user to end macro with Cancel in InputBox.
If MyInput = "" Then Exit Sub

' Get the date value of the beginning of inputted month.
startday = DateValue(MyInput)
Else

startday = DateValue(InputDate)
End If

' Clear area a1:af35 including any previous calendar.
Range("D3:AZ35").Clear

' Check if valid date but not the first of the month
' -- if so, reset StartDay to first day of month.
If Day(startday) <> 1 Then

startday = startday - Day(startday) + 1
End If

' BEGIN FORMATTING
' Prepare cell for Month and Year as fully spelled out.
' Center the title with appropriate formatting
With Range("D1")
.Value = "Attendance " '& Year(startday)
.Font.FontStyle = Arial
.Font.Size = 12
.Font.Bold = True
.Font.Italic = False
.HorizontalAlignment = xlLeft
.VerticalAlignment = xlCenter
End With

' Prep next row to display month and year
With Range("D2")
.Value = MonthName(Month(startday)) & Chr(32) & Year(startday)
.NumberFormat = "mmmm yyyy"
.Font.FontStyle = Arial
.Font.Size = 12
.Font.Bold = True
.HorizontalAlignment = xlLeft
.VerticalAlignment = xlCenter
End With

' 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)

' Calculate how many days in the given month
mydays = Day(DateSerial(Year(Date), curmonth + 1, 1) - 1)
' Begin AutoFill days
' need to do a column count and have loop run until column count is equal to mydays
With Range("D3")
.Value = Format(startday, "ddd")
.Font.Name = "Arial"
.Font.Size = 10
.AutoFill Destination:=.Resize(1, mydays), Type:=xlFillDefault
End With

' Place a "1" in cell position of the first day of the chosen
' month based on DayofWeek.
Range("D4").Value = 1

' Used to input data in the proper format. I.E. if I select column C, I have to -1, if I select column D I have to -2
myspread = mydays - 1
my2spread = mydays - 2
Range("E4").Insert
With Range("E4")
.Formula = "=(D4+1)"
.AutoFill Destination:=.Resize(1, myspread), Type:=xlFillDefault
End With

'Format the Calendar Range
With Range("D3:AI25")
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.WrapText = True

.Borders(xlDiagonalDown).LineStyle = xlNone
.Borders(xlDiagonalUp).LineStyle = xlNone
With .Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With .Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With .Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With .Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With .Borders(xlInsideVertical)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With .Borders(xlInsideHorizontal)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
End With

With Range("D3:AI4").Interior
.ColorIndex = 15
.Pattern = xlSolid
End With

Columns("D:AI").ColumnWidth = 3

Range("D5:AI25").ClearContents

ActiveWindow.DisplayGridlines = False

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

' Prevent going to error trap unless error found by exiting Sub here.
Range("A5").Select

Application.ScreenUpdating = True

MsgBox "New Monthly Calendar created", vbOKOnly + vbInformation, "FTE Record"

Exit Sub

MyErrorTrap:
MsgBox "You may not have entered your Month and Year correctly." & Chr(13) & _
"Spell the Month correctly (or use 3 letter abbreviation)" & Chr(13) & _
"and 4 digits for the Year"
MyInput = InputBox("Type in Month and year for Calendar. [Format: January 2011] ")
If MyInput = "" Then Exit Sub
Resume
End Sub

Bob Phillips
05-26-2012, 03:00 AM
I would also go further and break it down into separate functional procedures to aid readability

Sub CalBeta1(Optional InputDate As String)
Dim diff As Long
Dim mydays As Long
Dim myspread As Long
Dim my2spread As Long
Dim startday As Variant

Application.ScreenUpdating = False

startday = GetDate(InputDate)
If startday = "" Then Exit Sub
' Check if valid date but not the first of the month
' -- if so, reset StartDay to first day of month.
If Day(startday) <> 1 Then startday = startday - Day(startday) + 1

Call DayCalculations(startday, mydays, myspread, my2spread)

' BEGIN FORMATTING
' Clear area a1:af35 including any previous calendar.
Range("D3:AZ35").Clear

Call AddHeaders(startday, mydays, myspread)

Call AddBorders(Range("D3:AI25"))

With Range("D3:AI4").Interior
.ColorIndex = 15
.Pattern = xlSolid
End With

Columns("D:AI").ColumnWidth = 3

Range("D5:AI25").ClearContents

ActiveWindow.DisplayGridlines = False

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

' Prevent going to error trap unless error found by exiting Sub here.
Range("A5").Select

Application.ScreenUpdating = True

MsgBox "New Monthly Calendar created", vbOKOnly + vbInformation, "FTE Record"

Exit Sub

MyErrorTrap:
MsgBox "You may not have entered your Month and Year correctly." & Chr(13) & _
"Spell the Month correctly (or use 3 letter abbreviation)" & Chr(13) & _
"and 4 digits for the Year"
If InputBox("Type in Month and year for Calendar. [Format: January 2011] ") = "" Then Exit Sub
Resume
End Sub

Private Function GetDate(Optional InputDate As String) As Variant
Dim MyInput As Variant

If InputDate = "" Then

MyInput = InputBox("Type in Month and year for Calendar. [Must be in format: Jan 2012]")

If MyInput <> "" Then MyInput = DateValue(MyInput)

GetDate = MyInput
Else

GetDate = DateValue(InputDate)
End If
End Function

Private Function DayCalculations(ByVal Start As Variant, _
ByRef NumDays As Long, ByRef Spread As Long, ByRef Spread2 As Long) As Boolean
Dim curyear As Long
Dim curmonth As Long
Dim finalday As Date

' Set variables to identify the year and month as separate variables.
curyear = Year(Start)
curmonth = Month(Start)

' Set variable and calculate the first day of the next month.
finalday = DateSerial(curyear, curmonth + 1, 1)

' Calculate how many days in the given month
NumDays = Day(DateSerial(Year(Date), curmonth + 1, 1) - 1)
' Used to input data in the proper format. I.E. if I select column C, I have to -1, if I select column D I have to -2
Spread = NumDays - 1
Spread2 = NumDays - 2
End Function

Private Function AddHeaders(ByVal Start As Date, ByVal NumDays As Long, ByVal Spread As Long) As Boolean
' Prepare cell for Month and Year as fully spelled out.
' Center the title with appropriate formatting
With Range("D1")
.Value = "Attendance " '& Year(start)
.Font.FontStyle = "Arial"
.Font.Size = 12
.Font.Bold = True
.Font.Italic = False
.HorizontalAlignment = xlLeft
.VerticalAlignment = xlCenter
End With

' Prep next row to display month and year
With Range("D2")
.Value = MonthName(Month(Start)) & Chr(32) & Year(Start)
.NumberFormat = "mmmm yyyy"
.Font.FontStyle = "Arial"
.Font.Size = 12
.Font.Bold = True
.HorizontalAlignment = xlLeft
.VerticalAlignment = xlCenter
End With

' Begin AutoFill days
' need to do a column count and have loop run until column count is equal to mydays
With Range("D3")
.Value = Format(Start, "ddd")
.Font.Name = "Arial"
.Font.Size = 10
.AutoFill Destination:=.Resize(1, NumDays), Type:=xlFillDefault
End With

' Place a "1" in cell position of the first day of the chosen
' month based on DayofWeek.
Range("D4").Value = 1

Range("E4").Insert
With Range("E4")
.Formula = "=(D4+1)"
.AutoFill Destination:=.Resize(1, Spread), Type:=xlFillDefault
End With
End Function

Private Function AddBorders(rng As Range) As Boolean
'Format the Calendar Range
With rng
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.WrapText = True

.Borders(xlDiagonalDown).LineStyle = xlNone
.Borders(xlDiagonalUp).LineStyle = xlNone
Call BorderStyle(rng, xlEdgeLeft)
Call BorderStyle(rng, xlEdgeTop)
Call BorderStyle(rng, xlEdgeRight)
Call BorderStyle(rng, xlEdgeBottom)
Call BorderStyle(rng, xlInsideVertical)
Call BorderStyle(rng, xlInsideHorizontal)
End With
End Function

Private Function BorderStyle(rng As Range, Border As XlBordersIndex) As Boolean
With rng
With .Borders(Border)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
End With
End Function

GTO
05-26-2012, 03:57 AM
Energy drink?

craigos
05-26-2012, 05:23 AM
Thank You xld yet again.....your code works excellently.

Thank you also for your comments on the layout of the code I originally had, I did take this from another post and adapted for my own use but should have paid more attention to commenting out as otherwise as you say it can confuse.

Thanks too defcon3 can use that in another project I am working on.

Again, Thanks as the more I learn the more I want to know.

Craig
:beerchug:

Bob Phillips
05-26-2012, 06:10 AM
Thank you also for your comments on the layout of the code I originally had, I did take this from another post and adapted for my own use but should have paid more attention to commenting out as otherwise as you say it can confuse.

I am not keen to get into a styles war, but I certainly believe that if you do comment, comment effectively (personally, I hardly ever comment).


Again, Thanks as the more I learn the more I want to know.

Exactly the sort of person that makes our efforts worthwhile :)

Bob Phillips
05-26-2012, 06:12 AM
Energy drink?

My first post of the day. I just addressed the problem to startwith; then I thought I could be more helpful; then I though that I have started so I might as well finish.

Am I a saddo? :(

Aussiebear
05-26-2012, 12:05 PM
Am I a saddo? :(

:outtahereSaddo meeting in 5 minutes.

GTO
05-26-2012, 08:56 PM
:outtahereSaddo meeting in 5 minutes.

Gosh Ted - even if we had rockets, 5 minutes? :giggle


My first post of the day. I just addressed the problem to startwith; then I thought I could be more helpful; then I though that I have started so I might as well finish.

Am I a saddo?

Of course we are only teasing each other a bit, but hardly my friend. I just started chuckling as I read through your code's evolution and realized how quickly it transpired. I would most likely still have been at 'step one' if you will.:think:

My one-liner would have been, "Too many Red Bulls?" (a popular energy drink here), but I wasn't sure if it is sold there and would translate.

BTW, I had to lookup up "saddo". It is funny how there can be so many variations or different terms in the same language but different locales. I found this: on-line dictionary (http://dictionary.cambridge.org/dictionary/british/saddo)

Maybe simple-minded of me, but it just seems awfully nifty the "things" we have available with such ease. Not only a definition, but with a click, one can hear the correct pronounciation? How cool! I even got to talk (telephonically) with Ted the other day! Not that one could not have called internationally when I was a child, but imagine what the rates would have been over hard lines?! Again, just "too cool!" in my opinion.

Okay, not sure what got me ranting rather meandering observations, so I'll stop.

@craigos:

Neat calendar! As soon as I looked at it, I thought, "I'll bet my guys could use this.", so wanted to say thank you for the thread.

Mark

Aussiebear
05-27-2012, 03:39 AM
Gosh Ted - even if we had rockets, 5 minutes? :giggle


Net meeting Mark!

Bob Phillips
05-27-2012, 04:04 AM
My one-liner would have been, "Too many Red Bulls?" (a popular energy drink here), but I wasn't sure if it is sold there and would translate.

I cannot say that I have ever had one, but we do have Red Bull here as well. I'm a London Pride kind of bloke.


BTW, I had to lookup up "saddo". It is funny how there can be so many variations or different terms in the same language but different locales. I found this: on-line dictionary (http://dictionary.cambridge.org/dictionary/british/saddo)

That is so, but it is in the UK where the language is richly developed, I am afraid your countrymen just seem to munge it, trying to treat nouns as though they were verbs, : :rant: :rant:


Maybe simple-minded of me, but it just seems awfully nifty the "things" we have available with such ease. Not only a definition, but with a click, one can hear the correct pronounciation? How cool! I even got to talk (telephonically) with Ted the other day! Not that one could not have called internationally when I was a child, but imagine what the rates would have been over hard lines?! Again, just "too cool!" in my opinion.

You are right, it is incredibly convenient, but I do think we have lost something along the way.

I look at people using SatNav, and wonder why they need such things; can they not read a map? It is getting to the stage where I know people who could drive from where I live to Edinburgh (about 500 miles through some very densely populated areas), but have absolutely no idea where Edinburgh is.

And again, we can find out everything about a place before we go there. I went to Lucca in Italy a couple of years ago and found a small hotel to stay at. But I googled it, then street-mapped the route from the hotel back to the city centre, and decided I would like a 'better' locale. OK, some might say it saved me from disappointment, but part of the reason for going to faraway places is to discover things, encounter some bad things, but revel in the good things. If ou know about it in detail before you go, why bother going?

GTO
05-27-2012, 06:33 AM
Net meeting Mark!
Ahhh..., well I did mention being simple minded:dunno . I still think of meetings as face-to-face. (Probably the 'meet' part:giggle )


I cannot say that I have ever had one, but we do have Red Bull here as well. I'm a London Pride kind of bloke.

You have not missed anything incredible, sort of what one would assume flat ginger ale would taste like. London Pride?



That is so, but it is in the UK where the language is richly developed, I am afraid your countrymen just seem to munge it, trying to treat nouns as though they were verbs, : :rant: :rant:

I have not had the advantage of travel that you have had, so I take your word. That said, my observation would be that other than one's father and mother being Adam and Eve, any language learned would seem to be at least somewhat a conglomeration. I once had an English teacher (I do not recall for sure, but I do not believe I even completed the semester. I am afraid that I have always found locking down to a structered learning to be difficult) who stated only several things that I can recall years later.

Languages, one vs. another, has no moral winner. While Spanish more logically placing the descriptives after the thing (casa grande vs. big house) is certainly more logical (that is, one's thought does not have to "back up" after getting to the thing), if the idea, thought, or "picture" is accurately transmitted from the sender to the receiver, then the language has done its job.
"John is dead" makes no sense, as "is" states being.
"Good-bye" is short for "God be with ye"Imagine, instead of departing saying "see you later", saying "God be with you" (on your journey to home through the forest, because I hope dragons don't eat you). I suppose the last two 'stuck' just because I found them so interesting; the first because of the at least seemingly utter truth to it.

That is not to say that I hold no value in the 'proper' use of language, I do. While I quite regularly botch proper verbiage something horribly, I would still like to read George Orwell's essay "Politics and the English Language" sometime.


You are right, it is incredibly convenient, but I do think we have lost something along the way.

I look at people using SatNav, and wonder why they need such things; can they not read a map? It is getting to the stage where I know people who could drive from where I live to Edinburgh (about 500 miles through some very densely populated areas), but have absolutely no idea where Edinburgh is.

And again, we can find out everything about a place before we go there. I went to Lucca in Italy a couple of years ago and found a small hotel to stay at. But I googled it, then street-mapped the route from the hotel back to the city centre, and decided I would like a 'better' locale. OK, some might say it saved me from disappointment, but part of the reason for going to faraway places is to discover things, encounter some bad things, but revel in the good things. If ou know about it in detail before you go, why bother going?

I agree to the first bit without hesitation. In your example of a decently long trip (by roadway), I cannot help but chuckle in recalling an individual who was so regularly lost, that she would use a Garmond for directions to home from work!

Ultimately, a double-edged sword of sorts. Not only for the stupifying results when the particular techology is working, but for the weakening of basic skills (map reading in your example).

Fairly recently, I went with an uncle (my dad's kid brother) on a couple of hunting (more at hiking, didn't spot anything) trips. He brought along two Garmond two-way radios with sat-nav (there is another expression we use, which for the life of me, I am not recalling at the moment). Again, how cool! You can punch some buttons, and start walking away from each other and into the forest without a worry. Not only can you find your way back, but you can check each other's location in reference to your own!

At least unless the batteries die...

Bob Phillips
05-27-2012, 10:06 AM
Mark,

I was not saying that English as a language is better than any other; and I was certainly not arguing for some 'pure' form. English is one of the hardest languages in the world to learn, precisely because it is anything but pure. It has picked and poached from every other language, has always evolved and changed rapidly, has very loose structures, and so on. We (you and I and many of our countrymen) are lucky in that it is our mother tongue. The only reason that it is the world's pre-dominant language and everyone else is more or less obliged to learn it is because Great Britain was the first global super-power and enforced English, and the the next super-power, the USA, also happened to use the same (ish!) language. No, rather I was saying that one of the less appealing aspects of its global supremacy is the homogenisation of the language to a much smaller, business-speak subset of the langage, whereas here in the UK it is as vibrant as ever, and very fluid. I can envisage a time when the English speaking world will not be able to understand the English. It is already on its way there.

Regarding technology and all of the 'cool' tools we have now such as GPS. Yes, again I agree that they are great and useful, we should know how to use them, but we should learn the basic skills. Just as with spreadsheets, if you are going to do complex calculations, you should understand the underlying math, otherwise how can you tell you have applied the right function, and applied it correctly. This is another distrurbiing trend in my view, make everything idiot-proof. Doing so reduces the flexibility enormously, and cuts innovation.

PS - London Pride http://www.fullers.co.uk/rte.asp?id=47

Aussiebear
05-27-2012, 12:26 PM
Righto Socrates & Plato, back on topic.

Bob Phillips
05-27-2012, 12:47 PM
The OP said that his problem was solved, hence no topic to get back onto.

GTO
05-28-2012, 07:46 PM
Bob,

I must say, what started as a two-word joke/affectionate jab, has made me think a bit. Whilst, if given the same experiences, I might or might not reach the same exact conclusions, I believe we agree overall. You made two points which quite frankly, had not occurred to me; at least not fully. As to the first - while I have always felt blessed to be born where I was, I always relayed this more at the freedoms you and I both enjoy, vs. the lack of said in some other places. I do not believe I have ever thought about being blessed in terms of the language I learned. Excellent point, you are of course right.

I rather sheepishly address the second, as when thinking about global influences, I have tended to think most often in terms limited to the the past several hundred years, as well as more at the influences of 'politics' if you will. Not saying that I ignore more ancient history in any little bit of learning that I might get to do (my country formed after all, as a Roman-Greco form of government), but I admit that I have given less than sufficient thought to the negative effects of global business commerce upon the language. I of course hope that what you envision does not come to pass (as I am sure you do as well); unfortunately, it certainly seems more than possible. Personally, I am saddened and frustrated in observing the overall lack of value for knowledge that seems to be all about us. But for the knowledge that language can bring, we are serfs waiting to happen.

By the way, I caught that little jab "(ish!)". Ouch! Very cute.:thumb

Sigh... Thank you, it was indeed 'GPS' that I could not recall. I have oft admitted my sorely felt lacking in mathmatics and fully appreciate the ramifications of dependence upon anything. Although meant with humor, my "until the batteries die" comment was really at this.

Reference Fuller's: gosh, a bit embarassing. Upon opening the link, I am quite confident that you have answered me sometime before about London Pride. Hopefully stuff is not falling out of my brain faster than I can pack it in, but somedays I wonder.

Kindest regards and of course, enjoyable as always,

Mark

@Aussiebear:
Okay, I'll stop, please forgive: pray2: . I do enjoy our occassional non-Excel discourse here though. It is enjoyable, even just the little things, like looking up/learning a "new" word:) .