Problème d'execution 13 : incompabilité de type

Bonjour

Je sollicite votre aide sur un problème d'execution 13 : incompabilité de type

J'ai transféré des feuillets excel et des macros d'un fichier dans un autre.

Lors de l’exécution de la macro, j'obtiens le message d'erreur.

Dans le débogage, voici la partie surlignée : If .Cells(debut, 6).Value = "NC" Then GoTo finm

'Pour le calcul avec tolérance m
If .Cells(9, 6).Value = "m" Then
For debut = 12 To nb_ligne
   If .Cells(debut, 5).Value = "" Or IsNumeric(.Cells(debut, 5)) = False Then GoTo finm
        If .Cells(debut, 6).Value = "" Then
    .Cells(debut, 6).Formula = "=VLOOKUP(RC[-1],TOLERANCES_m,2)"
    If .Cells(debut, 6).Value = "NC" Then GoTo finm
    test1 = .Cells(debut, 5).Value + .Cells(debut, 6).Value
    test2 = .Cells(debut, 5).Value - .Cells(debut, 6).Value
    .Cells(debut, 7).Value = test1 & "                                   " & test2
    .Cells(debut, 8).Value = (test1 + test2) / 2
    .Cells(debut, 6).Value = "± " & .Cells(debut, 6).Value
    .Cells(debut, 6).NumberFormat = "General"
   Rows(debut & ":" & debut).Select
     Selection.RowHeight = 25
    End If
finm:  Next
End If

Vous remerciant par avance pour votre aide précieuse

Bonjour,

Il faut que ton code commence au mois par Sub LeNomQueTuVeux () et se termine par un End Sub

De plus Le fait que ton code soit écrir dans le style de .Cells(Etc... Le code attent une référence avant le . Il faut donc que tu rajoute en début de code un With Sheets("LeNomDeLaFeuille") et avant le End Sub un End With

Bonjour GGautier.

Merci pour ce retour.

C'est déjà le cas (je n'avais mis que la zone à problème)

voici tout le code de la macro :

Sub Macro1_2()
Set fs = Sheets("Fiche de contrôle")

Dim x

If Sheets("Fiche de contrôle").Cells(9, 6).Value = "autre ±" Then
If Sheets("Fiche de contrôle").Cells(9, 7).Value = "" Or Sheets("Fiche de contrôle").Cells(9, 8).Value = "" Or Sheets("Fiche de contrôle").Cells(9, 7).Value < Sheets("Fiche de contrôle").Cells(9, 8).Value Then
GoTo finep
End If
End If

With fs
    ' Cherche le dernier numéro de ligne
    nb_ligne = Range("e100").End(xlUp).Row
    'nb_ligne = Cells.SpecialCells(xlLastCell).Row
    colonne = 5

'Vérication des valeurs inscrites sur la feuilles
For debut = 12 To nb_ligne
If .Cells(debut, 5).Value = "" Or IsNumeric(.Cells(debut, 5)) = False Then GoTo netp
If .Cells(debut, 5).Value < 0.5 Then
.Cells(debut, 5).Select
Valtest = InputBox("La valeur contenue dans la cellule selectionnée n'est pas valide, merci de bien vouloir entrer une valeur valide ci-dessous", "Erreur détectée")
.Cells(debut, 5).Value = Valtest
'"Erreur détectée sur la cellule sélectionnée", vbRetryCancel + vbCritical, "Erreur détectée"
End If
netp:  Next

