IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Problème dans une boucle For..Next


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Mai 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes

    Informations forums :
    Inscription : Mai 2012
    Messages : 4
    Points : 4
    Points
    4
    Par défaut Problème dans une boucle For..Next
    Bonjour,

    Je suis stagiaire et débutant en VBA et on me demande de faire un programme en VBA. J'ai tenté de faire une macro qui permet d'aller chercher un fichier .csv et qui collent les cellules qui répondent à une condition (ici c'est une condition de date) dans un autre classeur. J'ai épluché tous les tutos mais je n'arrive pas à trouver la solution. J'ai une erreur 1004, Erreur définie par l'application ou par l'objet à la ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For J = 2 To Sheets(2).Range("A" & Rows.Count).End(x1up).Row
    Je vous mets le code en entier car vu mon niveau il est possible qu'elle ne soit pas bien construite avant cette ligne la

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    Sub Import()
     
        Set Destination = ActiveWorkbook
     
        Dim ladate As Date, Plage As Range, Plaga As Range, Source As Variant
     
        ladate = DateAdd("d", -7, Date)
     
     
        Source = Application.GetOpenFilename("Fichiers Donnees (*.csv), *.csv")
        If Source = False Then
        MsgBox ("Aucun fichier sélectionné")
        Exit Sub
        Else
        Set Source = ActiveWorkbook
     
        For I = 2 To Sheets(1).Range("A" & Rows.Count).End(xlUp).Row
        If Sheets(1).Range("A" & I).Value >= ladate Then
        If Plage Is Nothing Then
        Set Plage = Sheets(1).Range("A" & I & ":" & "E" & I)
        Else
        Set Plage = Union(Plage, Sheets(1).Range("A" & I & ":" & "E" & I))
        End If
        End If
        Next
     
        Destination.Activate
     
        For J = 2 To Sheets(2).Range("A" & Rows.Count).End(x1up).Row
        Set Plaga = Sheets(2).Range("A" & J & ":" & "E" & J)
        Next J
        Plaga.ClearContents
        Plage.Copy Destination:=Sheets(2).Range("A2")
     
        Source.Activate
        Application.CutCopyMode = False
        ActiveWindow.Close SaveChanges:=False
     
        End If
     
     
        End Sub


    Merci de votre aide, le VBA c'est pas vraiment cool quand ca marche pas !!?:

  2. #2
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 274
    Points
    11 274
    Par défaut
    Salut, entre autres ...

    Set Destination = ActiveWorkbook
    Set Source = ActiveWorkbook
    For J = 2 To Sheets(2).Range("A" & Rows.Count).End(x1up).Row
    For I = 2 To Sheets(1).Range("A" & Rows.Count).End(xlUp).Row
    Sinon une recherche sur concaténation fichiers csv

  3. #3
    Membre expert
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2011
    Messages
    1 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 858
    Points : 3 974
    Points
    3 974
    Par défaut
    Bonjour,

    Les doigts ont fourché à la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For J = 2 To Sheets(2).Range("A" & Rows.Count).End(x1up).Row
    Il faut écrire xlUp et non pas x1up

    Cordialement.

Discussions similaires

  1. Chercher dans les valeurs d'une cellule dans une boucle For Next
    Par Runsh63 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 28/09/2011, 15h30
  2. Réponses: 5
    Dernier message: 27/11/2008, 17h34
  3. [Embedded Function] Problème dans une boucle FOR-END
    Par roilait dans le forum Simulink
    Réponses: 6
    Dernier message: 19/04/2008, 14h55
  4. Problème d'indexage dans une boucle FOR-END
    Par RAMZOON dans le forum MATLAB
    Réponses: 3
    Dernier message: 19/10/2007, 00h59
  5. Problème avec une DLL dans une boucle For
    Par BraDim dans le forum Langage
    Réponses: 5
    Dernier message: 20/09/2005, 12h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo