Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

macro pour filtrer les donnes avec de faire un Tranferts

knl2

XLDnaute Nouveau
Bonjour,
J'ai un fichier qui fait 50 mega et c'est pour cette raison que jveux pas copier-coller les données directement dans mon fichier de travail.
J'ai écrit une macro qui:
-ouvre le fichier concerné
-compte le nombre de ligne du ficheir et l'enregistre dans compteur_ligne
-je parcours la colonne a trier(je commence de AE1 jusqua AE&compteurligne
-si la valeur d'une cellule de la colonne AE - date d'aujourd'hui >0 alors
je copie la ligne entière dans mon fichier
je la copie dans la ligne une en premier ensuite 2eme 3 4 ,....
la variable r m'aide à faire cela.
Mais le code ne fonctionne pas.voici le code:
Code:
 Dim données_Svehic As Workbook
Set données_Svehic = GetObject("C:\Bureau\Svehic.xls")
données_Svehic.Activate


compteur_Ligne = ActiveSheet.UsedRange.Rows.Count
r = 1
For i = 1 To compteur_Ligne

If ActiveSheet.Range("AE" & i) - Date >= 10 Then

    données_Svehic.Worksheets(1).Rows(i).Select
    Selection.Copy
End If
    

  
ThisWorkbook.Worksheets("Feuil1").Activate
Sheets("Feuil1").Range("A" & r).Select

        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

 r = r + 1
Next i
Close Object
End Sub
j'ai l'erreur incompatibilité de type
si quelqu'un a une idée merci d'avance
 

knl2

XLDnaute Nouveau
Re : macro pour filtrer les donnes avec de faire un Tranferts

jsui quasi sur qu'il ya un soucis avec la facon dont jai fait le pastespecial
et jepense que la colonne AE n'a pas le format date
 

Staple1600

XLDnaute Barbatruc
Re : macro pour filtrer les donnes avec de faire un Tranferts

Bonjour à tous

knl2
Essayes ton code en déclarant toutes tes variables pour commencer.

Avec un fichier exemple allégé joint à ta question, nous pourrions faire des tests...

Par curiosité, j'ai testé sous XL 2003, et j'ai un problème
Code:
Sub test()
Dim données_Svehic As Workbook
Set données_Svehic = GetObject("C:\temp\test.xls")
données_Svehic.Activate
données_Svehic.Sheets(1).Select
End Sub

Le fichier est bine ouvert mais il est invisible et dans VBA Afficher l'objet est grisé ???

C'est pareil chez vous ? avec une version supérieure d'Excel ?

PS: D'ailleurs, knl2 pourquoi ne pas simplement passé par WorkBooks.Open ?
Code:
Sub Macro1()
Dim données_Svehic As Workbook
Set données_Svehic = Workbooks.Open("C:\temp\test.xls")
données_Svehic.Activate
End Sub
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : macro pour filtrer les donnes avec de faire un Tranferts

Re

Personnellement , j'utiliserai plutôt un filtre élaboré (en VBA), qu'une boucle
et comme le titre de ta question parle de filtrer ça tombe bien

Test OK chez moi avec le code ci-dessous (je te laisse faire les adaptations nécessaires pour coller à la réalité de tes fichiers)
Code:
Sub Macro1()
Dim données_Svehic As Workbook, plgf As Range, ACOPIER As Range
Set données_Svehic = Workbooks.Open("C:\temp\test.xls")
With données_Svehic.Sheets(1)
    .Range("AF2").FormulaR1C1 = "=(RC[-1]-TODAY())>=10"
    .Range("A1:AE21").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _
    .Range("AF1:AF2"), Unique:=False
Set plgf = .Range("_FilterDataBase")
Set ACOPIER = plgf.Offset(1, 0).Resize(plgf.Rows.Count - 1).SpecialCells(xlCellTypeVisible)
End With
ACOPIER.Copy ThisWorkbook.Sheets(1).Range("A65536").End(xlUp)(2)
données_Svehic.Close False
End Sub
 

knl2

XLDnaute Nouveau
Re : macro pour filtrer les donnes avec de faire un Tranferts

Je te remercie infiniement pour ton aide staple1600. Si ta le temps pourra tu mexpliquer ces morceau stp
.Range("AF2").FormulaR1C1 = "=(RC[-1]-TODAY())>=10"
.Range("A1:AE21").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _
.Range("AF1:AF2"), Unique:=False
J'ai jamais utilisé formulaR1C1
je te remercie encore une fois
 

Staple1600

XLDnaute Barbatruc
Re : macro pour filtrer les donnes avec de faire un Tranferts

Bonjour

Pour les explications, premier réflexe à acquérir avant le 21/12/2012, la touche magique dans Excel: F1

Si tu ne trouves pas dans l'aide réponses à tes questions sur FormulaR1C1 (ou sur le net d'ailleurs), je repasserai ici t'en donner
 

knl2

XLDnaute Nouveau
Re : macro pour filtrer les donnes avec de faire un Tranferts

Sisi merci JM mais j'ai utilisé un autre algorithme avec en utilisant une liste déroulante et cela fonctionne parfaitement. Je te remercie quand mm.
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…