Après quatre ans de guerre à grande échelle – et même douze ans de conflit depuis l’annexion illégale de la Crimée –, la Russie n’occupe toujours qu’un peu moins de 20 % du territoire ukrainien. Au cours de l’année écoulée, entre février 2025 et février 2026, l’armée russe n’a conquis que 0,75 % de territoire supplémentaire, selon les données de l’Institute for the Study of War, une organisation non gouvernementale américaine, complétées par les calculs du Monde à partir de leurs relevés cartographiques.
Ce bilan tranche avec le discours triomphaliste de la propagande russe, parfois repris par Washington. Ces 4 500 kilomètres carrés grignotés en un an (soit environ 380 km² par mois en moyenne) sont en effet bien loin des 116 000 km² capturés lors des cinq premières semaines de l’invasion russe, entre février et mars 2022.
« ;
html += »;
html += ‘
Contrôlé par Kiev : ‘ + String(d.ukraine).replace(« . », « , ») + » % soit » + kmCarres(d.ukraine) + «
« ;
// libération de territoires depuis mars 2022
if (i > 2) {
html += ‘
Dont libéré depuis mars 2022 : ‘ + String(d.liberation).replace(« . », « , ») + » %, soit » + kmCarres(d.liberation) + «
« ;
}
html += ‘
Occupé par Moscou : ‘ + String(d.russie.arrondir(2)).replace(« . », « , ») + ‘ %+ ‘ + String(d.avantfev2022).replace(« . », « , ») + ‘ %= ‘ + String((d.avantfev2022 + d.russie).arrondir(2)).replace(« . », « , ») + » %, soit » + kmCarres(d.russie + d.avantfev2022) + «
« ;
return html;
})
.on(« mouseover », function (d) {
numMois = « m » + d3.select(this).attr(« data-date »);
barresUA.selectAll(« .barre_typo. » + numMois).style(« fill-opacity », 1);
})
.on(« mouseout », function (d) {
barresUA.selectAll(« .barre_typo »).style(« fill-opacity », 0.7);
});
axesUA
.append(« g »)
.attr(« class », « axes y passelect »)
.attr(« transform », « translate(10,-8) »)
.call(
d3
.axisLeft(y)
.tickValues(valeursUA)
.tickSizeOuter(0)
.tickFormat((d, i) => (i > 0 ? String(d).replace(« . », « , ») + » % » : « »)),
);
axesUA
.append(« g »)
.attr(« transform », « translate(0, » + height + « ) »)
.attr(« class », « axes x passelect »)
.call(
d3.axisBottom(x).tickFormat(function (d, i) {
rabeAnnee = « »;
if (d.split(« -« )[0] != anneEnCours) {
anneEnCours = d.split(« -« )[0];
rabeAnnee = » » + d.split(« -« )[0];
}
numMois = +d.split(« -« )[1] – 1;
if (!mobileDec) {
if (i % 6 == 0) {
return dicoMoisCourt[numMois] + rabeAnnee;
}
} else {
if (i % 12 == 0) {
return d.split(« -« )[0];
}
}
}),
);
grilleUA.append(« g »).attr(« class », « grid »).call(make_y_gridlines().tickSizeOuter(tailleTicksUA).tickSize(-width).tickFormat(« »));
// On modifie les ticks des abscisses
axesUA
.selectAll(« .axes.x .tick line »)
.attr(« transform », « translate( » + ((x.bandwidth() + 0.1) / 2 + (mobileDec ? 0 : -0.5)) + « ,0) »)
.style(« display », function (d, i) {
if (i == data.length – 1) {
return « none »;
}
})
.attr(« y2 », function (d, i) {
ceMois = Number(d.split(« -« )[1]);
if (ceMois == 12) {
return 6;
} else {
return 3;
}
});
// on ajoute des barres pour les années
barresUA
.selectAll(« line.annee »)
.data(data)
.enter()
.append(« line »)
.filter((d) => d.mois.split(« -« )[1] == « 01 »)
.attr(« class », « annee »)
.attr(« y1 », 0)
.attr(« y2 », height)
.attr(« x1 », (d) => x(d.mois))
.attr(« x2 », (d) => x(d.mois));
function make_tooltip_ukraine(selector, func) {
let tt_barres_elmts = getA(selector);
forEach(tt_barres_elmts, function (elmt) {
elmt.addEventListener(« mouseover », function () {
let tt_barres = document.createElement(« div »);
tt_barres.classList.add(« tooltipdecodeurs »);
tt_barres.innerHTML = (typeof func === « undefined » ? this.getAttribute(« data-tt ») : func(this.getAttribute(« data-tt »))) + « ;
document.body.appendChild(tt_barres);
tt_barres.style.top = this.getBoundingClientRect().top – 14 + window.scrollY – tt_barres.offsetHeight + « px »;
tt_barres.style.left = this.getBoundingClientRect().left + this.getBoundingClientRect().width / 2 – tt_barres.getBoundingClientRect().width / 2 + « px »;
tt_barres.addEventListener(« click », () => this.remove());
});
elmt.addEventListener(« mouseout », function () {
let tt_barres = document.querySelector(« .tooltipdecodeurs »);
if (tt_barres != null) tt_barres.remove();
});
});
}
make_tooltip_ukraine(« #graphique .barre_typo_transparent »);
}
Moscou a progressé de 15 à 297 mètres par jour en 2025 selon les fronts, d’après les calculs du Center for Strategic and International Studies (CSIS), un cercle de réflexion de Washington spécialisé dans les questions de sécurité. Lors des batailles de Koupiansk et de Pokrovsk, cette avancée n’a été respectivement que de 23 et 70 mètres, soit bien moins que celle des armées alliées lors de la bataille de la Somme, en 1916. A ce rythme, il faudrait théoriquement cent neuf ans à Moscou pour conquérir l’ensemble du territoire ukrainien.
Le chercheur Yohann Michel, de l’Institut d’études de stratégie et de défense de Lyon-III, appelle toutefois à nuancer la lenteur de la progression russe, car tous les kilomètres carrés ne se valent pas : conquérir une ville fortifiée ou une plaine céréalière n’a pas le même coût humain et matériel. Pour le camp attaqué, « c’est un peu comme si vous défendiez votre territoire à partir du Morvan », avec son relief de moyenne montagne qui demande moins de moyens, « et qu’ensuite vous débouchiez sur le Bassin parisien : ce ne sont pas des territoires qui se défendent de la même manière », relève le spécialiste.
Il vous reste 55.41% de cet article à lire. La suite est réservée aux abonnés.