'Pour le calcul avec tolérance m
If .Cells(9, 6).Value = "m" Then
For debut = 12 To nb_ligne
   If .Cells(debut, 5).Value = "" Or IsNumeric(.Cells(debut, 5)) = False Then GoTo finm
        If .Cells(debut, 6).Value = "" Then
    .Cells(debut, 6).Formula = "=VLOOKUP(RC[-1],TOLERANCES_m,2)"
    If .Cells(debut, 6).Value = "NC" Then GoTo finm
    test1 = .Cells(debut, 5).Value + .Cells(debut, 6).Value
    test2 = .Cells(debut, 5).Value - .Cells(debut, 6).Value
    .Cells(debut, 7).Value = test1 & "                                   " & test2
    .Cells(debut, 8).Value = (test1 + test2) / 2
    .Cells(debut, 6).Value = "± " & .Cells(debut, 6).Value
    .Cells(debut, 6).NumberFormat = "General"
   Rows(debut & ":" & debut).Select
     Selection.RowHeight = 25
    End If
finm:  Next
End If

'Pour le calcul avec tolérance f
If .Cells(9, 6).Value = "f" Then
For debut = 12 To nb_ligne
   If .Cells(debut, 5).Value = "" Or IsNumeric(.Cells(debut, 5)) = False Then GoTo finf
        If .Cells(debut, 6).Value = "" Then
    .Cells(debut, 6).Formula = "=VLOOKUP(RC[-1],TOLERANCES_f,2)"
    If .Cells(debut, 6).Value = "NC" Then GoTo finf
    test1 = .Cells(debut, 5).Value + .Cells(debut, 6).Value
    test2 = .Cells(debut, 5).Value - .Cells(debut, 6).Value
    .Cells(debut, 7).Value = test1 & "                                    " & test2
    .Cells(debut, 8).Value = (test1 + test2) / 2
    .Cells(debut, 6).Value = "± " & .Cells(debut, 6).Value
    .Cells(debut, 6).NumberFormat = "General"
       Rows(debut & ":" & debut).Select
     Selection.RowHeight = 25
    End If
finf:  Next
End If

'Pour le calcul avec tolérance c
If .Cells(9, 6).Value = "c" Then
For debut = 12 To nb_ligne
   If .Cells(debut, 5).Value = "" Or IsNumeric(.Cells(debut, 5)) = False Then GoTo finc
        If .Cells(debut, 6).Value = "" Then
    .Cells(debut, 6).Formula = "=VLOOKUP(RC[-1],TOLERANCES_c,2)"
    If .Cells(debut, 6).Value = "NC" Then GoTo finc
    test1 = .Cells(debut, 5).Value + .Cells(debut, 6).Value
    test2 = .Cells(debut, 5).Value - .Cells(debut, 6).Value
    .Cells(debut, 7).Value = test1 & "                                      " & test2
    .Cells(debut, 8).Value = (test1 + test2) / 2
    .Cells(debut, 6).Value = "± " & .Cells(debut, 6).Value
    .Cells(debut, 6).NumberFormat = "General"
       Rows(debut & ":" & debut).Select
     Selection.RowHeight = 25
     End If
finc:  Next
End If

'Pour le calcul avec tolérance v
If .Cells(9, 6).Value = "v" Then
For debut = 12 To nb_ligne
   If .Cells(debut, 5).Value = "" Or IsNumeric(.Cells(debut, 5)) = False Then GoTo finv
        If .Cells(debut, 6).Value = "" Then
    .Cells(debut, 6).Formula = "=VLOOKUP(RC[-1],TOLERANCES_v,2)"
    If .Cells(debut, 6).Value = "NC" Then GoTo finv
    test1 = .Cells(debut, 5).Value + .Cells(debut, 6).Value
    test2 = .Cells(debut, 5).Value - .Cells(debut, 6).Value
    .Cells(debut, 7).Value = test1 & "                                        " & test2
    .Cells(debut, 8).Value = (test1 + test2) / 2
    .Cells(debut, 6).Value = "± " & .Cells(debut, 6).Value
    .Cells(debut, 6).NumberFormat = "General"
       Rows(debut & ":" & debut).Select
     Selection.RowHeight = 25
    End If
finv:  Next
End If

