#VBA (Excel), 105, 101, 99 Bytes
VBA (Excel), 105, 101, 99 Bytes
Edit: -4 bytes from Keeta! Thanks!
Edit 2: -2 bytes from Chronocidal! Woot! (Realized that test cases only worked for 10. Fixed now)
Yeah, Excel beat VBA this time. Whatever. (We're coming for you)
d=vbCr:For i=1To[a1]:a=i Mod 3:?IIf(a=1,"Yeah"+d,"")IIf(i/2=i\2,"","But"+d)IIf(a=2,"No"+d,"");:Next
^This is pasted into the Immediate window and outputs to the debug window
Ungolfed
d = vbCr
'For 1 to the value in A1 (using 0 gave extra values, and VBA skips the for loop if 0)
For i = 1 To [a1] 'aka: Range("A1").value
a = i mod 3
'? is the same as Print (Debug.Print when not in the Immediate Window)
Print IIf(a = 1, "Yeah" + d, "") _ '<-- Just a line continuation
'Keeta taught me that the \ operator is division with truncation,
' so if they are equal then there is no remainder!
IIf(i / 2 = i \ 2, "", "But" + d) _
IIf(a = 2, "No" + d, "");
'Print usually prints a newline, but it still outputs if the string is blank...
' So we append a newline -if true- and use a semi-colon to kill the newline
Next