Excel VBA fonctionne parfois, mais pas toujours [Résolu]

Signaler
Messages postés
11648
Date d'inscription
dimanche 19 janvier 2014
Statut
Membre
Dernière intervention
3 juin 2020
-
Messages postés
11648
Date d'inscription
dimanche 19 janvier 2014
Statut
Membre
Dernière intervention
3 juin 2020
-
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

Messages postés
28971
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
4 juin 2020
329
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



Messages postés
11648
Date d'inscription
dimanche 19 janvier 2014
Statut
Membre
Dernière intervention
3 juin 2020

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