Sub CommandButton1_Click()
Application.ScreenUpdating = False
Dim y As Integer
Dim z As Integer
y = Sheets("Coding").Cells(5, 5).Value 'determines the staring row
z = Sheets("Coding").Cells(1, 10).Value '10 different pages so this determines which one to use
Sheets(z).Select
Cells(y, 2).Select
If IsEmpty(Selection) = True Then
Selection.Offset(0, -1).Copy _
Sheets("Coding").Range("C7")
Else
Do Until IsEmpty(Selection) = True
Selection.Offset(1, 0).Select
Selection.Offset(0, -1).Copy _
Sheets("Coding").Range("C7")
Exit Do
Selection.Offset(0, -1).Copy _
Sheets("Coding").Range("C7")
Loop
End If
Cells(y, 4).Select 'the code repeats itself again, there are 4 diaries per page
If IsEmpty(Selection) = True Then
Selection.Offset(0, -3).Copy _
Sheets("Coding").Range("C8")
Else
Do Until IsEmpty(Selection) = True
Selection.Offset(1, 0).Select
Selection.Offset(0, -3).Copy _
Sheets("Coding").Range("C8")
Exit Do
Selection.Offset(0, -3).Copy _
Sheets("Coding").Range("C8")
Loop
End If
Cells(y, 6).Select
If IsEmpty(Selection) = True Then
Selection.Offset(0, -5).Copy _
Sheets("Coding").Range("C9")
Else
Do Until IsEmpty(Selection) = True
Selection.Offset(1, 0).Select
Selection.Offset(0, -5).Copy _
Sheets("Coding").Range("C9")
Exit Do
Selection.Offset(0, -5).Copy _
Sheets("Coding").Range("C9")
Loop
End If
Cells(y, 8).Select
If IsEmpty(Selection) = True Then
Selection.Offset(0, -7).Copy _
Sheets("Coding").Range("C10")
Else
Do Until IsEmpty(Selection) = True
Selection.Offset(1, 0).Select
Selection.Offset(0, -7).Copy _
Sheets("Coding").Range("C10")
Exit Do
Selection.Offset(0, -7).Copy _
Sheets("Coding").Range("C10")
Loop
End If
Cells(y, 2).Select 'now its starting again but looking for slots before the starting slot if the starting one is full, again will repeat for 4 diaries
If IsEmpty(Selection) = True Then
Selection.Offset(0, -1).Copy _
Sheets("Coding").Range("C11")
ElseIf Sheets("Coding").Cells(6, 5).Value = 0 Then
Sheets("Coding").Range("C11").Value = "full"
Else
Do Until (IsEmpty(Selection) = True) Or (Sheets("Coding").Cells(6, 5).Value = 0) 'moniters the row number so that if it gets to the start of diary but still hasnt found anything it will stop
Selection.Offset(-1, 0).Select
Selection.Offset(0, -1).Copy _
Sheets("Coding").Range("C11")
Sheets("Coding").Cells(6, 5).Value = ((Sheets("Coding").Cells(6, 5).Value) - 1)
Exit Do
If Sheets("Coding").Cells(6, 5).Value = 0 Then
Sheets("Coding").Range("C11").Value = "full"
Else
Selection.Offset(0, -1).Copy _
Sheets("Coding").Range("C11")
End If
Loop
End If
Sheets("Coding").Cells(6, 5).Value = ((Sheets("Coding").Cells(5, 5).Value) - 3)
Cells(y, 4).Select
If IsEmpty(Selection) = True Then
Selection.Offset(0, -3).Copy _
Sheets("Coding").Range("C12")
ElseIf Sheets("Coding").Cells(6, 5).Value = 0 Then
Sheets("Coding").Range("C12").Value = "full"
Else
Do Until (IsEmpty(Selection) = True) Or (Sheets("Coding").Cells(6, 5).Value = 0)
Selection.Offset(-1, 0).Select
Selection.Offset(0, -3).Copy _
Sheets("Coding").Range("C12")
Sheets("Coding").Cells(6, 5).Value = ((Sheets("Coding").Cells(6, 5).Value) - 1)
Exit Do
If Sheets("Coding").Cells(6, 5).Value = 0 Then
Sheets("Coding").Range("C12").Value = "full"
Else
Selection.Offset(0, -3).Copy _
Sheets("Coding").Range("C12")
End If
Loop
End If
Sheets("Coding").Cells(6, 5).Value = ((Sheets("Coding").Cells(5, 5).Value) - 3)
Cells(y, 6).Select
If IsEmpty(Selection) = True Then
Selection.Offset(0, -5).Copy _
Sheets("Coding").Range("C13")
ElseIf Sheets("Coding").Cells(6, 5).Value = 0 Then
Sheets("Coding").Range("C13").Value = "full"
Else
Do Until (IsEmpty(Selection) = True) Or (Sheets("Coding").Cells(6, 5).Value = 0)
Selection.Offset(-1, 0).Select
Selection.Offset(0, -5).Copy _
Sheets("Coding").Range("C13")
Sheets("Coding").Cells(6, 5).Value = ((Sheets("Coding").Cells(6, 5).Value) - 1)
Exit Do
If Sheets("Coding").Cells(6, 5).Value = 0 Then
Sheets("Coding").Range("C13").Value = "full"
Else
Selection.Offset(0, -5).Copy _
Sheets("Coding").Range("C13")
End If
Loop
End If
Sheets("Coding").Cells(6, 5).Value = ((Sheets("Coding").Cells(5, 5).Value) - 3)
Cells(y, 8).Select
If IsEmpty(Selection) = True Then
Selection.Offset(0, -7).Copy _
Sheets("Coding").Range("C14")
ElseIf Sheets("Coding").Cells(6, 5).Value = 0 Then
Sheets("Coding").Range("C14").Value = "full"
Else
Do Until (IsEmpty(Selection) = True) Or (Sheets("Coding").Cells(6, 5).Value = 0)
Selection.Offset(-1, 0).Select
Selection.Offset(0, -7).Copy _
Sheets("Coding").Range("C14")
Sheets("Coding").Cells(6, 5).Value = ((Sheets("Coding").Cells(6, 5).Value) - 1)
Exit Do
If Sheets("Coding").Cells(6, 5).Value = 0 Then
Sheets("Coding").Range("C14").Value = "full"
Else
Selection.Offset(0, -7).Copy _
Sheets("Coding").Range("C14") 'all in all it leaves me with 8 diary slots to choose from, (from C7-C14) they could all be the same, some could say "full" etc
End If
Loop
End If
Sheets("Coding").Cells(6, 5).Value = ((Sheets("Coding").Cells(5, 5).Value) - 3) 'resets the row counter
Sheets("Coding").Select
End Sub
Now that I've sorted that out, I now need to work out how to make it find the NEXT slot, if the one it thows up as the first available is not suitable for the customer and they were prefer a later/earlier etc time. So I may be back soon.
Bookmarks