VBA - problème de codage - erreur 400
flavinou7263
Messages postés
32
Date d'inscription
Statut
Membre
Dernière intervention
-
flavinou7263 Messages postés 32 Date d'inscription Statut Membre Dernière intervention -
flavinou7263 Messages postés 32 Date d'inscription Statut Membre Dernière intervention -
Hello tout le monde
je sollicite aujourd'hui votre car j'ai créer un code VBA où j'ai une erreur 400. J'ai localisé deux endroits possibles (4 mais trois sont identiques), en gras dans le code ci dessous, dans la macro mais ne sais pas ce qui cloche.
Merci d'avance pour votre aide
je sollicite aujourd'hui votre car j'ai créer un code VBA où j'ai une erreur 400. J'ai localisé deux endroits possibles (4 mais trois sont identiques), en gras dans le code ci dessous, dans la macro mais ne sais pas ce qui cloche.
Merci d'avance pour votre aide
Sub pts_slalom() Dim coef_K1H, coef_C1H, coef_K1D, coef_C1D, coef_C2H, coef_C2D, coef_C2M As Integer Dim cat, lettre, course, div, phase As String Dim nb, malus_div, malus_phase, malus_fin, tps5 As Integer Dim div_N1, div_N2_PON12, div_N3_PON23_REG As Integer 'Type de course course = InputBox("Selectionnez le type de course avec le numéro en début de ligne :" & Chr(10) & "1 - Course N1" & Chr(10) & "2 - Course N2 ou Play Off N1-2" & Chr(10) & "3 - Course N3 - Play Off N2-3 et Régionale", "Type de course") 'Division de course div = InputBox("Selectionnez la division avec le numéro en début de ligne :" & Chr(10) & "1-Chpt France élite" & Chr(10) & "2-Chpt C/J/C2S" & Chr(10) & "3-Finale N1/2/3" & Chr(10) & "4-1/2 Finale N3" & Chr(10) & "5-Manche CDF N1/2/3" & Chr(10) & "6-PO N2/3" & Chr(10) & "7-PO N1/2" & Chr(10) & "8-Chpt France MAster" & Chr(10) & "9-Chpt Régional" & Chr(10) & "10-Sélectif régional", "Division") 'Phase de course phase = InputBox("Selectionnez la phase de course avec le numéro en début de ligne :" & Chr(10) & "1-Q1 ou Q" & Chr(10) & "2-Q2" & Chr(10) & "3-1/2 Finale" & Chr(10) & "4-Finale", "Phase de course") 'Calcul du malus Range("R8") = "Malus de division" Range("R9") = "Malus de phase" Select Case div Case Is = "1" malus_div = 0 MsgBox "Utilisez le programme spécifique aux piges (non basé sur un temps scratch)" Exit Sub Case Is = "2" malus_div = 0 Case Is = "3" malus_div = 0 Case Is = "4" malus_div = 0 Case Is = "5" malus_div = 5 Case Is = "6" malus_div = 0 Case Is = "7" malus_div = 0 Case Is = "8" malus_div = 20 Case Is = "9" malus_div = 40 Case Is = "10" malus_div = 40 Case Else MsgBox "Erreur" Exit Sub End Select Select Case phase Case Is = "1" malus_phase = 10 Case Is = "2" MsgBox "Pas de calcul de point" Exit Sub Case Is = "3" malus_phase = 5 Case Is = "4" malus_phase = 0 Case Else MsgBox "Erreur" Exit Sub End Select Range("S8") = malus_div Range("S9") = malus_phase 'Définition des coefficients inter catégorie coef_K1H = 1 coef_K1D = 1.13 coef_C1H = 1.05 coef_C1D = 1.2 coef_C2H = 1.1 coef_C2D = 1.3 coef_C2M = 1.2 'Définition des colonnes Range("K1") = "Temps scratch" Range("L1") = "Temps fictif" Range("M1") = "Ecart moyenne" Range("N1") = "Points bruts" Range("O1") = "Points finaux" Range("P1") = "Points officiels" 'Calcul du temps scratch For i = 2 To 154 If Range("A" & i) <> "" Then cat = Range("A" & i) Select Case cat Case Is = "K1H" Range("K" & i) = coef_K1H * Range("H" & i) Case Is = "K1D" Range("K" & i) = coef_K1D * Range("H" & i) Case Is = "C1H" Range("K" & i) = coef_C1H * Range("H" & i) Case Is = "C1D" Range("K" & i) = coef_C1D * Range("H" & i) Case Is = "C2H" Range("K" & i) = coef_C2H * Range("H" & i) Case Is = "C2D" Range("K" & i) = coef_C2D * Range("H" & i) Case Is = "C2M" Range("K" & i) = coef_C2M * Range("H" & i) Case Else Exit Sub End Select End If Next i 'Calcul du temps fictif For i = 2 To 154 If Range("A" & i) <> "" Then cat = Range("A" & i) Select Case cat Case Is = "K1H" Range("L" & i) = (1000 * Range("K" & i)) / (Range("J" & i) + 1000) Case Is = "K1D" Range("L" & i) = (1000 * Range("K" & i)) / (Range("J" & i) + 1000) Case Is = "C1H" Range("L" & i) = (1000 * Range("K" & i)) / (Range("J" & i) + 1000) Case Is = "C1D" Range("L" & i) = (1000 * Range("K" & i)) / (Range("J" & i) + 1000) Case Is = "C2H" Range("L" & i) = (1000 * Range("K" & i)) / (Range("J" & i) + 1000) Case Is = "C2D" Range("L" & i) = (1000 * Range("K" & i)) / (Range("J" & i) + 1000) Case Is = "C2M" Range("L" & i) = (1000 * Range("K" & i)) / (Range("J" & i) + 1000) Case Else Exit Sub End Select End If Next i 'limite pour temps de base div_N1 = 100 div_N2_PON12 = 200 div_N3_PON23_REG = 500 Range("R1") = "Tps moyen 10" Range("R2") = "Tps moyen 8 - TB" Range("R10") = "Pena" Select Case course Case Is = "1" nb = "=countif(J:J,< "" & div_N1 & "")" If nb >= 10 Then Range("S1").Formula = "=average(L2:L11)" For i = 2 To 11 Range("M" & i).Formula = Range("S1") - Range("L" & i) Next i Range("T1").Formula = "=max(M2:M11)" Range("T2").Formula = "=min(M2:M11)" Range("S2").Formula = "=sumproduct((M2:M11<T1)*(M2:M11>T2)*(L2:L11))/8" For i = 2 To 154 Range("N" & i).Formula = 1000 * (Range("K" & i) - Range("S2")) / Range("S2") Next i Else <bold>Select Case nb Case Is = "9" Range("S10") = 20 Case Is = "8" Range("S10") = 40 Case Is = "7" Range("S10") = 60 Case Is = "6" Range("S10") = 80 Case Is <= "5" MsgBox "Erreur - pas assez de bateaux" Exit Sub Case Else MsgBox "Erreur" Exit Sub End Select</bold> End If Case Is = "2" nb = "=countif(J:J,< ""& div_N2_PON12 &"")" If nb >= 10 Then Range("S1").Formula = "=average(L2:L11)" For i = 2 To 11 Range("M" & i).Formula = Range("S1") - Range("L" & i) Next i Range("T1").Formula = "=max(M2:M11)" Range("T2").Formula = "=min(M2:M11)" Range("S2").Formula = "=sumproduct((M2:M11<T1)*(M2:M11>T2)*(L2:L11))/8" For i = 2 To 154 Range("N" & i).Formula = 1000 * (Range("K" & i) - Range("S2")) / Range("S2") Next i Else <bold> Select Case nb Case Is = "9" Range("S10") = 20 Case Is = "8" Range("S10") = 40 Case Is = "7" Range("S10") = 60 Case Is = "6" Range("S10") = 80 Case Is <= "5" MsgBox "Erreur - pas assez de bateaux" Exit Sub Case Else MsgBox "Erreur" Exit Sub End Select</bold> End If Case Is = "3" nb = "=countif(J:J,< ""& div_N3_PON23_REG &"")" If nb >= 10 Then Range("S1").Formula = "=average(L2:L11)" For i = 2 To 11 Range("M" & i).Formula = Range("S1") - Range("L" & i) Next i Range("T1").Formula = "=max(M2:M11)" Range("T2").Formula = "=min(M2:M11)" Range("S2").Formula = "=sumproduct((M2:M11<T1)*(M2:M11>T2)*(L2:L11))/8" For i = 2 To 154 Range("N" & i).Formula = 1000 * (Range("K" & i) - Range("S2")) / Range("S2") Next i Else Select Case nb <bold>Case Is = "9" Range("S10") = 20 Case Is = "8" Range("S10") = 40 Case Is = "7" Range("S10") = 60 Case Is = "6" Range("S10") = 80 Case Is <= "5" MsgBox "Erreur - pas assez de bateaux" Exit Sub Case Else MsgBox "Erreur" Exit Sub End Select</bold> End If Case Else Exit Sub End Select 'Pena temps ref Range("R11") = "Moyenne 5 tps" Range("R12") = "Pena tps" Range("S11").Formula = "=average(K2:K6)" tps5 = Range("S11").Value Select Case tps5 Case Is < "64" Range("S12") = 90 Case Is <= "83" Range("S12").Formula = "=power(max(0,abs(95-S11)-10),2)/5" Case Else Range("S12") = 0 End Select 'coefficent correcteur Range("R4") = "PN" Range("R5") = "PC" Range("R6") = "C" Range("S4").Formula = "=sum(J2:J154)" Range("S5").Formula = "=sum(N2:N1000)" Range("S6").Formula = "=S4/S5" 'calcul points finaux = points bruts X C + les malus For i = 2 To 154 <bold>Range("T3").Formula = "=left(B"" & i & "",1)" lettre = Range("T3").Value Select Case lettre Case Is = "A" malus_fin = 0 Case Is = "B" malus_fin = 5 Case Else malus_fin = 0 End Select</bold> Range("O" & i) = Range("N" & i) * Range("S6") + Range("S8") + Range("S9") + Range("S10") + Range("S12") + malus_fin Range("P" & i) = Range("O" & i) Next i End Sub
A voir également:
- Erreur 400 excel
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
- Excel moyenne - Guide
7 réponses
Bonjour,
Un exemple de votre fichier avec explications serait le bienvenu.
Pour transmettre un fichier,
Veillez à ce qu'il n'y ait PAS DE DONNEES CONFIDENTIELLES
il faut passer par un site de pièce jointe tel que cjoint.com
Allez sur ce site : https://www.cjoint.com/
Clic sur parcourir,
Cherche ton fichier,
clic sur ouvrir,
Clic sur "Créer le lien cjoint",
Copier le lien,
Revenir ici le coller dans une réponse...
Cordialement
Un exemple de votre fichier avec explications serait le bienvenu.
Pour transmettre un fichier,
Veillez à ce qu'il n'y ait PAS DE DONNEES CONFIDENTIELLES
il faut passer par un site de pièce jointe tel que cjoint.com
Allez sur ce site : https://www.cjoint.com/
Clic sur parcourir,
Cherche ton fichier,
clic sur ouvrir,
Clic sur "Créer le lien cjoint",
Copier le lien,
Revenir ici le coller dans une réponse...
Cordialement
je me doute, je n'ai pas réussi à le joindre tout à l'heure
le voici
https://www.cjoint.com/c/JCArPTRxCLW
le voici
https://www.cjoint.com/c/JCArPTRxCLW
Bonjour a vous deux,
flavinou7263
Hier, je décortiquais votre code quand JCB40 vous a demande votre fichier. En passant, pas simple a utiliser pour avoir une erreur.
Plusieurs choses:
_
_ les lignes de ce genre:
ceci devrait aller mieux:
flavinou7263
Hier, je décortiquais votre code quand JCB40 vous a demande votre fichier. En passant, pas simple a utiliser pour avoir une erreur.
Plusieurs choses:
_
Range("T3").Formula = "=left(B"" & i & "",1)", il y a des doubles cote en trop qui provoque l'erreur
Range("T3").Formula = "=left(B" & i & ",1)"
_ les lignes de ce genre:
nb = "=countif(J:J,< "" & div_N1 & "")", me surprendrais enormement si vous avez un nombre en resultat, meme en corrigeant les erreurs de double cote (
"=countif(J:J,< " & div_N1 & ")")
ceci devrait aller mieux:
nb = Application.CountIf(Columns("J"), "<" & div_N1)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
tous les double ""
ok alors il faut que j'écrive quoi pour compter le nombre de valeur de la colonne J inférieur à ma variable ?