'Pour le calcul avec tolérance JS13
If .Cells(9, 6).Value = "JS13" Then
For debut = 12 To nb_ligne
   If .Cells(debut, 5).Value = "" Or IsNumeric(.Cells(debut, 5)) = False Then GoTo finJS13
        If .Cells(debut, 6).Value = "" Then
    .Cells(debut, 6).NumberFormat = "± 0.000"
    .Cells(debut, 6).Formula = "=VLOOKUP(RC[-1],TOLERANCES_JS13,2)"
    If .Cells(debut, 6).Value = "NC" Then GoTo finJS13
    test1 = .Cells(debut, 5).Value + .Cells(debut, 6).Value
    test2 = .Cells(debut, 5).Value - .Cells(debut, 6).Value
    .Cells(debut, 7).Value = test1 & "                                         " & test2
    .Cells(debut, 8).Value = (test1 + test2) / 2
    .Cells(debut, 6).Value = "± " & .Cells(debut, 6).Value
    .Cells(debut, 6).NumberFormat = "General"
       Rows(debut & ":" & debut).Select
     Selection.RowHeight = 25
    End If
finJS13:  Next
End If

'Pour le calcul avec tolérance JS12
If .Cells(9, 6).Value = "JS12" Then
For debut = 12 To nb_ligne
   If .Cells(debut, 5).Value = "" Or IsNumeric(.Cells(debut, 5)) = False Then GoTo finJS12
        If .Cells(debut, 6).Value = "" Then
    .Cells(debut, 6).NumberFormat = "± 0.000"
    .Cells(debut, 6).Formula = "=VLOOKUP(RC[-1],TOLERANCES_JS12,2)"
    If .Cells(debut, 6).Value = "NC" Then GoTo finJS13
    test1 = .Cells(debut, 5).Value + .Cells(debut, 6).Value
    test2 = .Cells(debut, 5).Value - .Cells(debut, 6).Value
    .Cells(debut, 7).Value = test1 & "                                         " & test2
    .Cells(debut, 8).Value = (test1 + test2) / 2
    .Cells(debut, 6).Value = "± " & .Cells(debut, 6).Value
    .Cells(debut, 6).NumberFormat = "General"
       Rows(debut & ":" & debut).Select
     Selection.RowHeight = 25
    End If
finJS12:  Next
End If

'Pour le calcul avec tolérance JS14
If .Cells(9, 6).Value = "JS14" Then
For debut = 12 To nb_ligne
   If .Cells(debut, 5).Value = "" Or IsNumeric(.Cells(debut, 5)) = False Then GoTo finJS14
        If .Cells(debut, 6).Value = "" Then
    .Cells(debut, 6).NumberFormat = "± 0.000"
    .Cells(debut, 6).Formula = "=VLOOKUP(RC[-1],TOLERANCES_JS14,2)"
    If .Cells(debut, 6).Value = "NC" Then GoTo finJS13
    test1 = .Cells(debut, 5).Value + .Cells(debut, 6).Value
    test2 = .Cells(debut, 5).Value - .Cells(debut, 6).Value
    .Cells(debut, 7).Value = test1 & "                                         " & test2
    .Cells(debut, 8).Value = (test1 + test2) / 2
    .Cells(debut, 6).Value = "± " & .Cells(debut, 6).Value
    .Cells(debut, 6).NumberFormat = "General"
       Rows(debut & ":" & debut).Select
     Selection.RowHeight = 25
    End If
finJS14:  Next
End If

'Pour le calcul avec tolérance H13

