Problème avec l'archivage de mes données

Bonjour,

Je suis actuellement sur un projet d'archivage des données d'un fichier excel dans lequel se trouve des documents à remplir puis à vider une fois l'archivage sur une deuxième feuille réalisé

J'ai essayer avec ce petit bout de programme mais j'ai constamment l'erreur 1004 qui revient sur la les lignes de copier coller (Sheets("Données").Range(Cells ....).

Pouvez-vous m'aidez ?

Sub Archiver()

ligne = Sheets("Données").Range("A1").End(xlDown).Row + 1

Sheets("Données").Range("A1").Value = ligne

Worksheets("Données").Activate

Worksheets("Moule MA").Activate

Sheets("Données").Range(Cells(1, ligne)).Value = Sheets("Moule MA").Range("E4").Value

Sheets("Données").Range(Cells(2, ligne)).Value = Sheets("Moule MA").Range("K5").Value

Sheets("Données").Range(Cells(3, ligne)).Value = Sheets("Moule MA").Range("W56").Value Or Sheets("Données").Range(Cells(3, ligne)).Value = Sheets("Moule MA").Range("AP105").Value

Sheets("Données").Range(Cells(4, ligne)).Value = Sheets("Moule MA").Range("Z56").Value Or Sheets("Données").Range(Cells(4, ligne)).Value = Sheets("Moule MA").Range("AT104").Value

Sheets("Données").Range(Cells(5, ligne)).Value = Sheets("Moule MA").Range("V63").Value Or Sheets("Données").Range(Cells(5, ligne)).Value = Sheets("Moule MA").Range("AZ106").Value

Sheets("Données").Range(Cells(6, ligne)).Value = Sheets("Moule MA").Range("V70").Value Or Sheets("Données").Range(Cells(6, ligne)).Value = Sheets("Moule MA").Range("AZ104").Value

Sheets("Données").Range(Cells(7, ligne)).Value = Sheets("Moule MA").Range("F7").Value

End Sub

Cordialement,

Mehdi

Bonjour,

Il y a pas mal de choses qui ne vont pas dans ton code :

1. L'instruction pour déterminer la valeur de "ligne" risque de poser problème en cas de présence de ligne vide

2. Activer successivement 2 feuilles est inutile (cela revient à activer directement la seconde), surtout si tu précises à chaque fois la feuille devant les objets que tu manipules (Sheets("Truc").Range("Machin")...). Dans ce cas l'activation ne sert à rien.

3. Il faut choisir ta syntaxe entre utiliser Range("A1") et Cells(1, 1)...

4. La syntaxe de tes "Or" n'est pas bonne, ils s'utilisent dans des structures conditionnelles telles que "If...Then...(Else)...End If". Dans quelle(s) condition(s) doit-on réaliser l'instruction située après tes "Or" ?

Une proposition de code, simplifié :

Sub Archiver()

Dim ligne As Long

Worksheets("Moule MA").Activate 'En l'absence de précision, les cellules se rapportent à cette feuille
With Sheets("Données") 'Tout objet commençant par "." s'y rapporte
    ligne = .Range("A" & Rows.Count).End(xlDown).Row + 1 'Première ligne vide
    .Range("A1").Value = ligne
    .Range("A" & ligne) = Range("E4")
    .Range("B" & ligne) = Range("K5")
    .Range("C" & ligne) = Range("W56")
    .Range("D" & ligne) = Range("Z56")
    .Range("E" & ligne) = Range("V63") 
    .Range("F" & ligne) = Range("V70")
    .Range("G" & ligne) = Range("F7")
End With

End Sub

Du coup j'ai essayé avec tes conseils et repris le code

Ça me va mieux maintenant merci !!.

Du coup j'ai essayé avec tes conseils et repris le code

Ça me va mieux maintenant merci !!.

Tant mieux ! Merci de passer le sujet en résolu dans ce cas !

Rechercher des sujets similaires à "probleme archivage mes donnees"