PDA

View Full Version : [SOLVED] Shorten vba if Statements



Emoncada
08-19-2013, 08:07 AM
I have the following, but I know there has to be a way to make this code easier.


If wd.Range("A3").Value <> "" Then wd.Range("D3").Value = wd.Range("A3").Value & " " & wd.Range("B3").Value
If wd.Range("A4").Value <> "" Then wd.Range("D4").Value = wd.Range("A4").Value & " " & wd.Range("B4").Value
If wd.Range("A5").Value <> "" Then wd.Range("D5").Value = wd.Range("A5").Value & " " & wd.Range("B5").Value
If wd.Range("A6").Value <> "" Then wd.Range("D6").Value = wd.Range("A6").Value & " " & wd.Range("B6").Value
If wd.Range("A7").Value <> "" Then wd.Range("D7").Value = wd.Range("A7").Value & " " & wd.Range("B7").Value
If wd.Range("A8").Value <> "" Then wd.Range("D8").Value = wd.Range("A8").Value & " " & wd.Range("B8").Value
If wd.Range("A9").Value <> "" Then wd.Range("D9").Value = wd.Range("A9").Value & " " & wd.Range("B9").Value
If wd.Range("A10").Value <> "" Then wd.Range("D10").Value = wd.Range("A10").Value & " " & wd.Range("B10").Value
If wd.Range("A11").Value <> "" Then wd.Range("D11").Value = wd.Range("A11").Value & " " & wd.Range("B11").Value
If wd.Range("A12").Value <> "" Then wd.Range("D12").Value = wd.Range("A12").Value & " " & wd.Range("B12").Value
If wd.Range("A13").Value <> "" Then wd.Range("D13").Value = wd.Range("A13").Value & " " & wd.Range("B13").Value
If wd.Range("A14").Value <> "" Then wd.Range("D14").Value = wd.Range("A14").Value & " " & wd.Range("B14").Value


Any help would be great.

Thanks

Aflatoon
08-19-2013, 08:24 AM
How about simply:

For n = 3 To 14
If wd.Range("A" & n).Value <> "" Then wd.Range("D" & n).Value = wd.Range("A & n").Value & " " & wd.Range("B" & n).Value
Next n

Emoncada
08-19-2013, 09:00 AM
lol I blanked out for a minute.

That worked, Thanks.

p45cal
08-19-2013, 09:04 AM
perhaps:
For Each c In wd.Range("A3:A14")
If c <> "" Then c.Offset(, 3) = c & " " & c.Offset(, 1)
Next c

snb
08-19-2013, 09:12 AM
[D3:D14]=[IF(A3:A14="",D3:D14,A3:A14& " " & B3:B14)]