Erreur 438 ou 1004

Fermé
mstecluque Messages postés 73 Date d'inscription mardi 9 juin 2015 Statut Membre Dernière intervention 28 juillet 2015 - 20 juil. 2015 à 14:41
ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 - 28 juil. 2015 à 10:07
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 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
Modifié par f894009 le 20/07/2015 à 16:00
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 mardi 9 juin 2015 Statut Membre Dernière intervention 28 juillet 2015
Modifié par mstecluque le 20/07/2015 à 16:15
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 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701 > mstecluque Messages postés 73 Date d'inscription mardi 9 juin 2015 Statut Membre Dernière intervention 28 juillet 2015
20 juil. 2015 à 16:39
Re,

Ben, si ca marche pourquoi y des erreurs????????????????????????????????????
0
ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 160
20 juil. 2015 à 16:49
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 mardi 9 juin 2015 Statut Membre Dernière intervention 28 juillet 2015
21 juil. 2015 à 08:40
Merci je vais essayer ça.
0
mstecluque Messages postés 73 Date d'inscription mardi 9 juin 2015 Statut Membre Dernière intervention 28 juillet 2015
21 juil. 2015 à 15:31
Et si je ne veux pas copier la première ligne?
0
ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 160
Modifié par ThauTheme le 21/07/2015 à 15:45
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 mardi 9 juin 2015 Statut Membre Dernière intervention 28 juillet 2015
27 juil. 2015 à 09:01
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 mardi 9 juin 2015 Statut Membre Dernière intervention 28 juillet 2015
27 juil. 2015 à 09:03
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 mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 160
27 juil. 2015 à 09:25
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 mardi 9 juin 2015 Statut Membre Dernière intervention 28 juillet 2015
27 juil. 2015 à 13:45
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 mardi 9 juin 2015 Statut Membre Dernière intervention 28 juillet 2015
27 juil. 2015 à 14:15
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 mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 160
27 juil. 2015 à 14:19
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 mardi 9 juin 2015 Statut Membre Dernière intervention 28 juillet 2015
28 juil. 2015 à 08:59
Du coup, une idée?
0
ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 160
28 juil. 2015 à 10:07
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