Erreur '1004' ca veux dire quoi?

amand -  
lermite222 Messages postés 9042 Statut Contributeur -
Bonjour,

j'ai créer un programme sur exel permettant de copier toutes les lignes dont la valeur de la cellule de la colonne J est inférieur à un certain nombre. et les coller dans une autre feuille.

Mais je suis pas experte en VBA et j'obtiens ce message :

Erreur d'exécution '1004':
Erreur définit par l'application ou par l'objet

Je ne comprend pas ce que cela signifie. Si quelqu'un pourrait m'éclaircir.

Merci par avance
Configuration: Windows XP Internet Explorer 7.0

11 réponses

  1. Polux31 Messages postés 7219 Statut Membre 1 204
     
    Bonjour,

    Colle ici ton code en nous indiquant la ligne où l'erreur se produit, on pourra peut être t'aider.

    Meric

    ;o)
    0
  2. Polux31 Messages postés 7219 Statut Membre 1 204
     
    Bonjour,

    Colle ici ton code en nous indiquant la ligne où se produit l'erreur, nous pourrons peut être t'aider. Merci

    ;o)
    0
  3. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Bonjour,
    L'erreur 1004 est un peu le "Fourre-tout" d'excel mais est particulièrement utilisée quand l'objet spécifié n'est pas trouver, par exemple
    Sheets("Feuil10").Activate

    et que la Feuil10 n'existe pas ou qu'il y a une erreur de syntaxe, ou un espace en trop, ce qui est plus fréquent.
    A+
    0
  4. amand
     
    j'ai résolu le problème de l'erreur 1004, d'autre erreur apparaisse mais je m'en sortirais je pense.

    Merci
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. amand
     
    voici mon code

    Private Sub CommandButton1_Click()
    Dim NumLigneVide As Integer
    Dim NumLigneCopier As Integer

    Sheets("Remise à jour").Range("A2:J65536").Value = Null 'On remet la zone à zéro
    NumLigneVide = 2

    For Each Cell In Sheets("SOI").Columns("J:J") 'dans la colonne J
    If Value < Date + 90 Then 'si une cellule à une valeur inférieur à aujourdhui + 90 jours alors
    NumLigneCopier = ListIndex 'on associe à NumLigneCopier le numéro de la ligne de la cellule
    Sheets("SOI").Rows("NumLigneCopier:NumLigneCopier").Select 'on sélectionne la ligne Selection.Copy 'on copie la selection
    Sheets("Remise à jour").Select 'on va dans la feuille remise à jour
    Rows("NumLigneVide:NumLigneVide").Select
    ActiveSheet.Paste 'on colle ces cellules dans la feuille remise à jour à la ligne vide.
    NumLigneVide = NumLigneVide + 1
    End If

    Next 'tri les lignes par ordre croissant selon la colonne J

    Sheets("Remise à jour").Columns("J:J").Select
    Range("A1:J5").Sort Key1:=Range("J2"), Order1:=xlAscending, Header:= _
    xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
    DataOption1:=xlSortNormal

    End Sub

    le problème est maintenant sur la ligne souligné mais c'est une erreur 13 incompatibilité de type
    Mais j'arrive pas à résoudre
    0
  7. Polux31 Messages postés 7219 Statut Membre 1 204
     
    Re,

    En mettant ça, ça devrait le faire :

    Sheets("SOI").Rows(NumLigneCopier).Select

    ;o)
    0
  8. amand
     
    En changeant comme tu m'as dis ca me remets erreur 1004. Je ne comprend pas où est l'erreur.
    0
  9. Polux31 Messages postés 7219 Statut Membre 1 204
     
    Oui effectivement je n'avais pas tout lu en détail.

    D'où provient ListIndex(NumLigneCopier = ListIndex) ???

    Si tu veux récupérer le numéro de la ligne, il faut faire:
    NumLigneCopier = Cell.Row

    ;o)
    0
    1. amand
       
      Alors enfète je savais pas comment faire et en cherchant sur internet j'ai trouver ca. ListIndex doit correspondre au numéro de la ligne sélectionnée mais c'est peut être une erreur.

      Si c'est faux, quelqu'un s'aurait comment faire pour attribuer à NumLigneCopier le numéro de la ligne sélectionnée???
      0
      1. Polux31 Messages postés 7219 Statut Membre 1 204 > amand
         
        Ben oui ... relis le post 8, c'est indiqué... ^^

        ;o)
        0
      2. Info > amand
         
        Selection.Row !
        0
  10. amand
     
    En mettant NumLigneCopier = Cell.Row ou NumLigneCopier = Selection.Row ca marche toujours pas ...
    0
  11. Polux31 Messages postés 7219 Statut Membre 1 204
     
    Voilà ce que j'ai testé chez moi et ça marche nickel

    Sub test()
    Dim cel
    
        For Each cel In Worksheets(1).Range("A1:A100")
            If cel.Value < 5 Then
                Worksheets(1).Rows(cel.Row).Delete
            End If
        Next cel
        
    End Sub


    A toi d'adapter ça à ton code

    ;o)
    0
  12. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Sans tout relire...
    Pas oublier.. les lignes de la feuille commence à 1 et les lignes de la listBox commence à 0 !!
    A+
    0