Copier des lignes dans un tableau filtré

  • Initiateur de la discussion Initiateur de la discussion Elnino__13
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

E

Elnino__13

Guest
Bonjour,

J'ai cherché la solution à mon problème mais je n'ai pas trouvé, veuillez donc m'excuser si la question a déjà été posée.
Voilà : j'ai un tableau non filtré de deux colonnes que je veux copier dans un tableau qui possède un filtre automatique (donc où toutes les lignes n'apparaissent pas).
Mais quand je colle mes colonnes, Excel ne tient pas compte du filtre affiché et copie mon tableau même dans les lignes cachées, ce qui fait que je n'ai pas du tout le résultat attendu puisque j'ai mes lignes intermédiaires qui sont remplies avec des valeurs erronées alors qu'elles devraient rester dans le même état qu'avant le copier-coller !!

Quelqu'un peut-il m'aider ?

D'avance merci beaucoup.
 
Re : Copier des lignes dans un tableau filtré

Salut le forum, salut elnino

Je ne pense pas que se soit possible sauf avec une macro que je ne saurais pas faire !

Je te propose donc d'autres méthodes :

As tu essayé de trier ton tableau de destination pour que toutes les lignes où tu veux coller soient contigües ?

As tu pensé à Recherchev pour remplir une à une tes cellules de destination ?
Cordialement
 
Re : Copier des lignes dans un tableau filtré

Bonsoir le fil,

voici un exemple à adapter à ton cas:

Code:
Sub collevisible()
r = Range([A2], [B65536].End(xlUp)).Rows.Count
c = Range([A2], [B65536].End(xlUp)).Columns.Count
tableau = Range([A2], [B65536].End(xlUp))
With Sheets("Feuil2")
    r = 0
    c = 1
    For Each cellule In .Range(.[A2], .[A65536]).SpecialCells(xlCellTypeVisible)
        r = r + 1
        cellule.Value = tableau(r, c)
        If r = UBound(tableau, 1) Then
            c = c + 1
            r = 0
            Exit For
        End If
    Next cellule
    For Each cellule In .Range(.[B2], .[B65536]).SpecialCells(xlCellTypeVisible)
        r = r + 1
        cellule.Value = tableau(r, c)
        If r = UBound(tableau, 1) Then
            Exit For
        End If
    Next cellule
End With
End Sub

Edit: j'ai adapté le code pour 2 colonnes.
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Retour