-1) {
let s = strcode.indexOf("", e);
scripts.push(strcode.substring(s_e+1, e));
strcode = strcode.substring(0, s) + strcode.substring(e_e+1);
}
for(let i=0; i 0 ){
donation = form.donation.value;
}
var telephone = form.telephone.value;
var email = form.email.value;
var commune = form.commune.value;
var code_postal = form.code_postal.value;
var message = form.message.value;
if( form.infos !== undefined && form.infos.value !== "" ){
message = form.infos.value + "\n\n" + message;
}
var cnil = form.cnil.value;
var emplacement = form.emplacement.value;
var gsm = form.gsm.value;
var comment = form.comment.value;
let confirm = "page";
if( form.confirmation !== undefined && form.confirmation.value === "popin" ){
confirm = "popin"
}
if( nom != "" && prenom != "" && telephone != "" && email != "" && commune != "" && code_postal != "" ){
chargement.style['display'] = "flex";
var chargement_timer = setTimeout(function(){
chargement.style['opacity'] = 1;
},10);
var contact_termine = false;
function terminer_contact(succes) {
if (contact_termine) {
return;
}
contact_termine = true;
clearTimeout(chargement_timer);
sending_data = false;
if (succes) {
confirmation_contact(true,confirm);
} else {
chargement.style['display'] = "none";
chargement.style['opacity'] = 0;
var modal_fond = document.createElement("div");
modal_fond.classList.add("modal_fond");
modal_fond.onclick = function() { modal_fond.remove(); };
var modal_texte = document.createElement("div");
modal_texte.classList.add("modal_texte");
modal_texte.setAttribute("role", "alert");
modal_texte.textContent = "Votre demande prend plus de temps que prévu. Cliquez pour fermer ce message.";
modal_fond.appendChild(modal_texte);
document.body.appendChild(modal_fond);
}
}
var xhr_contact = new XMLHttpRequest();
xhr_contact.overrideMimeType("application/json");
xhr_contact.onreadystatechange = function () {
if (this.readyState !== 4 || contact_termine) {
return;
}
var response = null;
if (this.status === 200) {
try {
response = JSON.parse(xhr_contact.responseText);
} catch (error) {
// Une réponse illisible n'est jamais une confirmation.
}
}
terminer_contact(!!response && response.results === "OK");
};
xhr_contact.onerror = xhr_contact.onabort = xhr_contact.ontimeout = function() {
terminer_contact(false);
};
contact_form.append('d', d);
contact_form.append('id_page', id_page);
contact_form.append('projet', projet);
contact_form.append('donation', donation);
contact_form.append('nom', nom);
contact_form.append('prenom', prenom);
contact_form.append('telephone', telephone);
contact_form.append('email', email);
contact_form.append('commune', commune);
contact_form.append('code_postal', code_postal);
contact_form.append('message', message);
contact_form.append('cnil', cnil);
contact_form.append('emplacement', emplacement);
if( guide_du_neuf ){
contact_form.append('guide_du_neuf', true);
}
contact_form.append('gsm', gsm);
contact_form.append('comment', comment);
try {
xhr_contact.open("post", '/contact_xhr.php', true);
xhr_contact.timeout = 20000;
xhr_contact.send(contact_form);
} catch (error) {
terminer_contact(false);
}
} else {
var fields = [
"nom",
"prenom",
"telephone",
"email",
"commune",
"code_postal"
];
for( var f = 0 ; f < fields.length ; f ++ ){
if( form[fields[f]].value == '' ){
form[fields[f]].style['background'] = '#FFCCCC';
} else{
form[fields[f]].style['background'] = 'inherit';
}
}
sending_data = false;
}
}
return false;
}
if (typeof check_projet_contact_form === 'undefined') {
function check_projet_contact_form(form) {
const actives = form.querySelectorAll(".active");
for( let active of actives){
active.classList.remove("active");
}
if (event.target.name === "select_investir") {
form.select_investir.classList.add("active");
form.projet.value = "investir";
form.donation.value = 0;
} else if (event.target.name === "select_habiter") {
form.select_habiter.classList.add("active");
form.projet.value = "habiter";
form.donation.value = 0;
} else if (event.target.name === "select_donation_habiter" || event.target.name === "select_donation_investir" ) {
form.select_donation.classList.add("active");
event.target.classList.add("active");
form.projet.value = "";
form.donation.value = event.target.value;
}
}
}
let dropdown_donation_open = false;
function set_dropdown_donation_state(el, opened) {
el.style.display = opened ? 'block' : 'none';
el.parentNode.classList.toggle('donation_opened', opened);
el.parentNode.setAttribute('aria-expanded', String(opened));
}
function open_dropdown_donation(el, force){
event.stopPropagation();
const opened = !force && el.style.display !== 'block';
document.querySelectorAll('.formulaire_contact .dropdown_donation').forEach(function(dropdown) {
set_dropdown_donation_state(dropdown, dropdown === el && opened);
});
dropdown_donation_open = opened;
}
document.addEventListener('click', function(e) {
document.querySelectorAll('.formulaire_contact .dropdown_donation').forEach(function(dropdown) {
if (!dropdown.parentNode.contains(e.target)) {
set_dropdown_donation_state(dropdown, false);
}
});
dropdown_donation_open = !!document.querySelector('.formulaire_contact .donation_opened');
}, true);
if (typeof fill_input === 'undefined') {
function fill_input(form,projet_select) {
let select_projet_title_text = "Sélectionnez votre projet";
switch ( parseInt( projet_select ) ){
default:
case 1 :
form.projet.value = "habiter";
form.donation.value = 0;
select_projet_title_text = "Habiter";
break;
case 2 :
form.projet.value = "investir";
form.donation.value = 0;
select_projet_title_text = "Investir";
break;
case 3 :
form.projet.value = "gestion";
form.donation.value = 0;
select_projet_title_text = "Faire gérer mon bien";
form.message.value = "Je souhaite mettre mon bien en location"
break;
case 4 :
form.projet.value = "gestion";
form.donation.value = 0;
select_projet_title_text = "Trouver une location";
form.message.value = "Je recherche une location"
break;
case 5 :
form.projet.value = "";
form.donation.value = 1;
select_projet_title_text = "Donation pour habiter";
break;
case 6 :
form.projet.value = "";
form.donation.value = 2;
select_projet_title_text = "Donation pour investir";
break;
}
form.select_projet_title.innerText = select_projet_title_text;
}
}
let select_project_open = false;
function open_select_project(el, force){
event.stopPropagation();
if(select_project_open || force){
el.style['display'] = 'none';
select_project_open = false;
el.parentNode.classList.remove("select_opened");
} else {
el.style['display'] = 'flex';
select_project_open = true;
el.parentNode.classList.add("select_opened");
}
}
let unwrap_elements = [];
function unwrap(el){
let wrapper = el.parentNode;
let help_text = el.querySelector('span');
let container = wrapper.querySelector(".wrap_content");
if( unwrap_elements.includes(wrapper) ){
unwrap_elements = unwrap_elements.filter(e => e !== wrapper);
help_text.innerHTML = "Lire plus";
container.style['max-height'] = "300px";
wrapper.classList.remove("unwrap");
el.parentNode.scrollIntoView({ behavior: "smooth", block: "start" });
} else {
unwrap_elements.push(wrapper);
help_text.innerHTML = "Lire moins";
container.style['max-height'] = "20000px";
wrapper.classList.add("unwrap");
}
}
let unwrap_elements_custom = [];
function unwrap_custom(btn, options = { more: "Lire plus", less: "Lire moins" } ) {
const wrapper = btn.parentNode;
const container = wrapper.querySelector(".wrap_custom_content");
const help_text = btn.querySelector(".wrap_help_text");
console.log( wrapper );
if (!container) return;
const dataset_more = btn.dataset.textMore;
const dataset_less = btn.dataset.textLess;
const final_options = {
more: dataset_more || options.more,
less: dataset_less || options.less
};
capture_original_constraint(container);
const is_open = unwrap_elements_custom.includes(wrapper);
if (is_open) {
const collapse_height = read_collapse_height(wrapper);
if (collapse_height != null) {
apply_collapse_height(container, collapse_height);
} else {
restore_original_constraint(container);
}
unwrap_elements_custom = unwrap_elements_custom.filter(n => n !== wrapper);
wrapper.classList.remove("unwrap_custom");
btn.setAttribute("aria-expanded", "false");
if (help_text) help_text.innerHTML = final_options.more;
wrapper.scrollIntoView({ behavior: "smooth", block: "start" });
} else {
remove_constraint(container);
unwrap_elements_custom.push(wrapper);
wrapper.classList.add("unwrap_custom");
btn.setAttribute("aria-expanded", "true");
if (help_text) help_text.innerHTML = final_options.less;
}
}
function init_unwrap_auto(root_node = document, options = { more: "Lire plus", less: "Lire moins" }) {
const wrappers = root_node.querySelectorAll(".wrap_custom");
wrappers.forEach(wrapper => {
const container = wrapper.querySelector(".wrap_custom_content");
const btn = wrapper.querySelector(".wrap_custom_toggle");
const help_text = btn ? btn.querySelector(".wrap_help_text") : null;
if (!container || !btn) return;
unwrap_elements_custom = unwrap_elements_custom.filter(n => n !== wrapper);
const text_more = btn.dataset.textMore || options.more;
capture_original_constraint(container);
const collapse_height = read_collapse_height(wrapper);
if (collapse_height != null) {
apply_collapse_height(container, collapse_height);
} else {
restore_original_constraint(container);
}
const overflowing = is_overflowing(container);
if (overflowing) {
btn.style.display = "";
btn.setAttribute("aria-expanded", "false");
if (help_text) help_text.innerHTML = text_more;
wrapper.classList.remove("unwrap_custom");
} else {
remove_constraint(container);
btn.style.display = "none";
wrapper.classList.add("unwrap_custom");
if (!unwrap_elements_custom.includes(wrapper)) {
unwrap_elements_custom.push(wrapper);
}
}
one_time_resize_recheck(container, () => {
if (collapse_height != null) apply_collapse_height(container, collapse_height);
const now_overflowing = is_overflowing(container);
if (now_overflowing) {
btn.style.display = "";
btn.setAttribute("aria-expanded", "false");
if (help_text) help_text.innerHTML = text_more;
restore_collapsed_state(container, wrapper, collapse_height);
} else {
remove_constraint(container);
btn.style.display = "none";
wrapper.classList.add("unwrap_custom");
if (!unwrap_elements_custom.includes(wrapper)) {
unwrap_elements_custom.push(wrapper);
}
}
});
});
}
function read_collapse_height(wrapper) {
const raw = wrapper.getAttribute("data-collapse_height");
if (!raw) return null;
const n = parse_int_safe(raw, null);
return n != null ? n : null;
}
function parse_int_safe(value, fallback) {
const n = parseInt(value, 10);
return Number.isNaN(n) ? fallback : n;
}
function is_overflowing(el) {
return Math.ceil(el.scrollHeight) > Math.ceil(el.clientHeight);
}
function capture_original_constraint(container) {
if (container.dataset._cap_captured === "1") return;
const cs = window.getComputedStyle(container);
container.dataset._orig_max_height = cs.maxHeight;
container.dataset._orig_height = cs.height;
container.dataset._orig_overflow = cs.overflow;
container.dataset._cap_captured = "1";
}
function restore_original_constraint(container) {
const orig_max = container.dataset._orig_max_height || "none";
const orig_height = container.dataset._orig_height || "auto";
const orig_overflow = container.dataset._orig_overflow || "visible";
container.style.maxHeight = orig_max;
if (orig_height !== "auto") container.style.height = orig_height;
container.style.overflow = orig_overflow;
}
function apply_collapse_height(container, height_px) {
container.style.height = "";
container.style.maxHeight = height_px + "px";
container.style.overflow = "hidden";
}
function remove_constraint(container) {
container.style.maxHeight = "none";
container.style.height = "auto";
container.style.overflow = "visible";
}
function restore_collapsed_state(container, wrapper, collapse_height) {
if (collapse_height != null) {
apply_collapse_height(container, collapse_height);
} else {
restore_original_constraint(container);
}
wrapper.classList.remove("unwrap_custom");
unwrap_elements_custom = unwrap_elements_custom.filter(n => n !== wrapper);
}
function one_time_resize_recheck(container, callback_once) {
if (!("ResizeObserver" in window)) return;
let done = false;
const ro = new ResizeObserver(() => {
if (done) return;
done = true;
callback_once();
ro.disconnect();
});
ro.observe(container);
}
document.addEventListener("DOMContentLoaded", () => {
init_unwrap_auto(document, { more: "Lire plus", less: "Lire moins" });
});
✖
Transformez votre loyer en Patrimoine
M. & Mme Dubois étaient locataires d'un T3 en zone A à 1 000 €/mois
Avec leur revenu fiscal de référence de 35 000 € ils sont éligibles au Prêt à Taux Zéro
🏡
T3 à 310 000 € frais de notaire inclus
◎
PTZ + Prêt Aidé de 165 000 €
💸
Apport de 31 000 €
🏦
Emprunt de 125 000 € à 3.20 % sur 25 ans
Leur nouvelle mensualité s'élève à 1 150 €/mois , ils sont devenus propriétaires de leur résidence principale pour 150 € de plus par mois*
Contactez-nous & obtenez votre simulation gratuite
*Document non contractuel. Voir conditions en agence
▾
Le marché immobilier à Saint-Malo en juin 2024
Obtenir les informations résumées de cette page :
SOMMAIRE
Le printemps 2024 marque l’arrêt de la spectaculaire envolée des prix au sein de la cité Malouine. Le marché immobilier de la 8ème ville la plus chère d’Ille-et-Vilaine (selon le conseil régional des notaires) reprend son rythme de croisière sans baisse des prix à l’horizon.
En juin 2024, le prix médian du mètre carré tous bien confondus est de 4 926 €, marquant une très légère hausse de 1 % sur un an quand les 5 dernières années réunies avaient crevé tous les plafonds avec une hausse historique de 53 %.
Les prix de l’immobilier à Saint Malo au 2ème trimestre 2024
Le prix médian pour les logements anciens est de 4 835 €/m², stable sur un an, mais en hausse de 53 % sur cinq ans.
Pour les biens neufs, le prix médian est de 4 994 €/m², avec une augmentation de 30 % sur cinq ans.
Les maisons se vendent en moyenne à 4 311 €/m², soit une augmentation de 4 % sur un an.
Les appartements, plus prisés, affichent un prix médian de 5 084 €/m², en légère hausse de 1 % sur un an.
J’achète un logement neuf à Saint-Malo
Les prix au m² selon la typologie
Les prix varient également selon la taille des logements suivant une logique dégressive à mesure qu’on gagne en espace.
Studios/1 pièce : 5 590 €/m²
2 pièces : 5 131 €/m²
3 pièces : 4 924 €/m²
4 pièces : 4 951 €/m²
5 pièces et plus : 4 731 €/m²
Pour louer un logement dans la cité corsaire, il faut tabler sur un loyer médian de 15 €/m², avec une hausse de 5 % sur un an. Les studios se louent en moyenne à 21 €/m², tandis que les appartements plus grands (5 pièces) se louent à 12 €/m². Les maisons ont un loyer médian de 13 €/m², en hausse de 11 % sur un an.
Combien de temps pour vendre mon bien ?
En juin 2024, le délai moyen de vente pour un bien immobilier à Saint-Malo est de 80 jours. Les maisons se vendent en moyenne plus rapidement que les appartements, avec une attente variant entre 46 et 62 jours quand les appartements requièrent entre 90 et 98 jours selon la taille.
Les prix par quartier
Les prix de l'immobilier varient sensiblement selon les quartiers :
Paramé Centre : 6 619 €/m²,
Sillon-Moka-Courtvoisville : 5 953 €/m²,
Rotheneuf-Le Pont : 5 571 €/m²,
Intra-Muros : 5 189 €/m².
J’investis en Pinel à Saint-Malo
Quel avenir pour le parc immobilier à Saint-Malo ?
Theo Balland
L'équipe municipale qui appliquait le même Plan Local d’Urbanisme depuis 2006 a présenté le premier jet du futur plan à ses administrés en Novembre 2023. Le prochain PLU qui devrait être approuvé en 2025 prévoit, une densification ciblée et raisonnée.
Cette nouvelle mouture envisage la construction de 3 000 logements neufs d'ici 2030. L'objectif est de maintenir la population à 47 500 habitants en ouvrant de nouvelles résidences principales. Un plan qui nécessite la construction de 500 nouveaux logements par an. Toutefois, la densification ne devrait pas être homogène. Selon le Maire, Gilles Lurton, l'ambition du PLU de Saint-Malo est d'« arrêter l’extension urbaine » tout en « renforçant l’attractivité pour les actifs et les familles ».
La ville envisage donc une densification différenciée de ses zones d'habitat pour répondre aux besoins croissants en logement tout en respectant l'environnement urbain existant.
Une densification variable selon les zones
L’Édile malouin a promis une diminution de la consommation des sols de l’ordre de 40% par rapport aux dix années précédentes, selon un plan de densification “raisonné et raisonnable”.
62 % des zones verront une densification douce avec des hauteurs limitées à 18 mètres, sauf dans les zones à continuité volumétrique. 27 % seront soumises à une densification moyenne, avec des hauteurs maximales de 21 mètres. 11 % subiront une densification forte, également limitée à 21 mètres, à l'exception des quartiers définis par les Orientations d’aménagement et de programmation (OAP).
Nos dernières actualités
Halles en Commun à Rennes : un skatepark en éclaireur des futurs logements
27 octobre 2026
Hervé Koffel
À La Courrouze, l'ancienne friche des Halles en Commun prépare sa mue en quartier habité, avec des logements ouverts à l'achat. Avant les grues, la glisse y prend ses quartiers.
Lire l'article
Prolongation de l'encadrement des loyers : le Sénat dit oui jusqu'en 2028, mais pas pour Rennes
23 octobre 2026
Hervé Koffel
Le Sénat sauve l'encadrement des loyers, mais lui interdit de gagner de nouvelles villes. Rennes, qui réclamait l'outil, devra encore patienter.
Lire l'article
Où habiter autour de Rennes en 2027 ? Sept communes, autant de projets de vie
20 octobre 2026
Hervé Koffel
Métro, TER ou bus vers la ligne b : autour de Rennes, le trajet quotidien pèse autant que le prix dans le choix d'une commune. Sept communes passées au crible pour acheter neuf en 2027, selon que l'on cherche la proximité, le train ou la place pour une famille.
Lire l'article
Construction de logements en Bretagne en 2026 : un rebond des mises en chantier
16 octobre 2026
Hervé Koffel
La construction neuve repart nettement en Bretagne à fin août 2026, avec un rebond plus fort qu'au niveau national. À Rennes, la reprise reste à confirmer tandis que les ventes aux particuliers de logements neufs continuent de reculer.
Lire l'article
Où investir à Rennes en 2027 ?
13 octobre 2026
Hervé Koffel
Rennes ne manque pas de locataires, mais le quartier fait désormais le rendement. Campus, centre historique, ligne B ou quartiers en rénovation : à chaque stratégie son adresse.
Lire l'article
Place de Bretagne à Rennes : un an de travaux avant les Trambus
09 octobre 2026
Hervé Koffel
Le carrefour le plus roulant du centre de Rennes s'apprête à changer de rôle. Un an de chantier pour repartager la voirie, et préparer l'arrivée du Trambus.
Lire l'article
Taux de crédit immobilier en octobre 2026 : la fin du répit pour les acheteurs rennais ?
06 octobre 2026
Hervé Koffel
Les banques avaient tenu bon en septembre ; en octobre, elles lâchent du lest, poussées par une dette française qui n'avait pas coûté aussi cher depuis vingt-quatre ans. À Rennes, la capacité d'emprunt se resserre.
Lire l'article
École Trégain à Maurepas : Rennes reconstruit et libère un hectare pour du logement
02 octobre 2026
Hervé Koffel
Rennes reconstruit l'école Trégain, à Maurepas, pour près de 19 M€ de travaux. Le bâtiment resserré doit libérer au moins un hectare de foncier, destiné à du logement.
Lire l'article
Rennes La Pommeraie : le site sportif Jean-Coquelin s'ouvre au logement
29 septembre 2026
Hervé Koffel
À Rennes, le complexe sportif des cheminots de La Pommeraie doit être reconstruit sur place pour près de 15 M€, sous maîtrise d'ouvrage de la Ville. Le reste du foncier doit accueillir des logements dont rien n'est encore chiffré.
Lire l'article
Vincent Jeanbrun annonce le gel des APL pour 2027
25 septembre 2026
Hervé Koffel
Le gouvernement veut geler les aides au logement en 2027 : elles ne baisseraient pas, mais cesseraient de suivre les loyers. Rien n’est encore déposé au Parlement, et la même mesure avait déjà été retirée du budget 2026.
Lire l'article
En poursuivant votre navigation sur ce site, vous acceptez l'utilisation de cookies pour la réalisation de statistiques de visites.
J'accepte
Commentaires à propos de cet article :
Ajouter un commentaire