Partager via

La méthode PasteSpecial échoue

Anonyme
2023-05-15T12:13:11+00:00

Bonjour,

J'ai créé un fichier pour la formule 1 et j'ai ce message qui s'affiche régulièrement :

Je ne sais pas de quoi cela provient.

D'avance, merci

Microsoft 365 et Office | Excel | Pour la maison | Windows

Question verrouillée. Cette question a été migrée à partir de la Communauté Support Microsoft. Vous pouvez voter pour indiquer si elle est utile, mais vous ne pouvez pas ajouter de commentaires ou de réponses ni suivre la question.

0 commentaires Aucun commentaire

Réponse acceptée par l’auteur de la question

  1. DanielCo 107.7K Points de réputation
    2023-05-22T10:16:26+00:00

    Bonjour,

    Ce sont les fonctions CalculPosition et CalculPool qui provoquent l'erreur.

    1. Remplace le code du module Formules par celui-ci :

    Option Explicit
    Public Teste As Boolean

    Function CalculPosition&(Nom$)
    Application.Volatile
    Dim Course, I%, PosNom As Variant
    If Teste = True Then
    Teste = False
    Exit Function
    End If
    Course = Array("Espagne", "Australie", "Azerbaïdjan", "ItalieIm", "Autriche", "Singapour", "Hongrie", "Japon", "USA", _
    "Monaco", "Pays-Bas", "Miami", "GB", "Belgique", "Canada", "Italie", "Mexique", "Qatar", "Brésil", "Bahrein", "AbuDhabi", "Las Végas", "Arabie Saoudite")
    For I = 0 To UBound(Course)
    With Sheets(Course(I))
    PosNom = Application.Match(Nom, .Range("A:A"), 0)
    If IsNumeric(PosNom) Then If .Range("D" & PosNom) = Sheets("Pilotes").Range("H3") Then CalculPosition = CalculPosition + 1
    End With
    Next
    End Function

    Function CalculPool(Nom$)
    Application.Volatile
    Dim I%, PosNom As Variant
    If Teste = True Then
    Teste = False
    Exit Function
    End If
    For I = 1 To Application.CountIf([Courses], "*")
    With Sheets(CStr([Courses].Cells(I, 1)))
    PosNom = Application.Match(Nom, .Range("A:A"), 0)
    If IsNumeric(PosNom) Then If .Range("E" & PosNom) Then CalculPool = CalculPool + 1
    End With
    Next
    End Function

    1. Dans la macro Activate de chaque feuille, avant la ligne : rng.PasteSpecial

    ajoute :

    Teste = True  
    

    Dans le classeur joint, je ne l'ai fait que pour Bahrein.

    https://www.cjoint.com/c/MEwko4eFPC6

    Daniel

    Cette réponse a-t-elle été utile ?

    1 personne a trouvé cette réponse utile.
    0 commentaires Aucun commentaire

14 réponses supplémentaires

  1. Anonyme
    2023-05-17T13:55:27+00:00

    Bonjour Daniel,

    C'est là que se trouve ma lacune car je ne sais comment procéder vu que c'est VBA que j'ai trouvé sur un forum et que j'ai essayé d'adapter à mon fichier.

    Cordialement

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  2. DanielCo 107.7K Points de réputation
    2023-05-17T13:33:10+00:00

    Bonjour,

    Il faut coller l'image sur une feuille, pas dans un range.

    Daniel

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  3. Anonyme
    2023-05-15T17:42:59+00:00

    Est-ce dont vous me parlez ?

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  4. Anonyme
    2023-05-15T14:58:20+00:00

    Salut Jean-Maurice G !

    Je suis désolé d’apprendre que vous rencontrez des difficultés pour faire fonctionner votre code.

    L’erreur 1004 dans Excel se produit généralement lorsqu’une macro ou un code VBA rencontre un problème lors de l’exécution. Dans votre cas, il semble être lié à un chemin de fichier manquant auquel la macro tente d’accéder.

    Pourriez-vous coller le code pour faciliter le dépannage?

    Merci

    Meilleures considérations

    Cette réponse a été traduite automatiquement. Par conséquent, il peut y avoir des erreurs grammaticales ou des expressions étranges.

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire