Excel VBA fonctionne parfois, mais pas toujours

Résolu
hoquei44 Messages postés 15376 Date d'inscription dimanche 19 janvier 2014 Statut Membre Dernière intervention 6 juin 2023 - 22 août 2018 à 20:35
hoquei44 Messages postés 15376 Date d'inscription dimanche 19 janvier 2014 Statut Membre Dernière intervention 6 juin 2023 - 23 août 2018 à 00:00
Bonjour à tous,

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.

1 réponse

jordane45 Messages postés 37538 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 7 juin 2023 341
22 août 2018 à 22:59
Bonjour,

Tu peux tester ça :

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



0
hoquei44 Messages postés 15376 Date d'inscription dimanche 19 janvier 2014 Statut Membre Dernière intervention 6 juin 2023
23 août 2018 à 00:00
Parfait avec les select.

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
0