Après un filtrage, Excel colle parfois « à travers » les lignes masquées. Voici des méthodes fiables pour cibler uniquement les cellules visibles : astuces natives, procédures pas à pas, macro VBA prête à l’emploi et contournements pro.
Vue d’ensemble de la question
Vous filtrez un tableau, sélectionnez des cellules visibles puis collez dans une autre colonne. Problème : le collage « saute » des lignes, aligne mal les données, ou touche malgré tout des cellules masquées. Pourquoi ? Parce qu’en contexte filtré, une sélection devient souvent multi‑zones (plusieurs « Areas » disjointes). Le collage standard d’Excel n’établit pas de correspondance ligne visible ↔ ligne visible entre deux sélections filtrées disjointes. Résultat : décalages, duplications, ou valeurs collées dans des lignes masquées.
Heureusement, il existe des solutions très sûres sans code pour les usages courants, et une macro simple quand il faut recopier plusieurs valeurs différentes « visible‑vers‑visible » sur les mêmes lignes.
Réponse & solutions
Ce que fait (et ne fait pas) Excel en natif
- OK sans code :
- Coller une valeur unique (un même texte ou nombre) dans une plage filtrée peut viser exclusivement les cellules visibles.
- Recopier vers les visibles une formule relative basée sur la cellule de la même ligne (ex.
=A6
) fonctionne aussi.
- Limitation native :
- Copier plusieurs valeurs différentes depuis une plage filtrée et les coller à côté d’une autre plage filtrée n’aligne pas automatiquement ligne visible ↔ ligne visible. Le collage classique ne « reconstruit » pas deux sélections disjointes. Ici, il faut un macro VBA ou des contournements.
Résumé opérationnel (selon besoin)
Objectif | Méthode conseillée | Avantages | Limites |
---|---|---|---|
Répéter la même valeur sur les lignes visibles | « Cellules visibles uniquement » + saisie + Ctrl/⌘+Entrée | Très rapide, zéro code, zéro risque sur lignes masquées | Une seule valeur pour toute la sélection |
Recopier la valeur de la même ligne (valeurs différentes) | Sélection visible + formule relative (ex. =A6 ) + Ctrl/⌘+Entrée | Aligne parfaitement « même ligne », 100% sans code | Ajoute une formule (convertir ensuite en valeurs si besoin) |
Coller plusieurs valeurs différentes visibles vers visibles | Macro VBA « zone par zone » | Mappe chaque zone visible sur la colonne cible correspondante | Nécessite l’activation des macros |
Raccourcis et commandes utiles
Action | Windows | Mac | Où le trouver dans les menus |
---|---|---|---|
Sélectionner Cellules visibles uniquement | Alt+; | Édition → Atteindre → Spécial → Cellules visibles uniquement | Accueil → Rechercher & sélectionner → Atteindre spécial… |
Remplir toute la sélection avec la saisie active | Ctrl+Entrée | ⌘+Entrée | — |
Remplir vers le bas / droite | Ctrl+D / Ctrl+R | ⌘+D / ⌘+R | Accueil → Remplir |
Méthodes sans VBA (recommandées)
Dupliquer une valeur unique vers les cellules visibles
- Copiez une seule cellule contenant la valeur à répéter (ou tapez-la directement).
- Filtrez vos données puis sélectionnez la plage cible (par ex. la partie filtrée de « Colonne2 »).
- Activez Cellules visibles uniquement :
- Windows : Alt+; (ou Accueil → Rechercher & sélectionner → Atteindre spécial… → Cellules visibles uniquement).
- Mac : Édition → Atteindre… → Spécial… → Cellules visibles uniquement (ou via Accueil → Rechercher & sélectionner → Atteindre spécial…).
- Collez (Ctrl+V / ⌘+V) outapez la valeur et validez avec remplissage :
- Windows : tapez la valeur puis Ctrl+Entrée, ou Ctrl+D / Ctrl+R.
- Mac : tapez la valeur puis ⌘+Entrée, ou ⌘+D / ⌘+R.
Pourquoi ça marche ? La sélection ne contient que les cellules visibles ; le remplissage s’applique donc exclusivement à celles‑ci.
Recopier, sur chaque ligne visible, la valeur d’une autre colonne (valeurs différentes par ligne, sans copier‑coller multi‑zones)
- Dans la colonne cible, sélectionnez la même plage filtrée que vos lignes visibles (mêmes lignes).
- Activez Cellules visibles uniquement (voir ci‑dessus).
- Dans la barre de formule, tapez une formule relative pointant la cellule source de la même ligne. Ex. si la source est en A, tapez :
=A6
(Excel ajustera pour chaque ligne visible). - Validez par Ctrl+Entrée (Windows) / ⌘+Entrée (Mac) pour inscrire la formule dans toutes les cellules visibles sélectionnées.
- (Facultatif) Figez en valeurs : Copier → Collage spécial → Valeurs.
Astuce : si vos données sont en Tableau (Ctrl+T), vous pouvez utiliser une référence structurée par ligne (ex.
=[@ColA]
) ; le comportement « même ligne » est très fiable, y compris sous filtre.
Bonnes pratiques pour éviter d’affecter les lignes masquées
- Répétez l’étape Cellules visibles uniquement à chaque nouvelle sélection : ce n’est pas un « mode » permanent.
- Évitez les cellules fusionnées dans des zones filtrées ; elles perturbent la logique des zones visibles.
- Vérifiez que la première cellule cible correspond bien à la première ligne visible attendue (pas l’en‑tête).
Méthode avec VBA : coller des plages multi‑valeurs « ligne à ligne »
Besoin de recopier plusieurs valeurs différentes d’une plage filtrée vers la même colonne cible sur les mêmes lignes visibles ? Le collage standard n’aligne pas zone‑par‑zone. Ce macro traite chaque zone visible et colle sur la même ligne, en décalant la colonne selon le point de départ choisi.
Option Explicit
Sub CopierVersMemesLignesVisibles()
Dim src As Range, vis As Range, destPremiere As Range, zone As Range
Dim decCol As Long
On Error Resume Next
Set src = Application.InputBox("Sélectionnez la PLAGE À COPIER (filtrée).", "Source", Type:=8)
On Error GoTo 0
If src Is Nothing Then Exit Sub
On Error Resume Next
Set vis = src.SpecialCells(xlCellTypeVisible)
On Error GoTo 0
If vis Is Nothing Then
MsgBox "Aucune cellule visible dans la plage source.", vbExclamation
Exit Sub
End If
Set destPremiere = Application.InputBox( _
"Sélectionnez la PREMIÈRE cellule de COLLAGE (même ligne que le 1er visible).", _
"Destination", Type:=8)
If destPremiere Is Nothing Then Exit Sub
Application.ScreenUpdating = False
decCol = destPremiere.Column - vis.Columns(1).Column
For Each zone In vis.Areas
zone.Offset(0, decCol).Value = zone.Value 'Valeurs uniquement
'Pour tout coller (formules, formats), remplacez la ligne ci-dessus par :
'zone.Copy
'zone.Offset(0, decCol).PasteSpecial xlPasteAll
Next zone
Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub
Installation / exécution
- Windows : Alt+F11 → Insertion → Module → collez le code → enregistrez en .xlsm → Alt+F8 pour lancer.
- Mac : Outils → Macro → Visual Basic Editor → Insertion → Module → collez le code → enregistrez en .xlsm → Outils → Macro → exécuter (activez les macros si demandé).
Paramètres et variantes utiles
- Coller tout (formules, formats) : décommentez les deux lignes
zone.Copy
/.PasteSpecial xlPasteAll
. - Changer la destination : sélectionnez la première cellule cible sur la même ligne que le premier visible source ; le macro calcule automatiquement le décalage de colonnes.
- Vérification : si aucun visible n’existe, un message vous l’indique et le macro s’arrête proprement.
Conseil sécurité : enregistrez le classeur avant exécution. Testez sur une copie si besoin, surtout avec des données critiques.
Contournements supplémentaires (sans code)
- Zone intermédiaire non filtrée : copiez les visibles vers une feuille/zone temporaire non filtrée, effectuez le collage ou les traitements, puis ramenez les résultats à la table d’origine via une clé d’identifiant (ID de ligne, code article, etc.).
- Sélection visible + saisie + Ctrl/⌘+Entrée : plus rapide que la plupart des copier‑coller, et n’implique jamais les lignes masquées.
- Formules d’alignement : selon vos versions, des fonctions comme
FILTER
,TAKE
,INDEX
+AGGREGATE
peuvent projeter les visibles vers une zone non filtrée, garantissant l’alignement avant conversion en valeurs.
Dépannage : comprendre les pièges courants
Fusion de cellules
Les cellules fusionnées cassent la cohérence des plages visibles. Défusionnez (Accueil → Fusionner & centrer → Annuler la fusion) avant toute opération.
Différence entre lignes masquées « manuellement » et filtrées
SUBTOTAL
/ AGGREGATE
détectent les lignes masquées par filtre, pas toujours celles masquées manuellement. Si vous appuyez des traitements sur ces fonctions, assurez‑vous que le masquage provient bien d’un filtre.
Sélection qui inclut l’en‑tête
En réplication de formule (Ctrl/⌘+Entrée), si l’en‑tête est inclus, il héritera d’une formule inadaptée. Sélectionnez uniquement les lignes de données.
Le mode « Cellules visibles uniquement » n’est pas persistant
Il s’applique à la sélection courante seulement. À la sélection suivante, répétez l’opération (raccourci Alt+; sur Windows).
Ajouter « Cellules visibles » à la barre d’accès rapide
Windows : Fichier → Options → Barre d’accès rapide → Toutes les commandes → ajoutez Sélectionner les cellules visibles. Un clic = moins d’erreurs.
Exemples concrets
Répéter la même étiquette sur les lignes visibles
- Filtrez la colonne « Statut » sur En attente.
- Sélectionnez la plage vide de « Lot » correspondante.
- Activez Cellules visibles uniquement, tapez
Lot‑Q4
, validez Ctrl+Entrée.
Seules les lignes visibles reçoivent « Lot‑Q4 ».
Reprendre la valeur de ColA vers ColB sur les visibles
- Dans ColB (plage filtrée), sélectionnez les cellules visibles.
- Tapez
=A6
(adaptez la première adresse de ligne). - Ctrl+Entrée → chaque cellule B visible pointe la A de la même ligne. Convertissez en valeurs si requis.
Copier des visibles de ColA vers ColC (valeurs différentes) avec le macro
- Sélectionnez la plage source (filtrée) en ColA.
- Lancez CopierVersMemesLignesVisibles.
- Désignez la première cellule cible en ColC, sur la même ligne que le premier visible.
Le macro colle zone par zone, en préservant l’alignement des lignes visibles.
Problème connexe : le zéro saisi « disparaît »
Il arrive qu’un 0 saisi ne s’affiche pas (cellule vide en apparence). Plusieurs pistes :
- Activez l’affichage des zéros :
- Windows : Fichier → Options → Options avancées → « Afficher un zéro dans les cellules qui ont une valeur zéro » (au niveau de Cette feuille de calcul).
- Mac : Excel → Préférences → Affichage → cocher Zéros (ou Afficher les zéros selon version).
- Contrôlez qu’aucun format personnalisé ne masque les zéros (ex.
0;-0;;@
masque explicitement la valeur nulle). - Vérifiez la mise en forme conditionnelle : une règle peut rendre les 0 invisibles (couleur = fond, format personnalisé vide, etc.).
Symptôme | Cause probable | Correctif |
---|---|---|
0 saisi mais cellule paraît vide | Option d’affichage des zéros désactivée | Activer l’option d’affichage des zéros (Windows/Mac) |
0 non affiché dans une zone seulement | Format personnalisé masque la valeur nulle | Remettre un format standard (Nombre/Général) ou corriger le format personnalisé |
0 devient « invisible » sous condition | Règle de mise en forme conditionnelle | Ajuster/supprimer la règle ciblant les zéros |
FAQ – questions fréquentes
Puis‑je copier une plage visible et la coller directement sur une autre plage visible ?
Pas de manière fiable avec le collage standard si les deux plages sont disjointes. Excel ne « marie » pas les zones visibles entre elles. Utilisez la formule relative + Ctrl/⌘+Entrée, ou le macro pour des contenus multi‑valeurs.
Le raccourci Alt+; ne fait rien
Assurez‑vous d’être sur Windows et que le focus est bien dans la feuille. Sinon, passez par Accueil → Rechercher & sélectionner → Atteindre spécial → Cellules visibles uniquement.
La formule recopiée s’étend aussi aux lignes masquées
Vérifiez que vous avez sélectionné uniquement les cellules visibles avant de valider par Ctrl/⌘+Entrée. L’option doit être réappliquée à chaque nouvelle sélection.
Comment éviter toute formule dans la sortie ?
Après la saisie de la formule relative (méthode la plus sûre), faites Copier → Collage spécial → Valeurs. Vous obtenez un résultat « plat » sans dépendance.
Le macro collera‑t‑il le format également ?
Par défaut, il colle les valeurs uniquement (plus sûr). Pour coller tout (formules, formats), décommentez les lignes zone.Copy
et .PasteSpecial xlPasteAll
dans le code.
Checklist de réussite
- Filtre actif et première ligne visible identifiée.
- Sélection de la même plage dans la colonne cible.
- Cellules visibles uniquement appliqué juste avant la saisie/collage.
- Selon besoin : valeur unique + Ctrl/⌘+Entrée, formule relative + Ctrl/⌘+Entrée, ou macro pour multi‑valeurs.
- Conversion éventuelle en valeurs (Collage spécial → Valeurs).
À retenir
- Le collage « ligne visible ↔ ligne visible » de plusieurs valeurs différentes n’est pas géré par le collage standard.
- Pour l’usage quotidien, privilégiez :
- Cellules visibles uniquement (Alt+; Windows / menus Mac),
- Saisie directe (valeur ou
=<cellule de la même ligne>
) + Ctrl/⌘+Entrée, - ou, si nécessaire, le macro ci‑dessus pour un mappage zone‑par‑zone.
Annexe – modèles de formules utiles
Pour pousser plus loin l’approche « sans code », voici quelques motifs pratiques :
- Recopie de la valeur de la même ligne :
=A6
(ou, en tableau structuré,=[@ColA]
). - Filtrer les visibles vers une zone non filtrée (versions récentes) :
=FILTER(A2:A100, SUBTOTAL(103, OFFSET(A2:A100, ROW(A2:A100)-ROW(A2), 0)))
puis conversion en valeurs. - Repérer si la ligne est visible :
=SUBTOTAL(103, A2)
renvoie 1 si la cellule/lignes est visible via filtre, 0 si filtrée.
Erreurs fréquentes et corrections rapides
Erreur | Conséquence | Solution |
---|---|---|
Oublier « Cellules visibles uniquement » | Des lignes masquées sont modifiées | Appliquer Atteindre spécial → Cellules visibles avant chaque action |
Sélection non alignée avec la première ligne visible | Décalage des valeurs | Re‑sélectionner en commençant sur la première ligne visible |
Coller directement une plage visible vers une autre | Alignement incorrect (zones disjointes) | Utiliser la formule relative + Ctrl/⌘+Entrée, ou le macro |
Cellules fusionnées dans la zone | Collage impossible / incohérent | Défusionner avant toute opération |
Conclusion
Excel sait travailler « visible‑seulement » si on lui donne les bons signaux : sélection des cellules visibles juste avant l’action, Ctrl/⌘+Entrée pour dupliquer, et formule relative pour l’alignement par ligne. Dès que vous devez répliquer plusieurs valeurs différentes entre plages filtrées, la petite macro ci‑dessus rétablit l’alignement exact « ligne visible ↔ ligne visible ». En combinant ces approches avec quelques bonnes pratiques (zéro fusion, vérifications visuelles), vous retrouvez un comportement visible‑seulement simple, sûr et reproductible.