I have n files, like:
file1:
1aaa
2eee
Test        XXX
Hanna
Lars 
file2:
1fff
2ffffd
3zzz
Test        XXX
Mike
Charly         
        This will work for your examples and even if the matched pattern is on the very first line:
sed -n -E -e '/Text XXX/,$ p' input.txt | sed '1 d'
For example if you input is simply
Test        XXX
Mike
Charly
This will give you
Mike
Charly
If you want to keep the first match Test        XXX then just use:
sed -n -E -e '/Text XXX/,$ p' input.txt
                                                                        cat <<-EOF > file1.txt
1aaa
2eee
Test        XXX
Hanna
Lars
EOF
cat file1.txt | sed -e '/Test *XXX/p' -e '0,/Test *XXX/d'
Output:
Test        XXX
Hanna
Lars
Explanation:
-e '/Test *XXX/p' duplicates the line matching /Test *XXX/-e '0,/Test *XXX/d' deletes from line 0 to the first line matching /Test *XXX/By duplicating the line, then removing the first one, we effectively retain the matched line, successfully deleting all lines BEFORE Test    XXX
Note: this will not work as expected if there are multiple Test    XXX lines.
You can do it with bash ( eg for 1 file)
t=0
while read -r line
do
    [[ $line =~ Test.*XXX ]] && t="1"
    case "$t" in
     1) echo "$line";;
    esac
done < file > tempo && mv tempo file
Use a for loop as necessary to go through all the files
This should work for you:
sed -i '1,/Test XXX/d' file1
sed -i '1,/Test XXX/d' file2
or simply
sed -i '1,/Test XXX/d' file*