Excel — Coller uniquement les cellules visibles après filtrage (méthodes sans VBA + macro VBA)

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.

Sommaire

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)

ObjectifMéthode conseilléeAvantagesLimites
Répéter la même valeur sur les lignes visibles« Cellules visibles uniquement » + saisie + Ctrl/⌘+EntréeTrès rapide, zéro code, zéro risque sur lignes masquéesUne 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éeAligne parfaitement « même ligne », 100% sans codeAjoute une formule (convertir ensuite en valeurs si besoin)
Coller plusieurs valeurs différentes visibles vers visiblesMacro VBA « zone par zone »Mappe chaque zone visible sur la colonne cible correspondanteNécessite l’activation des macros

Raccourcis et commandes utiles

ActionWindowsMacOù le trouver dans les menus
Sélectionner Cellules visibles uniquementAlt+;Édition → Atteindre → Spécial → Cellules visibles uniquementAccueil → Rechercher & sélectionner → Atteindre spécial…
Remplir toute la sélection avec la saisie activeCtrl+Entrée+Entrée
Remplir vers le bas / droiteCtrl+D / Ctrl+R+D / +RAccueil → Remplir

Méthodes sans VBA (recommandées)

Dupliquer une valeur unique vers les cellules visibles

  1. Copiez une seule cellule contenant la valeur à répéter (ou tapez-la directement).
  2. Filtrez vos données puis sélectionnez la plage cible (par ex. la partie filtrée de « Colonne2 »).
  3. 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…).
  4. 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)

  1. Dans la colonne cible, sélectionnez la même plage filtrée que vos lignes visibles (mêmes lignes).
  2. Activez Cellules visibles uniquement (voir ci‑dessus).
  3. 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).
  4. Validez par Ctrl+Entrée (Windows) / +Entrée (Mac) pour inscrire la formule dans toutes les cellules visibles sélectionnées.
  5. (Facultatif) Figez en valeurs : CopierCollage spécialValeurs.

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+F11InsertionModule → collez le code → enregistrez en .xlsmAlt+F8 pour lancer.
  • Mac : Outils → Macro → Visual Basic EditorInsertionModule → 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 rapideToutes 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

  1. Filtrez la colonne « Statut » sur En attente.
  2. Sélectionnez la plage vide de « Lot » correspondante.
  3. 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

  1. Dans ColB (plage filtrée), sélectionnez les cellules visibles.
  2. Tapez =A6 (adaptez la première adresse de ligne).
  3. 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

  1. Sélectionnez la plage source (filtrée) en ColA.
  2. Lancez CopierVersMemesLignesVisibles.
  3. 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érencesAffichage → 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ômeCause probableCorrectif
0 saisi mais cellule paraît videOption d’affichage des zéros désactivéeActiver l’option d’affichage des zéros (Windows/Mac)
0 non affiché dans une zone seulementFormat personnalisé masque la valeur nulleRemettre un format standard (Nombre/Général) ou corriger le format personnalisé
0 devient « invisible » sous conditionRègle de mise en forme conditionnelleAjuster/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écialCellules 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 CopierCollage spécialValeurs. 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 :
    1. Cellules visibles uniquement (Alt+; Windows / menus Mac),
    2. Saisie directe (valeur ou =<cellule de la même ligne>) + Ctrl/⌘+Entrée,
    3. 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

ErreurConséquenceSolution
Oublier « Cellules visibles uniquement »Des lignes masquées sont modifiéesAppliquer Atteindre spécial → Cellules visibles avant chaque action
Sélection non alignée avec la première ligne visibleDécalage des valeursRe‑sélectionner en commençant sur la première ligne visible
Coller directement une plage visible vers une autreAlignement incorrect (zones disjointes)Utiliser la formule relative + Ctrl/⌘+Entrée, ou le macro
Cellules fusionnées dans la zoneCollage impossible / incohérentDé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.

Sommaire