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