Excel 2007 VBA : Pb copier/coller

Résolu/Fermé
Eaheru Messages postés 197 Date d'inscription mercredi 23 juin 2010 Statut Membre Dernière intervention 12 mars 2018 - 19 oct. 2010 à 12:25
Eaheru Messages postés 197 Date d'inscription mercredi 23 juin 2010 Statut Membre Dernière intervention 12 mars 2018 - 19 oct. 2010 à 14:12
Bonjour,

J'ai un problème avec le copier / coller suivant :
J'effectue un filtre sur ma ligne de titre située en ligne 1 et je souhaite copier le résultat dans une autre feuille, à la suite d'une plage de données déjà existante :

J'ai donc codé ce qui suit :

Range("A2:S" & Range("A65536").End(xlUp).Row).SpecialCells(xlVisible).Copy
' Collage de la plage precedement copié sur "feuille2"
Sheets("feuille2").Activate
Range("A65536").End(xlUp).Offset(1, 0).Select
ActiveSheet.Paste


Mon soucis est que lors de mes essais, ma plage a copier (après filtrage) est vide (c'est normal) mais ce script me copie ma ligne de titre quand même et l'insère sur ma feuille 2... ce qui ne me va pas du tout :(

L'un de vous verrait il mon erreur svp ?
Merci d'avance :)

3 réponses

pijaku Messages postés 12259 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 9 août 2022 2 708
19 oct. 2010 à 12:59
Salut,
Ton erreur vient de là :
Range("A2:S" & Range("A65536").End(xlUp).Row).SpecialCells(xlVisible).Copy
Si Range("A65536").End(xlUp).Row = 1 Alors tu copies A2:S1, soit ta première ligne...
0
Eaheru Messages postés 197 Date d'inscription mercredi 23 juin 2010 Statut Membre Dernière intervention 12 mars 2018 20
19 oct. 2010 à 13:47
Merci Pijaku, effectivement, je n'avais pas percuté que si ma plage prévue était vide, je copiais la seule ligne "remplie".

Saurais tu comment verrouiller ça proprement stp ?
0
pijaku Messages postés 12259 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 9 août 2022 2 708
Modifié par pijaku le 19/10/2010 à 14:08
Tu peux tester d'abord si ta dernière ligne remplie c'est la 1ère alors on ne fait rien sinon on copie :
If Range("A65536").End(xlUp).Row <> 1 Then 
Range("A2:S" & Range("A65536").End(xlUp).Row).SpecialCells(xlVisible).Copy  
' Collage de la plage precedement copié sur "feuille2"  
Sheets("feuille2").Activate  
Range("A65536").End(xlUp).Offset(1, 0).Select  
ActiveSheet.Paste  
End If
0
Eaheru Messages postés 197 Date d'inscription mercredi 23 juin 2010 Statut Membre Dernière intervention 12 mars 2018 20
19 oct. 2010 à 14:12
Oui, c'est impecc ! Décidément je suis à la ramasse aujourd'hui. :)
Je note ce sujet comme résolu.

Merci a toi Pijaku !!!
Si tu as 2 mn de plus à m'accorder, j'ai ouvert un autre sujet sur mon problème principal les manipulations de dates en VB (ça me prend la tète assez bien la :) )
0