If .Cells(9, 6).Value = "H13" Then
For debut = 12 To nb_ligne
   If .Cells(debut, 5).Value = "" Or IsNumeric(.Cells(debut, 5)) = False Then GoTo finH13
        If .Cells(debut, 6).Value = "" Then
    .Cells(debut, 6).NumberFormat = "+0.000"
    .Cells(debut, 6).Formula = "=VLOOKUP(RC[-1],TOLERANCE_H13,2)"
    If .Cells(debut, 6).Value = "NC" Then GoTo finH13
    test1 = .Cells(debut, 5).Value + .Cells(debut, 6).Value
    test2 = .Cells(debut, 5).Value
    .Cells(debut, 7).Value = test1 & "                                         " & test2
    .Cells(debut, 8).Value = (test1 + test2) / 2
    .Cells(debut, 6).Value = "+" & .Cells(debut, 6).Value & "                         +0.00"
    .Cells(debut, 6).NumberFormat = "General"
       Rows(debut & ":" & debut).Select
     Selection.RowHeight = 25
    End If
finH13:  Next
End If

'Pour le calcul avec tolérance H11

If .Cells(9, 6).Value = "H11" Then
For debut = 12 To nb_ligne
   If .Cells(debut, 5).Value = "" Or IsNumeric(.Cells(debut, 5)) = False Then GoTo finH11
        If .Cells(debut, 6).Value = "" Then
    .Cells(debut, 6).NumberFormat = "+0.000"
    .Cells(debut, 6).Formula = "=VLOOKUP(RC[-1],TOLERANCE_H11,2)"
    If .Cells(debut, 6).Value = "NC" Then GoTo finH11
    test1 = .Cells(debut, 5).Value + .Cells(debut, 6).Value
    test2 = .Cells(debut, 5).Value
    .Cells(debut, 7).Value = test1 & "                                         " & test2
    .Cells(debut, 8).Value = (test1 + test2) / 2
    .Cells(debut, 6).Value = "+" & .Cells(debut, 6).Value & "                         +0.00"
    .Cells(debut, 6).NumberFormat = "General"
       Rows(debut & ":" & debut).Select
     Selection.RowHeight = 25
    End If
finH11:  Next
End If

'Pour le calcul avec tolérance +/-
If .Cells(9, 6).Value = "autre ±" Then
For debut = 12 To nb_ligne
   If .Cells(debut, 5).Value = "" Or IsNumeric(.Cells(debut, 5)) = False Then GoTo finau2
   If .Cells(debut, 6).Value = "" Then
    .Cells(debut, 6).NumberFormat = "± 0.000"
    test5 = .Cells(debut, 5).Value + .Cells(9, 7).Value
    test6 = .Cells(debut, 5).Value + .Cells(9, 8).Value
    .Cells(debut, 7).Value = test5 & "                                                    " & test6
    .Cells(debut, 8).Value = (test5 + test6) / 2
    If .Cells(9, 7).Value > 0 And .Cells(9, 8).Value > 0 Then
    .Cells(debut, 6).Value = "+ " & .Cells(9, 7).Value & "                                " & "+ " & .Cells(9, 8).Value
    End If
     If .Cells(9, 7).Value > 0 And .Cells(9, 8).Value = 0 Then
    .Cells(debut, 6).Value = "+ " & .Cells(9, 7).Value & "                                " & .Cells(9, 8).Value
    End If
      If .Cells(9, 7).Value > 0 And .Cells(9, 8).Value < 0 Then
    .Cells(debut, 6).Value = "+ " & .Cells(9, 7).Value & "                                " & "- " & Abs(.Cells(9, 8).Value)
    End If
     If .Cells(9, 7).Value = 0 And .Cells(9, 8).Value < 0 Then
    .Cells(debut, 6).Value = .Cells(9, 7).Value & "                                       " & "- " & Abs(.Cells(9, 8).Value)
    End If
     If .Cells(9, 7).Value < 0 And .Cells(9, 8).Value < 0 Then
    .Cells(debut, 6).Value = "- " & Abs(.Cells(9, 7).Value) & "                           " & "- " & Abs(.Cells(9, 8).Value)
    End If
    .Cells(debut, 6).NumberFormat = "General"
       Rows(debut & ":" & debut).Select
     Selection.RowHeight = 25
    End If
finau2:  Next
End If

