Erreur 438 ou 1004

mstecluque Messages postés 73 Date d'inscription   Statut Membre Dernière intervention   -  
ThauTheme Messages postés 1442 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour à tous,

je suis en train de m'acharner sur une macro qui devrait logiquement filtrer des données, sélectionner le résultat, le copie et le colle dans un autre onglet.
Ca semble simple. Et ça marche jusqu'au collage.
A ce moment là, ça ne veut pas. J'ai une erreur 438 ou 1004 en fonction de ce que j'essaie. J'ai tenté plusieurs façons de définir la cellule à partir de laquelle je veux commencer mon collage mais je ne trouve pas mon erreur.

Option Explicit
Public Const codeb = "A"
Sub Macro1()
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Application.DisplayAlerts = False

Dim Mois1 As Date, Mois1_formate As String
Dim Mois2 As Date, Mois2_formate As String
Dim Mois3 As Date, Mois3_formate As String
Dim li As Long, lifinCarnet As Long, lifinATotal As Long



Mois1 = DateAdd("d", -1, CDate("1/" & Format(DateAdd("m", 1, Date), "mm/yyyy")))
Mois1_formate = Format(CDate(Mois1), "mm/d/yyyy")
Mois2 = DateAdd("d", -1, CDate("1/" & Format(DateAdd("m", 2, Date), "mm/yyyy")))
Mois2_formate = Format(CDate(Mois2), "mm/d/yyyy")
Mois3 = DateAdd("d", -1, CDate("1/" & Format(DateAdd("m", 3, Date), "mm/yyyy")))
Mois3_formate = Format(CDate(Mois3), "mm/d/yyyy")

Sheets("BDD Carnet commandes").Select
Rows("1:1").Select
Selection.AutoFilter Field:=21, Criteria1:="=S", _
Operator:=xlOr, Criteria2:="="
Selection.AutoFilter Field:=11, Operator:= _
xlFilterValues, Criteria2:=Array(1, Mois1_formate, 1, Mois2_formate, 1, Mois3_formate)

ActiveSheet.Cells.SpecialCells(xlCellTypeVisible).Copy

'lifinCarnet = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
'lifinATotal = Sheets("A TOTAL").Cells(Rows.Count, 1).End(xlUp).Row
Sheets("A TOTAL").Select
Range("A5107").Select
ActiveSheet.Paste
'For li = 2 To lifinCarnet
'Rows(li).Copy
'lifinATotal = Sheets("A TOTAL").Cells(Rows.Count, 1).End(xlUp).Row
'Sheets("A TOTAL").Rows(lifinATotal + 1).Select
'Selection.Paste
'Next li

Application.DisplayAlerts = True
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
End Sub

J'espère que qqun aura une idée, pcq je n'en ai plus!

8 réponses

f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Bonjour,

il manque une selection de cellules, Rows(1:1) ca ne va pas
deuxieme critere egal a quoi ?????????
Selection.AutoFilter Field:=21, Criteria1:="=S", _
    Operator:=xlOr, Criteria2:="="
0
mstecluque Messages postés 73 Date d'inscription   Statut Membre Dernière intervention  
 
Alors mon filtre marche parfaitement. Après ça doit sûrement s'améliorer...
Rows(1:1) est ma ligne d'entêtes et ça fonctionne.
Et pour le deuxième critère, c'est la macro enregistrée qui m'a donnée ça. Je garde ou les colonnes qui contiennent S ou les vides
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713 > mstecluque Messages postés 73 Date d'inscription   Statut Membre Dernière intervention  
 
Re,

Ben, si ca marche pourquoi y des erreurs????????????????????????????????????
0
ThauTheme Messages postés 1442 Date d'inscription   Statut Membre Dernière intervention   160
 
Bonjour le fil, bonjour le forum,

Le petit bout de code ci-dessous, à adapter, fonctionne chez moi :
Sub Macro1()
Dim O1 As Worksheet
Dim O2 As Worksheet
Dim PL As Range
Dim PLV As Range

Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Application.DisplayAlerts = False
Set O1 = Sheets("Feuil1")
Set O2 = Sheets("Feuil2")
Set PL = O1.UsedRange
O1.Range("A1").AutoFilter Field:=1, Criteria1:="AA"
Set PLV = PL.SpecialCells(xlCellTypeVisible)
If PLV.Rows.Count = 1 Then
    MsgBox "Aucune donnée ne correspond aux critères"
    GoTo fin
End If
On Error GoTo 0
PLV.Copy O2.Range("A1")

fin:
Sheets("Feuil1").Range("A1").AutoFilter
Application.DisplayAlerts = True
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
End Sub

0
mstecluque Messages postés 73 Date d'inscription   Statut Membre Dernière intervention  
 
Merci je vais essayer ça.
0
mstecluque Messages postés 73 Date d'inscription   Statut Membre Dernière intervention  
 
Et si je ne veux pas copier la première ligne?
0
ThauTheme Messages postés 1442 Date d'inscription   Statut Membre Dernière intervention   160
 
Re,

Remplace la ligne :

Set PL = O1.UsedRange

par les deux lignes :
Set PL = O1.UsedRange
Set PL = PL.Offset(1, 0).Resize(PL.Rows.Count - 1, PL.Columns.Count)


À plus,
ThauTheme
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mstecluque Messages postés 73 Date d'inscription   Statut Membre Dernière intervention  
 
J'ai quand même un pb, ça trouve toujours qu'il n'y a qu'une seule ligne, même s'il y en a pleins.
Du coup ça m'affiche à chaque fois le message et ça termine...
par contre si j'enlève la condition, ça fait ce que je veux.
0
mstecluque Messages postés 73 Date d'inscription   Statut Membre Dernière intervention  
 
Concrètement, je suis sûre qu'il y aura toujours des lignes à traiter.
Mais il ne faut jamais dire jamais! donc si qqun voit pourquoi, merci d'avance
0
ThauTheme Messages postés 1442 Date d'inscription   Statut Membre Dernière intervention   160
 
Re,

On perdrait tellement moins de temps si tu daignais mettre un fichier exemple en pièce jointe...
0
mstecluque Messages postés 73 Date d'inscription   Statut Membre Dernière intervention  
 
Je n'y avais tout simplement pas pensé.
et je ne sais pas pourquoi, depuis ce matin cjoint ne veut pas charger mon fichier à plus de 98%. Donc je l'enverrai ce soir.
Merci pour l'aide en tout cas
0
mstecluque Messages postés 73 Date d'inscription   Statut Membre Dernière intervention  
 
https://www.cjoint.com/c/EGBmoLE8reC

Voici une version très allégée de mon document, pour que vous voyiez tout par vous-même
0
ThauTheme Messages postés 1442 Date d'inscription   Statut Membre Dernière intervention   160
 
Re,

J'ai le même problème que toi. Chaque fois que je veux envoyer un fichier via Ci-Joint celui-ci n'est pas accessible (comme maintenant). La solution que j'ai trouvée, c'est de zipper le fichier Excel puis d'envoyer le zip...
0
mstecluque Messages postés 73 Date d'inscription   Statut Membre Dernière intervention  
 
Du coup, une idée?
0
ThauTheme Messages postés 1442 Date d'inscription   Statut Membre Dernière intervention   160
 
Re,

Pffff !... Je parle à un mur là.
Ton fichier est inaccessible !... Comme dit plus haut envoie un zip via ci-joint. Relis mes réponses...
0