Now it is working I have time to try out some of your suggestions. I am trying to process the data on the fly but I was wondering how to empty the buffer after the LED has been lit. here is my code (Now in code tags 
#include <Wire.h>
#include <FastLED.h>
// How many leds in your strip?
#define NUM_LEDS 200
//1602 outside wire SCL to A5 SDA to A4
#define DATA_PIN 13
#define BRIGHTNESS 255;
CRGB leds[NUM_LEDS];
String inputString = ""; // a String to hold incoming data
bool stringComplete = false; // whether the string is complete
String colHa="";
String colBa="";
String colFa="";
String ledNo="";
String Red1="";
String Green1="";
String Blue1="";
String allLeds="";
String colH ="255, 0, 0";
String colB ="0, 255, 0";
String colF ="0, 0, 255";
int ind1;
void setup() {
// initialize serial:
Serial.begin(9600);
Serial.println("serial delimit test 28-4-21"); // so I can keep track of what is loaded
FastLED.addLeds<WS2811, DATA_PIN, GBR>(leds, NUM_LEDS); // GRB ordering is typical
}
void loop() {
// print the string when a newline arrives:
if (stringComplete) {
inputString = "\0";
stringComplete = false;
}
}
void serialEvent()
{
// sterretje: changed while to if
if (Serial.available()) {
char inChar = (char)Serial.read();
// sterretje: echo received character
Serial.write(inChar);
inputString += inChar;
if (inChar == '$') {
getLEDS2();
}
}
}
void getLEDS2(){
allLeds=inputString;
Serial.println("after star "+allLeds);
delay(40);
//Serial.println(inputString);
//delay(100);
ind1 = allLeds.indexOf(','); //finds led no
ledNo = allLeds.substring(0, ind1);
allLeds.remove(0, ind1 + 1);
delay(10);
Serial.println(ledNo);
if (ledNo != ""){
colHa = colH;
delay(0);
colBa = colB;
delay(0);
colFa = colF;
delay(0);
//Serial.println("colH "+colH);
Serial.println("colHa "+colHa+" "+colBa+" "+colFa);
delay(10);
ind1 = allLeds.indexOf('$');
String whichH = allLeds.substring(0, ind1);
allLeds.remove(0, ind1 + 1);
delay(0);
if(whichH=="h"){
//Serial.println(whichH+" - "+colHa) ;
ind1 = colHa.indexOf(',');
Red1=colHa.substring(0, ind1);
colHa.remove(0, ind1 + 1);
ind1 = colHa.indexOf(',');
Green1=colHa.substring(0, ind1);
colHa.remove(0, ind1 + 1);
ind1 = colHa.indexOf(',');
Blue1=colHa.substring(0, ind1);
colHa.remove(0, ind1 + 1);
}
else if(whichH=="b"){
//Serial.println(whichH+" - "+colBa) ;
ind1 = colBa.indexOf(',');
Red1=colBa.substring(0, ind1);
colBa.remove(0, ind1 + 1);
ind1 = colBa.indexOf(',');
Green1=colBa.substring(0, ind1);
colBa.remove(0, ind1 + 1);
ind1 = colBa.indexOf(',');
Blue1=colBa.substring(0, ind1);
colBa.remove(0, ind1 + 1);
}
else if(whichH=="f"){
//Serial.println(whichH+" - "+colFa) ;
ind1 = colFa.indexOf(',');
Red1=colFa.substring(0, ind1);
colFa.remove(0, ind1 + 1);
ind1 = colFa.indexOf(',');
Green1=colFa.substring(0, ind1);
colFa.remove(0, ind1 + 1);
ind1 = colFa.indexOf(',');
Blue1=colFa.substring(0, ind1);
colFa.remove(0, ind1 + 1);
}
Serial.println("conq "+ledNo+" "+Red1+" "+Blue1+" "+Green1);
delay(20);
colHa="";
colBa="";
colFa="";
leds[ledNo.toInt() - 1] = CRGB(Red1.toInt(), Blue1.toInt(), Green1.toInt()); //writes info to leds
FastLED.show();
delay(20);
}
allLeds="\0";
stringComplete = true;
}
and here is a sample of the string data
21,h$10,h$1,h$3,h$4,h$20,h$19,h$18,h$25,h$24,h$23,h$22,h$41,h$40,h$39,h$45,h$44,h$43,h$86,h$82,h$83,h$65,h$66,h$102,h$108,h$107,h$106,h$87,h$111,h$100,h$99,h$90,h$110,h$
and the com monitor return
serial delimit test 28-4-21
21,h$after star 21,h$
21
colHa 255, 0, 0 0, 255, 0 0, 0, 255
conq 21 255 0 0
10,h$after star 10,h$
10
colHa 255, 0, 0 0, 255, 0 0, 0, 255
conq 10 255 0 0
1,h$after star 1,h$
1
colHa 255, 0, 0 0, 255, 0 0, 0, 255
conq 1 255 0 0
3,h$after star 3,h$
3
colHa 255, 0, 0 0, 255, 0 0, 0, 255
conq 3 255 0 0
4,h$after star 4,h$
4
colHa 255, 0, 0 0, 255, 0 0, 0, 255
conq 4 255 0 0
20,h$after star 20,h$
20
colHa 255, 0, 0 0, 255, 0 0, 0, 255
conq 20 255 0 0
19,h$after star 19,h$
19
colHa 255, 0, 0 0, 255, 0 0, 0, 255
conq 19 255 0 0
18,h$after star 18,h$
18
colHa 255, 0, 0 0, 255, 0 0, 0, 255
conq 18 255 0 0
25,h$after star 25,h$
25
colHa 255, 0, 0 0, 255, 0 0, 0, 255
conq 25 255 0 0
24,h$after star 24,h$
24
colHa 255, 0, 0 0, 255, 0 0, 0, 255
conq 24 255 0 0
23,h$after star 23,h$
23
colHa 255, 0, 0 0, 255, 0 0, 0, 255
conq 23 255 0 0
22,h$after star 22,h$
22
colHa 255, 0, 0 0, 255, 0 0, 0, 255
conq 22 255 0 0
41,h$after star 41,h$
41
colHa 255, 0, 0 0, 255, 0 0, 0, 255
conq 41 255 0 0
40,h$after star 40,h$
40
colHa 255, 0, 0 0, 255, 0 0, 0, 255
conq 40 255 0 0
36,h$after star 36,h$
36
colHa 255, 0, 0 0, 255, 0 0, 0, 255
conq 36 255 0 0
1
as you can see the string after $40,h is corrupt. Also I am unsure what is necessary for a blank string in my instance.
inputString = ""; or inputString = "\0";