Erreur d'execution 1004

Bonjour je vous appelle à la rescousse car j'ai une erreur sur un fichier excel qui gère un tournoi ATP en cours avec mes élèves.

Lorsque que je rentre un résultat l'erreur s'affiche à chaque fois que je valide.

Je suis nul en informatique je ne sais pas quoi faire.

Voici le lien du document:

L'erreur se présente quand sur la feuille de résultats je click sur attribuer les points.

Voici l'erreur telle quelle est présentée quand je click sur débogage:

If avec = 2 Then GoTo Suite

MyTab.Cells(1, 9).Select

Do

ActiveCell.Offset(1, 0).Select

If ActiveCell.Value = a Then

ActiveCell.Offset(0, -2).Select

ActiveCell.Value = ActiveCell.Value + 1

Exit Do

End If

C'est la ligne ActiveCell.Offset(1, 0).Select qui est surlignée en jaune.

Merci de votre réponse par avance.

Cordialement

Bonsoir,

Revois entièrement ton code et supprime tous les Select car d'une part ça ralentit fortement l'exécution et d'autre part, c'est source d'erreur. Remplace par exemple :

Range("gagnant").Select
    g = ActiveCell.Value

par :

g = Range("gagnant").Value

et encore :

 Worksheets("options").Select
    Dim MyTab1 As Object
    Set MyTab1 = Range("points")

Worksheets("résultats").Select
    Dim MyTab As Object
    Set MyTab = Range("tableau_1")

par :

 Dim MyTab1 As Range
Dim MyTab As Range

Set MyTab1 = Worksheets("options").Range("points")
Set MyTab = Worksheets("résultats").Range("tableau_1")

de même que :

MyTab.Cells(1, 9).Select

    Do
        ActiveCell.Offset(1, 0).Select

            If ActiveCell.Value = g Then
                ActiveCell.Offset(0, -7).Select
                MyRow = ActiveCell.Row
                MyCol = ActiveCell.Column
                MyWinner = ActiveCell.Value

    Exit Do
            End If
    Loop

peu êtrer remplacé entre autre par :

Dim Ligne As Range

For Each Ligne In MyTab.Rows

    If Ligne.Cells(1, 9).Value = g Then

       MyRow = Ligne.Cells(1, 2).Row
       MyCol = Ligne.Cells(1, 2).Column
       MyWinner = Ligne.Cells(1, 2).Value

       Exit For

   End If

Next Ligne

Hervé.

Bonjour

J'ajouterais que ton code Private Sub de Feuille tourne inutilement en boucle tout le temps de la procédure, qu'un

Application.EnableEvents = False

après la première exécution, et un

Application.EnableEvents = True en fin avant l'enregistrement feraient gagner un temps considérable.

Ton erreur survient lorsque ta variable a est égale à 26, et que tu cherches ce 26 dans une colonne qui s'arrête à 25.

Cordialement

Désolé mais je suis novice complet, mais comment dois-je faire et ou dois-je aller pour changer ces formules?

Cordialement

Bonjour

Sur la feuille "résultats" coche "sans arbitre" l'erreur disparait

ou modifie la valeur de la cellule O13 (Nommée arb) en choisissant une valeur inférieure à 26

Après, comme je n'ai pas envie d'apprendre toutes les règles, tu peux toujours t'adresser à l'auteur pour modifier ce qui doit l'être.

Cordialement

Rechercher des sujets similaires à "erreur execution 1004"