'Pour le calcul avec tolérance ±
Range("U1").Value = "=IF(ISNUMBER(R9C6)=TRUE,R9C6,0)"
Test0 = Range("U1").Value
Range("U1").Value = ""
If Test0 <> 0 Then

For debut = 12 To nb_ligne
   If .Cells(debut, 5).Value = "" Or IsNumeric(.Cells(debut, 5)) = False Then GoTo finau
   If .Cells(debut, 6).Value = "" Then
    .Cells(debut, 6).NumberFormat = "± 0.0"
    test1 = .Cells(debut, 5).Value + .Cells(9, 6).Value
    test2 = .Cells(debut, 5).Value - .Cells(9, 6).Value
    .Cells(debut, 7).Value = test1 & "                                                      " & test2
    .Cells(debut, 8).Value = (test1 + test2) / 2
    .Cells(debut, 6).Value = "± " & .Cells(9, 6).Value
    .Cells(debut, 6).NumberFormat = "General"
       Rows(debut & ":" & debut).Select
     Selection.RowHeight = 25
    End If
finau:  Next
End If
.Cells(9, 7).Value = ""
.Cells(9, 8).Value = ""

'Calcul de la tolérance sur épaisseur de planche
If .Cells(11, 5).Value = "" Then GoTo finep

'Remplissage tolérance si pas déjà fait
If .Cells(11, 6).Value <= 0 Then

'Remplissage tolérance épaisseur PF CP tous types (Papier bakélisé)
If .Cells(6, 15).Value = "PF CP tous types (Papier bakélisé)" Then
.Cells(11, 6).Select
Selection.FormulaArray = _
        "=INDEX(épaisseurs!R[-4]C[-4]:R[28]C[-4],MATCH(MIN(IF(épaisseurs!R[-4]C[-5]:R[28]C[-5]>=RC[-1],épaisseurs!R[-4]C[-5]:R[28]C[-5])),épaisseurs!R[-4]C[-5]:R[28]C[-5],0))"
    ep1 = .Cells(11, 5).Value + .Cells(11, 6).Value
    ep2 = .Cells(11, 5).Value - .Cells(11, 6).Value
    .Cells(11, 7).Value = ep1 & "             " & ep2
    .Cells(11, 8).Value = (ep1 + ep2) / 2
    .Cells(11, 6).Value = "± " & .Cells(11, 6).Value
    .Cells(11, 6).NumberFormat = "General"
GoTo finep
End If

'Remplissage tolérance épaisseur PF CC 201 PF CC203 (Toile bakélisée)
If .Cells(6, 15).Value = "PF CC 201 PF CC203 (Toile bakélisée)" Then
.Cells(11, 6).Select
    Selection.FormulaArray = _
        "=INDEX(épaisseurs!R[-4]C[-3]:R[28]C[-3],MATCH(MIN(IF(épaisseurs!R[-4]C[-5]:R[28]C[-5]>=RC[-1],épaisseurs!R[-4]C[-5]:R[28]C[-5])),épaisseurs!R[-4]C[-5]:R[28]C[-5],0))"
    ep1 = .Cells(11, 5).Value + .Cells(11, 6).Value
    ep2 = .Cells(11, 5).Value - .Cells(11, 6).Value
    .Cells(11, 7).Value = ep1 & "             " & ep2
    .Cells(11, 8).Value = (ep1 + ep2) / 2
    .Cells(11, 6).Value = "± " & .Cells(11, 6).Value
    .Cells(11, 6).NumberFormat = "General"
    GoTo finep
End If

