I have piece of code that I made so I am sure it is not efficient even though it does work it is very slow locks up excel at times. It is only copying around 15 words and Columns A:G do have formatting but only up to rows 101. Can this be made more efficient speed wise and how can I edit the ranges say A:F to A150:F150 and G:L to G150:L150 when I change those to that it no long keeps the column widths. Right now it is copying like 18k row or more I dont need which might be the lag issue even though they are empty.

 Sheets("MasterSheet").Visible = True
 Worksheets.Add(After:=Worksheets(Worksheets.Count)).Name = txtTerm.Value
  
 If SelCourse1.Value = "Weighted" Then
 Sheets("MasterSheet").Range("A:F").Copy Destination:=Sheets(txtTerm.Value).Range("A1")
 Range("A1").Value = txtCourse1.Text
 Else:
 Sheets("MasterSheet").Range("G:L").Copy Destination:=Sheets(txtTerm.Value).Range("A1")
 Range("A1").Value = txtCourse1.Text
 End If
 
 If SelCourse2.Value = "Weighted" Then
 Sheets("MasterSheet").Range("A:F").Copy Destination:=Sheets(txtTerm.Value).Range("G1")
 Range("G1").Value = txtCourse2.Text
 Else:
 Sheets("MasterSheet").Range("G:L").Copy Destination:=Sheets(txtTerm.Value).Range("G1")
 Range("G1").Value = txtCourse2.Text
 End If
 
 If SelCourse3.Value = "Weighted" Then
 Sheets("MasterSheet").Range("A:F").Copy Destination:=Sheets(txtTerm.Value).Range("M1")
 Range("M1").Value = txtCourse3.Text
 Else:
 Sheets("MasterSheet").Range("G:L").Copy Destination:=Sheets(txtTerm.Value).Range("M1")
 Range("M1").Value = txtCourse3.Text
 End If
Thank you for looking