Bonjour à tous.
J'ai un petit soucis que je n'arrive pas à résoudre.
J'ai un fichier excel dont la première feuille ( Feuil1) sert de base, avec une combo intégrée par colonne qui permet à l'utilisateur de faire une recherche pour n'afficher que les lignes voulues.
Je souhaite copier les valeurs des lignes non masquées (celles qui correspondent donc à la recherche) vers une autre feuille du même classeur qui est vierge (en l'occurrence Feuil3).
Les cellules de Feuil1 peuvent aussi bien contenir des dates, des string ou des formats monétaires.
Je précise (au cas où) que je n'ai pas accès au code des combos de Feuil1. Ca a été fait par une boite de services informatiques et c'est protégé par mot de passe.
Feuil1 ne contient des données qu'à partir de la ligne 10, d'où :
Private Const lignDeb As Long = 10
que j'ai déclaré dans le code de Feuil3.
Voici la sub appelée lorsque l'utilisateur sélectionne l'onglet Feuil3 :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| Private Sub copDonnees()
Dim i As Long
Dim DerniereLigne As Long
Dim lignVis As Range
DerniereLigne = Feuil1.Cells(65536, 1).End(xlUp).Row
Worksheets("BASE").Activate
For i = lignDeb To DerniereLigne
If Not Feuil1.Rows(i).Hidden Then
'si la ligne n'est pas masquée
If Not lignVis Is Nothing Then
Set lignVis = Application.Union(lignVis, Feuil1.Cells(i, 1).EntireRow)
Else
Set lignVis = Feuil1.Cells(i, 1).EntireRow
End If
End If
Next
lignVis.Copy Feuil3.Cells(10, 2)
End Sub |
Je me casse les dents sur une erreur d'exécution 1004 :
'Impossible de coller les informations car les zones Copier et de collage sont de forme et de taille différentes'
J'ai bien entendu essayé toutes les solutions proposées par l'aide, mais rien n'y fait.
Partager