If your question is about how to send a transaction yourself at any point after a certain block height is reached, then you can run an ever-running daemon on a host you control, that will do it in a programmatic way – like the answer from @YoussefLourayad@BadrBelaj.
If on the other hand what you want is to send a transaction to the network now and have it executed automatically by the network once at a certain block height, then you can't do it natively at Ethereum level. However, there are neat deployed smart contracts such as the Ethereum Alarm Clock, that rely on the crowd to do the work "the Ethereum way". It's very clever and maybe it will solve your use case.