I'm not aware of a situation where tar will output /dev/null to signal an error, which is how your code attempts to detect the error. This is the correct way to check for errors:
if tar -cf Archiv.tar myfolder/ myotherfolder/
then
echo "success"
else
echo "error - no such Directory or file"
fi
You probably don't need the else case because tar itself will complain in that case. If your use of /dev/null was supposed to suppress tar complaints so that you can substitute your own message, then the first line should be:
if tar -cf Archiv.tar myfolder/ myotherfolder/ > /dev/null 2>&1
Notice that we're not using square brackets here. That's actually an alias for a built-in shell command called test(1) which does logical operations and returns 0 or nonzero to signal success or failure, respectively. if in turn checks for this 0/nonzero return, so in order to check for the success of a program like tar that returns nonzero on failure, you don't need to involve test or its alias [.
If you were trained on a programming language that requires some kind of punctuation surrounding the if expression so that the lack of punctuation bothers you here, you could rewrite the first line like this:
tar -cf Archiv.tar myfolder/ myotherfolder/
if [ $? = 0 ]
These two lines together do the same thing a the version above because the shell built-in variable $? holds the status code of that last program run.
This is perhaps clearer, but a bit wasteful.