'Remplissage tolérance épaisseur UPGM 204-203-205-201 (Mat de verre)
If .Cells(6, 15).Value = "UPGM 204-203-205-201 (Mat de verre polyester)" Then
.Cells(11, 6).Select
    Selection.FormulaArray = _
        "=INDEX(épaisseurs!R[-4]C[-2]:R[28]C[-2],MATCH(MIN(IF(épaisseurs!R[-4]C[-5]:R[28]C[-5]>=RC[-1],épaisseurs!R[-4]C[-5]:R[28]C[-5])),épaisseurs!R[-4]C[-5]:R[28]C[-5],0))"
    ep1 = .Cells(11, 5).Value + .Cells(11, 6).Value
    ep2 = .Cells(11, 5).Value - .Cells(11, 6).Value
    .Cells(11, 7).Value = ep1 & "             " & ep2
    .Cells(11, 8).Value = (ep1 + ep2) / 2
    .Cells(11, 6).Value = "± " & .Cells(11, 6).Value
    .Cells(11, 6).NumberFormat = "General"
    GoTo finep
End If

'Remplissage tolérance épaisseur EP GC 201-202-203-204-306-308 Tissus de verre
If .Cells(6, 15).Value = "EP GC 201-202-203-204-306-308 (Tissus de verre)" Then
.Cells(11, 6).Select
    Selection.FormulaArray = _
        "=INDEX(épaisseurs!R[-4]C[-1]:R[28]C[-1],MATCH(MIN(IF(épaisseurs!R[-4]C[-5]:R[28]C[-5]>=RC[-1],épaisseurs!R[-4]C[-5]:R[28]C[-5])),épaisseurs!R[-4]C[-5]:R[28]C[-5],0))"
    ep1 = .Cells(11, 5).Value + .Cells(11, 6).Value
    ep2 = .Cells(11, 5).Value - .Cells(11, 6).Value
    .Cells(11, 7).Value = ep1 & "             " & ep2
    .Cells(11, 8).Value = (ep1 + ep2) / 2
    .Cells(11, 6).Value = "± " & .Cells(11, 6).Value
    .Cells(11, 6).NumberFormat = "General"
    GoTo finep
End If

'Remplissage tolérance épaisseur EP GM 203-204 (Mat de verre)
If .Cells(6, 15).Value = "EP GM 203-204 (Mat de verre epoxy)" Then
.Cells(11, 6).Select
    Selection.FormulaArray = _
        "=INDEX(épaisseurs!R[-4]C[0]:R[28]C[0],MATCH(MIN(IF(épaisseurs!R[-4]C[-5]:R[28]C[-5]>=RC[-1],épaisseurs!R[-4]C[-5]:R[28]C[-5])),épaisseurs!R[-4]C[-5]:R[28]C[-5],0))"
    ep1 = .Cells(11, 5).Value + .Cells(11, 6).Value
    ep2 = .Cells(11, 5).Value - .Cells(11, 6).Value
    .Cells(11, 7).Value = ep1 & "             " & ep2
    .Cells(11, 8).Value = (ep1 + ep2) / 2
    .Cells(11, 6).Value = "± " & .Cells(11, 6).Value
    .Cells(11, 6).NumberFormat = "General"
    GoTo finep
End If

'Remplissage tolérance épaisseur SI GC 202 (Tissus verre silicone)
If .Cells(6, 15).Value = "SI GC 202 (Tissus de verre silicone)" Then
.Cells(11, 6).Select
    Selection.FormulaArray = _
        "=INDEX(épaisseurs!R[-4]C[1]:R[28]C[1],MATCH(MIN(IF(épaisseurs!R[-4]C[-5]:R[28]C[-5]>=RC[-1],épaisseurs!R[-4]C[-5]:R[28]C[-5])),épaisseurs!R[-4]C[-5]:R[28]C[-5],0))"
    ep1 = .Cells(11, 5).Value + .Cells(11, 6).Value
    ep2 = .Cells(11, 5).Value - .Cells(11, 6).Value
    .Cells(11, 7).Value = ep1 & "             " & ep2
    .Cells(11, 8).Value = (ep1 + ep2) / 2
    .Cells(11, 6).Value = "± " & .Cells(11, 6).Value
    .Cells(11, 6).NumberFormat = "General"
    GoTo finep
