Erreur 438 ou 1004

mstecluque Messages postés 73 Date d'inscription   Statut Membre Dernière intervention   -  
ThauTheme Messages postés 1564 Statut Membre -
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

  1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    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
    1. 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
      1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717 > mstecluque Messages postés 73 Date d'inscription   Statut Membre Dernière intervention  
         
        Re,

        Ben, si ca marche pourquoi y des erreurs????????????????????????????????????
        0
  2. ThauTheme Messages postés 1564 Statut Membre 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
    1. mstecluque Messages postés 73 Date d'inscription   Statut Membre Dernière intervention  
       
      Merci je vais essayer ça.
      0
  3. 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
  4. ThauTheme Messages postés 1564 Statut Membre 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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. 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
    1. 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
  7. ThauTheme Messages postés 1564 Statut Membre 160
     
    Re,

    On perdrait tellement moins de temps si tu daignais mettre un fichier exemple en pièce jointe...
    0
    1. 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
    2. 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
  8. ThauTheme Messages postés 1564 Statut Membre 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
    1. mstecluque Messages postés 73 Date d'inscription   Statut Membre Dernière intervention  
       
      Du coup, une idée?
      0
  9. ThauTheme Messages postés 1564 Statut Membre 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