Erreur page

Bonjour à tous, ci-joint un fichier de calcul et de repport des données sur des pages distinctes. Je n'arrive pas à me débarrasser de l'erreur suivante : erreur d'execution 91 débogage.

Sur ma feuille "fiche", Je souhaiterais ne pas afficher le titre "nom prénom" sur les cellules C1 et D1 quand je n'ai pas saisi les données.. Quand je clique sur la cellule B1 "résultats 2" et ensuite sur le titre "nom prénom" des cellules C1 D1, une erreur s'affiche. Je ne devrais pas cliquer dessus, je le comprends mais je cherche une solution pour que "nom et prénom" ne s'affichent pas.

Explication dure mais si vous avez des solutions, merci pour une solution.

Cordialement

Salut Wall,

voici ta procédure corrigée.

Si la liste en 'Traces(2)' est vide, la liste de validation est simplement "zappée".

Pas de liste, pas d'erreur...

If Not Intersect(Target, Range("B1")) Is Nothing Then
        Range("C1") = ""
        Range("A6:F6,A11:D11,A16:D16,A21").ClearContents
        iRow = Worksheets(fTraces).Range("B" & Rows.Count).End(xlUp).Row
        With Range("C1").Validation
            .Delete
            If iRow > 2 Then
                .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, _
                                Formula1:="=" & fTraces & "!$B$3:$B$" & iRow & ""
                .IgnoreBlank = True
                .InCellDropdown = True
                [C1].Select
            End If
        End With
End If

Je n'ai pas encore cherché à améliorer le coeur de ta boucle. Je regarde ça maintenant.

A+

Re,

voici ta boucle remaniée à ma sauce.

Ah, je remarque que tes moyennes ne sont pas calculées comme toutes les moyennes!

On corrigera la boucle si il faut car, ici, elles ne sont pas copiées mais directement calculées par formules dans 'Fiche'

If Not Intersect(Target, Range("C1")) Is Nothing And [C1] <> "" Then
    With Worksheets(fTraces)
        ln = .Range("B:B").Find(Range("C1").Value, lookat:=xlWhole).Row
        For x = 1 To 8
            iCol = Choose(x, 2, 8, 12, 16, 17, 23, 26, 31)
            iNb = Choose(x, 5, 3, 3, 1, 5, 2, 4, 6)
            For y = 1 To iNb
                Cells(1 + (x * 5), y) = .Cells(ln, iCol + y)
            Next
        Next
    End With
End If

A+

Bonsoir, topppppp, merci beaucoup.

Bonne soirée

Bonsoir,

pour les moyennes, si tu préfères "tes" moyennes dans 'Traces(2)', il faut alors appliquer ceci :

iNb = Choose(x, 6, 4, 4, 1, 6, 3, 5, 7)

Bon travail!

A+

Bonjour à tous, salut Curulis,

Désolé je ré ouvre ce poste car car sur la dernière version, bien sûr, ce n'est pas la bonne façon de faire les moyenne mais avec des formules dans la feuille fiche, après le clear, tout disparaît y compris la formule. J'ai pensé rectifier cette moyenne directement sur le formulaire en divisant simplement les données saisies par le nombre d'items. J'ignore la valeur n.

Sub Moyenne2()
    If flag = 1 Then Exit Sub
    n = 0'''''''''''''''''''''
    For i = 6 To 8
        If Controls("ComboBox" & i) <> "" Then
                n = n + 1'''''''''''''''''''''''''''''
        End If
    Next i
    TextBox3.Value = (Val(ComboBox6) + Val(ComboBox7) + Val(ComboBox8)) /3
End Sub

Qu'en pensez vous, merci

Cordialement

Salut Wall,

exact, les formules s'effacent : je n'avais pas poussé les tests aussi loin...

Pour garder les formules, il suffit de changer l'adressage de ClearContents en le limitant aux données brutes.

A ce propos, je constate maintenant que tu n'effaces pas les données de 'Autres 2-3-4-5'...

Bel exercice de ClearContents pour toi!

    Range("A6:E6,A11:C11,A16:C16,A21").ClearContents

A+

Bonsoir

Merci, j'ai du faire une erreur de frappe, tout doit s'effacer normalement Range("A6:F6,A11:D11,A16:D16,A21,A26:F26,A31:C31,A36:E36,A41:G41").ClearContents

Autre erreur c'est l'appel de la combobox qui doit faire référence à

With Worksheets("Inscriptions") 'fait référence à la liste déroulante combobox28

ComboBox28.List() = .Range("G4:G" & .Range("G" & Rows.Count).End(xlUp).Row).Value

C'est plutot A4:A et A

Et concernant les moyennes c'est bon? Merci

Bonne soirée

Bonsoir Wall,

je n'ai rien compris à ton dernier message...

C'est bon, ce n'est pas bon? Y a-t-il un truc ou l'autre à vérifier?

A+

Sub Moyenne2()

If flag = 1 Then Exit Sub

n = 0'''''''''''''''''''''

For i = 6 To 8

If Controls("ComboBox" & i) <> "" Then

n = n + 1'''''''''''''''''''''''''''''

End If

Next i

TextBox3.Value = (Val(ComboBox6) + Val(ComboBox7) + Val(ComboBox8)) /3

End Sub

Je fais les moyennes en supprimant la variable n et je divise par le nombre d'items comme pour cette exemple /3

Bonjour à tous,

Dans mon classeur ci-joint, j'ai créé une commande de suppression d'une inscription sur la feuille 'fiche'. En cliquant sur supprimer je voulais effacer le nom de la personne ainsi que toutes valeurs saisies correspondantes dans les feuilles 'traces' et 'traces 2' et dans 'inscriptions'

J'hesite entre le fait d'insérer cette commande à la base dans le formulaire ou dans la feuille 'fICHE'

Merci de bien vouloir donner un avis, une idée!

Cordialement

Rechercher des sujets similaires à "erreur page"