End If

'Remplissage tolérance épaisseur PI GC 301 302 Tissus de verre
If .Cells(6, 15).Value = "PI GC 301 (Tissus de verre polyimide)" Then
.Cells(11, 6).Select
    Selection.FormulaArray = _
        "=INDEX(épaisseurs!R[-4]C[2]:R[28]C[2],MATCH(MIN(IF(épaisseurs!R[-4]C[-5]:R[28]C[-5]>=RC[-1],épaisseurs!R[-4]C[-5]:R[28]C[-5])),épaisseurs!R[-4]C[-5]:R[28]C[-5],0))"
    ep1 = .Cells(11, 5).Value + .Cells(11, 6).Value
    ep2 = .Cells(11, 5).Value - .Cells(11, 6).Value
    .Cells(11, 7).Value = ep1 & "             " & ep2
    .Cells(11, 8).Value = (ep1 + ep2) / 2
    .Cells(11, 6).Value = "± " & .Cells(11, 6).Value
    .Cells(11, 6).NumberFormat = "General"
    GoTo finep
End If

'Remplissage tolérance épaisseur MICA
If .Cells(6, 15).Value = "MICA" Then
    'Récupération de la tolérance max
.Cells(11, 6).Select
    Selection.FormulaArray = _
    "=INDEX(épaisseurs!R[-4]C[3]:R[28]C[3],MATCH(MIN(IF(épaisseurs!R[-4]C[-5]:R[28]C[-5]>=RC[-1],épaisseurs!R[-4]C[-5]:R[28]C[-5])),épaisseurs!R[-4]C[-5]:R[28]C[-5],0))"
tolplus = .Cells(11, 6).Value
    'Récupération de la tolérance min
.Cells(11, 6).Select
    Selection.FormulaArray = _
    "=INDEX(épaisseurs!R[-4]C[4]:R[28]C[4],MATCH(MIN(IF(épaisseurs!R[-4]C[-5]:R[28]C[-5]>=RC[-1],épaisseurs!R[-4]C[-5]:R[28]C[-5])),épaisseurs!R[-4]C[-5]:R[28]C[-5],0))"
tolmoins = .Cells(11, 6).Value
.Cells(11, 6).Value = "+" & tolplus & "             " & "-" & tolmoins

    ep1 = .Cells(11, 5).Value + tolplus
    ep2 = .Cells(11, 5).Value - tolmoins
    .Cells(11, 7).Value = ep1 & "             " & ep2
    .Cells(11, 8).Value = (ep1 + ep2) / 2
    GoTo finep
End If

'Remplissage tolérance épaisseur C THERM
If .Cells(6, 15).Value = "C THERM" Then
.Cells(11, 6).Select
    Selection.FormulaArray = _
        "=INDEX(épaisseurs!R[-4]C[5]:R[28]C[5],MATCH(MIN(IF(épaisseurs!R[-4]C[-5]:R[28]C[-5]>=RC[-1],épaisseurs!R[-4]C[-5]:R[28]C[-5])),épaisseurs!R[-4]C[-5]:R[28]C[-5],0))"
    ep1 = .Cells(11, 5).Value + .Cells(11, 6).Value
    ep2 = .Cells(11, 5).Value - .Cells(11, 6).Value
    .Cells(11, 7).Value = ep1 & "             " & ep2
    .Cells(11, 8).Value = (ep1 + ep2) / 2
    .Cells(11, 6).Value = "± " & .Cells(11, 6).Value
    .Cells(11, 6).NumberFormat = "General"
    GoTo finep
End If

