rss
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Résolu

VBA excel problème de copier/coller filtre

roberto93, le jeudi 3 juillet 2008 à 12:20:47
Bonjour,

J'ai créer une macro pour sélectionner, copier et coller des données d'une feuille active suivant certains critères
Mais quand le filtre ne trouve pas de données qui correspond à mon critère il me copie/colle les données de la feuille 1 initiale !
Voici ma macro

Sub Macro1()

z = 3
While z < 13
Sheets(z).Select 'Selection feuille active
Selection.AutoFilter Field:=2, Criteria1:="Contrôle Mécanique" 'filtre contrôle mécanique seulement
Selection.AutoFilter Field:=4, Criteria1:="1" ' critère de filtre =1
Range("N23:N1000").Select 'Selection des cellules à copier
Selection.Copy
Range("A9").Select 'Colonne et ligne ou doit etre collé les données
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
True, Transpose:=False
Application.CutCopyMode = False
Range("A9:A200").Select
Selection.Sort Key1:=Range("A9"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom 'range en ordre croissant
Range("A9").Select
Rows("1:500").EntireRow.AutoFit 'mise en forme automatique
z = z + 1
Sheets("1").Select
Range("A1").Select
Wend
End Sub

Est ce que je dois mettre une condition sur l'autofiltre pour qu'il ne copie/colle aucune données?
Si le filtre n'a pas de données "contrôle mécanique" il ne doit rien me copier/coller sur mon tableau.
Comment dois je procéder?
Merci d'avance
Bonne journée
Configuration: Windows 2000
Internet Explorer 6.0
Répondre à roberto93  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
lermite222, le jeudi 3 juillet 2008 à 12:38:58
bonjour,
1ère chose que je comprend pas...tu met,
z = z + 1 
Sheets("1").Select 
Range("A1").Select 
Wend 

donc revient au dessus et là tu met...


While z < 13 
Sheets(z).Select 'Selection feuille active 


?
A+ L'expérience instruit plus sûrement que le conseil. (André Gide)  
Répondre à lermite222

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
roberto93, le jeudi 3 juillet 2008 à 13:33:06
J'ai mal placé les codes, il ne devait pas être dans la boucle while j'ai modifié

z = z + 1
Wend
Sheets("1").Select
Range("A1").Select

Est ce que vous pouvez m'aider à résoudre mon problème?

Merci d'avoir répondu
Répondre à roberto93

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
roberto93, le jeudi 3 juillet 2008 à 16:00:00
j'ai modifié plusieurs fois mai rien à faire j'y arrive pas. Si quelqu'un pouvais m'aider sa m'arrangerais grandement

Merci d'avance
Répondre à roberto93

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
lermite222, le vendredi 4 juillet 2008 à 04:45:05
une solution...
Dim CelR   As Range
Sheets(z).Select
Set CelR = ActiveCell.CurrentRegion.SpecialCells(xlCellTypeVisible)
CelR.Select
a = CelR.Address
if len(a)>11 then 'Il y a une ou plusieurs lignes à copier.
    celR.copy Range("A9")


end if

A+ L'expérience instruit plus sûrement que le conseil. (André Gide)  
Répondre à lermite222

5


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 roberto93, le vendredi 4 juillet 2008 à 09:31:08
Bonjour,

Sa marche nickel merci beaucoup!!!
Voici le code au complet

Dim CelR As Range

z = 3
Sheets("1").Select
While z < 15
Sheets(z).Select
Set CelR = ActiveCell.CurrentRegion.SpecialCells(xlCellTypeVisible)
CelR.Select
a = CelR.Address
If Len(a) > 11 Then 'Il y a une ou plusieurs lignes à copier.
Selection.AutoFilter Field:=2, Criteria1:="Contrôle Mécanique" 'filtre contrôle mécanique seulement
Selection.AutoFilter Field:=4, Criteria1:="1" ' critère de filtre =1
Range("N23:N1000").Select 'Selection des cellules à copier
Selection.Copy
Range("A9").Select 'Colonne et ligne ou doit etre collé les données
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
True, Transpose:=False
Application.CutCopyMode = False
Range("A9:A200").Select
Selection.Sort Key1:=Range("A9"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom 'range en ordre croissant
Range("A8").Select
Rows("1:500").EntireRow.AutoFit 'mise en forme automatique
z = z + 1
End If
Wend
Sheets("1").Select
Range("A1").Select
End Sub

Cordialement,

Roberto93
Répondre à roberto93
Logiciels pertinents trouvés dans les téléchargements
Télécharger SuperCopier 2 beta 1.9SuperCopier 2 - SuperCopier est un gestionnaire de copie de fichiers libre pour Windows, proposant des fonctionnalités non couvertes par le...Catégorie: Gestion de fichiers
Licence: Freeware/gratuit
Télécharger Leech FTP  Version 1.3 françaisLeech FTP - Leech FTP est un logiciel permettant d'envoyer ou bien de télécharger des fichiers. Il liste des fichiers locaux, liste des...Catégorie: FTP
Licence: Freeware/gratuit
Télécharger Audacity 1.2.6Audacity - Audacity® est un logiciel libre et open-source destiné à l'édition et à l'enregistrement sonore. Il est disponible pour Mac...Catégorie: Création musicale
Licence: Open Source
Télécharger AdBlock Plus 0.7.5.5AdBlock Plus - AdBlock Plus est l'une des extensions classiques de Firefox ,celui-ci bloque déjà en standard les fenêtre popup: AdBlock va...Catégorie: Extensions Firefox
Licence: Open Source
Plus de logiciels gratuits sur « VBA excel problème de copier/coller filtre »