Bonjour, je planche depuis hier sur un problème en vba. En fait, j'ai créé une macro qui va archiver des données or, le problème c'est qu'à la première exécution tout fonctionne bien.
En fait, elle va copier, en plus des données sur les salariés, le numéro de semaine.
Or, dès la seconde exécution (la semaine suivante), la macro recopie bien tout mais le numéro de semaine restera inchangé dans la feuille Archives!
Je crois avoir identifié l'erreur mais je ne sais pas comment faire pour que le numéro de semaine soit copié suivant le nombre de valeur de la feuille Saisie et ce pour chaque exécution. Par exemple, j'ai 7 salariés et j'archives leurs heures pour la semaine 14. Je voudrais donc qu'il y ait en A6 14, en B6 et suivante l'identification comme le montre ma capture d'écran http://cjoint.com/?ECtlMnl06b4
Le bout de code qui pose problème c'est
Sheets("Saisie").Select Range("A2").Select 'Sélectionne la cellule A2 Application.CutCopyMode = False Selection.Copy 'Copie Sheets("Archives").Select 'Ouvre la feuille "Archives" Range("A65000").End(xlUp).Offset(1).Select 'Offset = décalage Selection.PasteSpecial Paste:=xlPasteValues End If Dim DernLigne As Long DernLigne = Sheets("Archives").Range("B" & Rows.Count).End(xlUp).Row For i = 6 To DernLigne 'De la ligne 6 à la dernière ligne If Sheets("Archives").Range("B" & i).Value <> "" Then 'Si dans la feuille "Archives", la celulle Bx n'est pas vide, alors Range("a" & i).Offset(1) = Range("a" & i) End If Next i
Je vous joint aussi mon fichier http://cjoint.com/?ECtlTBHZvc2