Quando se diz algo que aconteceu no passado, o certo é "há" mesmo
Muita gente escreve a alguns anos e não percebe que está errado. O correto é há alguns anos, com h. A confusão é antiga e vem de um erro de pronúncia que se arrasta há décadas no português brasileiro. Quando você fala "a alguns anos" com uma entonação normal, soa igual, então o ouvido não ajuda. Só a regra gramatical resolve. O verbo haver, quando indica tempo decorrido, é impessoal. Ele só aparece na terceira pessoa do singular: há um ano, há cinco meses, há anos. Não conjuga. Não existe "eu ho", "tu has", "nós hemos". É só há. Já a preposição "a" indica direção ou distância em relação ao futuro: vou viajar a dois dias (daqui a dois dias). Colocar "a" para o passado é trocar o sentido da frase por completo.
a alguns anos ou há alguns anos: qual a diferença real
A diferença não é stylistica. É de tempo verbal. Há alguns anos aponta para algo que já passou — um evento localizado no passado. A alguns anos, se fosse usado, indicaria algo que está a certa distância no futuro. Mas na prática, ninguém diz isso hoje em dia com esse sentido. Então quando aparece "a alguns anos" no texto, o autor provavelmente quis dizer "há alguns anos" e errou. Eu já vi isso em relatórios técnicos, emails de empresa, até em material de treinamento de TI. O estranho é que quem corrige às vezes não percebe. Eu trabalhei num projeto onde um cliente enviou um documento com o parágrafo inteiro usando "a" no lugar de "há". Três vezes. A primeira, pensei que era erro de digitação. A segunda, que foi falta de atenção. A terceira, percebi que o próprio revisor do cliente tinha passado o olho e deixado passar. A correção que fiz foi substituir todos os "a" por "há" e mandar de volta. O cliente agradeceu. Eles sabiam que estava errado mas não tinham certeza da explicação.
Como saber na prática se está certo ou errado
O teste mais direto é substituir por tem. Se a frase funciona com "tem", está certo. Tem alguns anos que não vejo ele soa natural? Então há alguns anos também está certo. Agora a alguns anos não funciona nessa equivalência. "A" não carrega o sentido de existência temporal. Outro recurso útil: trocar por "passaram-se". Há três anos vira Passaram-se três anos. Funciona. A três anos vira Passaram-se três anos? Soa estranho porque a estrutura muda. A preposição "a" não se encaixa nesse reposicionamento.
👉 Clique no botão abaixo para saber mais sobre o assunto!
Existem situações onde "a" aparece antes de expressões de tempo, mas aí o contexto é diferente. A partir de, a cada, daqui a são locuções fixas que usam a preposição "a" de maneira completamente distinta. Isso não tem relação com o uso de "há" como verbo no sentido de tempo decorrido. Confundir essas construções é um dos motivos pelos quais o erro persiste.
Por que esse erro é tão comum no dia a dia
Em grande parte do Brasil, a pronúncia de "h" inicial desapareceu. Há vira a no speech. Então o ouvido capta as duas formas iguais. Quando alguém escreve o que ouve, naturalmente escreve "a". O problema é que a norma culta mantém a grafia com h, mesmo que não se pronuncie. Não é uma regra arbitrária — é uma marca de registro formal. Em textos informais, redes sociais, conversas, muita gente não liga. Mas em documentos profissionais, provas, processos seletivos, o erro é marcado. Uma coisa que pouca gente sabe: o verbo haver no sentido de tempo também é usado em perguntas e respostas técnicas. Se você responde "Há quantos anos?" com "A alguns anos", a resposta está errada. Esse tipo de equivocada aparece em editais e concursos com frequência. Não é erro bobo. É erro que custa ponto.
Se quiser ser absolutamente rigoroso, vale lembrar também que houve, houverá, havia vêm do mesmo verbo. Quando a frase exige uma conjugação, usa-se outra forma. Houve muitos incidentes. Haverá nova reunião. A única forma fixa é o presente há para tempo decorrido. Todo o resto se conjuga normalmente. Resumindo o que importa: se a frase fala de tempo que já passou, use há. Se fala de tempo futuro, use a (ou daqui a). O resto é detalhe. E se ainda tiver dúvida, faça o teste do "tem". Ele funciona na maioria das vezes.