-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 open_dropdown_donation(el, force){
event.stopPropagation();
if(dropdown_donation_open || force){
el.style['display'] = 'none';
dropdown_donation_open = false;
} else {
el.style['display'] = 'block';
dropdown_donation_open = 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
▾
Obtenir les informations résumées de cette page :
Responsable Éditoriale & Rédactrice web spécialisée en immobilier
Après 10 ans d’expérience de rédaction freelance à Rennes, j’ai rejoint Toulouse et le pôle de communication digitale de la société Immo9. 5 ans de décorticage de la toile immobilière au service des internautes, clients ou curieux, ont affiné ma maîtrise du secteur, de sa législation, de son évolution et des politiques locales d'urbanisme.
Je pilote désormais une équipe de rédacteurs qui vulgarise au quotidien : les rouages de l’investissement locatif, de la fiscalité immobilière, des marchés locaux, des normes environnementales, mais aussi des architectures et matériaux du futur...
Dans la vie, j'aime l'histoire, les vieilles pierres, la Bretagne et accessoirement... écrire ;)
Articles écrits par Morgane
Prix de l'immobilier à Rennes en septembre 2026
Le neuf collectif réservé recule à 4 545 €/m² sur Rennes Métropole au 2e trimestre 2026, en baisse de 2,7 % sur un an (FPI). L'ancien tient à 4 047 €/m² à Rennes au 1er septembre 2026 (MeilleursAgents) : deux indicateurs non directement comparables. Taux autour de 3,4 % sur 20 ans, frais d'acquisition réduits et PTZ élargi : le budget des primo-accédants se joue sur le montage.
Vivier-Louis à Betton : le futur quartier en phase de concertation
À la rentrée 2026, Betton lance la concertation sur le Vivier-Louis, futur quartier d'environ 170 logements et d'un établissement médico-social au sud-est de la commune. Fait rare, la Ville pilote elle-même l'aménagement en régie municipale et invite les habitants à en dessiner les contours. Premiers ateliers le 29 septembre, sur inscription avant le 13.
Interdiction location DPE F et G : Les dérogations du Sénat, l'impact à Rennes
Le 8 juillet 2026, le Sénat a voté cinq dérogations à l'interdiction de location des logements classés F et G, dont la possibilité de louer en signant un contrat de travaux avant 2030. Le texte doit encore être adopté par l'Assemblée nationale, qui l'examinera à la rentrée. À Rennes Métropole, plus de 28 000 logements classés F ou G sont concernés selon l'Audiar.
Rafraîchir votre logement sans clim : nos 6 meilleures astuces
Fermer les volets au bon moment, blanchir les vitres au blanc de Meudon, tendre une couverture de survie, mouiller du linge, optimiser son ventilateur et couper les appareils qui chauffent : six gestes de dépannage, sans travaux ni climatisation. Leur efficacité reste modérée, quelques degrés au mieux, mais ils sont immédiats, quasi gratuits et cumulables. En cas de forte chaleur durable, la vigilance sanitaire prime, surtout pour les personnes fragiles.
Canicule à Rennes : Quels quartiers souffrent le plus ?
À Rennes, la chaleur ne se répartit pas également : selon le quartier, on peut relever jusqu'à 9 °C d'écart la nuit. Depuis 2003, une centaine de capteurs cartographient ces inégalités et guident désormais les choix d'aménagement de la ville. Un enjeu de plus en plus décisif à mesure que les canicules se rapprochent.
Confort d'été : pourquoi il fait désormais monter (ou baisser) la valeur de votre logement
Le confort d'été devient un vrai critère de valeur immobilière. Plus-value possible, risque de décote, limites du DPE, atout du neuf : ce qu'il faut savoir avant d'acheter ou de revendre.
DPE F et G à Rennes : pourquoi le projet Lecornu rebat les cartes avant 2028
Vendre, rénover, attendre ou anticiper ?
Pour les 28 200 passoires F et G de Rennes Métropole, l'échéance 2028 se rapproche et le projet Lecornu pourrait tout changer.
Notre décryptage complet, chiffres locaux et calendrier officiel à l'appui.
Règles HCSF 2026 : ce qui peut bloquer votre crédit immo
Vous préparez un crédit immobilier en 2026 ?
Le HCSF maintient la règle des 35 % d'endettement et la durée maximum de 25 ans. La proposition de loi qui voulait les assouplir a été retirée fin avril.
Mais il existe des leviers, encore largement sous-utilisés, pour faire passer un dossier limite : différé d'amortissement en VEFA, méthode différentielle pour les investisseurs, marge de flexibilité primo-accédants.
Dispositif Jeanbrun : comment fonctionne ce nouveau statut du bailleur privé ?
Le ministre du Logement a dévoilé, mardi 20 janvier, les contours du nouveau statut du bailleur privé. Ce mécanisme, déjà baptisé « dispositif Jeanbrun », mise sur un amortissement fiscal musclé pour créer un choc d'offre et relancer les mises en chantier. Alors que le budget 2026 fait l'objet d'un 49.3 à l'Assemblée, ce nouveau moteur pour l'immobilier pourrait entrer en vigueur dès la mi-février.
L'équipe rédactionnelle IMMO9
En poursuivant votre navigation sur ce site, vous acceptez l'utilisation de cookies pour la réalisation de statistiques de visites.
J'accepte