Problème dans un boucle For..Next

  • Auteur de la discussion robby98800
  • Date de début

robby98800

Nouveau membre
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 :
C++:
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
C++:
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 !!:??:
 

drul

Obscur pro du hardware
Staff
Salut,
C'est très bien d'utiliser la balise code, mais stp utilise code=vb, plus lisible.

Ensuite, Ok tu vas checher le nom du fichier csv, et après ... tu n'en fais rien du tout ...
Le fichier source n'est jamais ouvert !
(regarde l'aide sur getopenfilename)
donc dans ton code source = destination ! (qui je suppose est vide ...) tu cherches dons à faire une boucle de 2 à 1, ce que le vba ne permet pas (à moins de spécifié un pas négatif, mais ce n'est pas ce que tu veux faire).

Pour le debug, tu as les point d'arret qui peuvent être très efficae ...
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 098
Messages
6 717 050
Membres
1 586 282
Dernier membre
Yannick3553
Partager cette page
Haut