'Remplissage tolérance épaisseur DELTHERM
If .Cells(6, 15).Value = "DELTHERM" Then
.Cells(11, 6).Select
    Selection.FormulaArray = _
        "=INDEX(épaisseurs!R[-4]C[6]:R[28]C[6],MATCH(MIN(IF(épaisseurs!R[-4]C[-5]:R[28]C[-5]>=RC[-1],épaisseurs!R[-4]C[-5]:R[28]C[-5])),épaisseurs!R[-4]C[-5]:R[28]C[-5],0))"
    ep1 = .Cells(11, 5).Value + .Cells(11, 6).Value
    ep2 = .Cells(11, 5).Value - .Cells(11, 6).Value
    .Cells(11, 7).Value = ep1 & "             " & ep2
    .Cells(11, 8).Value = (ep1 + ep2) / 2
    .Cells(11, 6).Value = "± " & .Cells(11, 6).Value
    .Cells(11, 6).NumberFormat = "General"
    GoTo finep
End If

'Remplissage tolérance épaisseur MELAMINE
If .Cells(6, 15).Value = "MF GC 201" Then
.Cells(11, 6).Select
    Selection.FormulaArray = _
        "=INDEX(épaisseurs!R[-4]C[7]:R[28]C[7],MATCH(MIN(IF(épaisseurs!R[-4]C[-5]:R[28]C[-5]>=RC[-1],épaisseurs!R[-4]C[-5]:R[28]C[-5])),épaisseurs!R[-4]C[-5]:R[28]C[-5],0))"
    ep1 = .Cells(11, 5).Value + .Cells(11, 6).Value
    ep2 = .Cells(11, 5).Value - .Cells(11, 6).Value
    .Cells(11, 7).Value = ep1 & "             " & ep2
    .Cells(11, 8).Value = (ep1 + ep2) / 2
    .Cells(11, 6).Value = "± " & .Cells(11, 6).Value
    .Cells(11, 6).NumberFormat = "General"
    GoTo finep
End If

End If
finep:

End With
End Sub

Salut

Quel est la valeur de la cellule de la variable "debut" quand cela plante. Et surtout, quel est la valeur de la cellule ? la valeur de la cellule ne serait pas en #N/A ou #div/0

Jers

Bonjour Jers

Début = 12

Dans la cellule (12,6), j'ai la formule suivante : "=RECHERCHEV(E12;TOLERANCES_m;2)"

qui me renvoie la valeur #REF!

Merci d'avance pour l'aide apportée

EDIT : Je n'avais pas vu votre dernier message ! La première chose à faire est donc de régler le problème de référence dans la formule, dans le cas ou c'est "normal" il faut utiliser la formule =SIERREUR(RECHERCHEV(E12;TOLERANCES_m;2);"")

je viens de tenter a l'instant ... même problème avec même valeur ://

J'ai modifier mon précédent message

bonjour

GGautier, rebonjour

à quoi sert ce code ?

note : il faut commenter son code, en commençant par lui mettre un titre

amitiés

@GGautier : quand je mets cette formule, je n'ai pas de valeur.

ce qui est étonnant car dans le fichier excel d'origine, l'obtient bien des valeur

@jmd

bonjour

c'est un fichier excel qui permet de réaliser des fichiers de contrôle (usinage de pièces mécanique) de manière automatique.

on met une cote, on indique la tolérance générale et avec ce code, est indiquée dans la fameuse cellule, les tolérances pour la bonne fabrication.

ce fichier est un "vieux" fichier excel réalisé par un ancien stagiaire et qui est utilisé par la société.

je souhaite repartir de cette base pour incorporer d'autres modifications.

Le fait que tu es un problème de #Ref, je comprend pas pourquoi tu dis que ton fichier d'origine te renvois bien une valeur

j'avoue ne pas trop comprendre le problème.

j'ai contourné mon pb : au lieu d'ajouter les "vieux feuillets" dans mon nouveau classeur, j'ai ajouté mes nouvelles fonctions dans l'ancien et la, les macros fonctionnent correctement.

je n'ai pas trouvé le problème de fond mais mon fichier fonctionne.

merci pour votre aide

Rechercher des sujets similaires à "probleme execution incompabilite type"