Voici tout d'abord le passage en VBA qui me pose problème, dans mon classeur qui comporte deux feuilles (Cacul et Garde) :
' Remplissage du tableau
For tour = 1 To X
If Sheets("Calcul").Cells(1, X - tour + 1) <> "" Then
Sheets("Garde").Range("A2:A" & X + 1).Copy
Sheets("Calcul").Cells(2, X - tour + 1).Select
Sheets("Calcul").Paste
Application.CutCopyMode = False
End If
Next
Lorsque j’exécute cette (portion de ma) macro alors que je suis sur la page "Calcul", je ne rencontre aucun soucis.
Cependant si je la lance alors que je suis sur la page "Garde", alors j'obtiens l'erreur d'exécution 1004. La méthode Select de la classe Range a échoué.
Le curseur jaune s'arrête sur la ligne suivante :
Sheets("Calcul").Cells(2, X - tour + 1).Select
J'ai tenté de "trifouiller" quelques modifications, mais je n'ai rien trouvé de probant.
Merci par avance de l'aide que vous pourrez m'apporter.
Dim shGarde as WorkSheet
Dim shCalcul as WorkSheet
Set shGarde = Sheets("Garde")
Set shCalcul = Sheets("Calcul")
For tour = 1 To X
If shCalcul .Cells(1, X - tour + 1) <> "" Then
shGarde.Select
shGarde .Range("A2:A" & X + 1).Copy
shCalcul .Select
shCalcul .Cells(2, X - tour + 1).Select
shCalcul .Paste
Application.CutCopyMode = False
End If
Next
J'ai même eu en prime une réponse à une question que je n'ai pas posé :
Je note la technique du Set pour simplifier les noms de feuilles.
Merci