To me the transmitters' information is divided in code, but codes can only be separated once they are bits not while they are "pass band symbols", right?
Wrong!
I'm not quite sure how to continue this answer, other than saying, "please re-read the CDMA introduction you've been reading".
The whole idea is that you receive a sequence that is a superposition of the two transmit signals, and by correlation with the known spreading sequences, you can extract the bits from that.
Let's put it more mathematical:
Your spreading sequences are called $c_i$.
Orthogonality is defined via the inner product:
$$a \perp b \iff <a, b> = 0 = <b,a>\text{ .}$$
Now, let's assume perfectly orthonormal sequences, so that $<c_i, c_j> = \delta_{ij}$, i.e. the inner product is 1 only if you multiply a sequence with itself, and 0 for any other sequence.
Corollary, the $c$ span a vector space $C$ which contains all linear combinations of CDMA sequences; its dimension is the same as the number of possible sequences, since these per definition are orthogonal (and hence, especially linearly independent) and form a basis.
Now, let's apply the code. You'll take one symbol $s$, in case of BPSK, one bit, represent it as $\{-1,+1\}=S$, and multiply it to get the transmit sequence $t$. You get the set of possible transmit sequences $t_{i,s}$ for user $i$:
$$T_i = \left\{sc_i \,\forall s\in S \right\}= \left\{ -c_i, +c_i\right\}$$
Notice that $T_i$ spans a vector space that has one dimension less than $C$!
Let's now define a receive signal $r$. We don't know what symbols were sent yet, so we say that user $i$ sent symbol $s_i$, and user $j$ sent symbol $s_j$:
$$r = s_ic_i+ s_jc_j$$
Now, we simply consider $r$ to be a sequence of complex numbers.
What happens now if we multiply $r$ with the individual spreading sequences $c$? Let's do it with user $i$'s code:
$$\begin{align}
<c_i,r> &= <c_i, s_ic_i+ s_jc_j>&\text{linearity of inner product}\\
&= <c_i, s_ic_i>+ <c_i, s_jc_j>&\text{$s_i$, $s_j$ are scalars}\\
&= s_i <c_i, c_i> + s_j <c_i, c_j>&\text{orthonormality}\\
&= s_i \cdot 1 + s_j \cdot 0\\
&= s_i
\end{align}$$
How nice! The same works for every other user, too.
I was a bit pushing the vector space notion here: It's important to realize that all this simply happens due to linear algebra representing our signals. You can now also see why CDMA systems that support a high number of users get slower per user (simply because that dictates a higher number of base vectors of $C$, which dictates a higher dimensionality and thus, longer sequences). Also, it shows that CDMA on this theoretical level works with any linear modulation, since we simply need $S\subset \mathbb C$, i.e. $s$ just needs to be scalar.