Erreur 424 objet requis
Bonjour tout le monde j'espère que vous allez bien
je viens de comprendre les tableaux structurés vba , pour cela je peux pas fixer les erreurs facilement et j'arrive pas à comprendre la raison
dans mon code y'a une erreur 424 qui dit objet requis
ligne 83 , je pense c'est un erreur de syntaxe
je peux pas partager le fichier psq c'est confidentiel
merci pour votre aide
Sub Traiter_Extract_ALTIS()
'Repère des colonnes
Const C_A = 1, C_B = 2, C_C = 3, C_D = 4, C_E = 5, C_F = 6, C_G = 7, C_H = 8, C_I = 9, C_J = 10, C_K = 11, C_L = 12, C_M = 13, C_N = 14, C_O = 15, C_P = 16, C_Q = 17, C_R = 18, C_S = 19, C_T = 20, C_U = 21, C_V = 22, C_W = 23, C_X = 24, C_Y = 25, C_Z = 26, C_AA = 27, C_AB = 28, C_AC = 29, C_AD = 30, C_AE = 31, C_AF = 32, C_AG = 33, C_AH = 34, C_AI = 35, C_AJ = 36, C_AK = 37, C_AL = 38, C_AM = 39, C_AN = 40, C_AO = 41, C_AP = 42, C_AQ = 43, C_AR = 44, C_AS = 45, C_AT = 46, C_AU = 47, C_AV = 48, C_AW = 49, C_AX = 50, C_AY = 51, C_AZ = 52, C_BA = 53, C_BB = 54, C_BC = 55, C_BD = 56, C_BE = 57, C_BF = 58, C_BG = 59, C_BH = 60, C_BI = 61, C_BJ = 62, C_BK = 63, C_BL = 64, C_BM = 65, C_BN = 66, C_BO = 67, C_BP = 68, C_BQ = 69, C_BR = 70, C_BS = 71, C_BT = 72, C_BU = 73, C_BV = 74, C_BW = 75, C_BX = 76
Dim Sh_ALTIS As Worksheet, Sh_Accueil As Worksheet, Sh_N As Worksheet, Sh_N_1 As Worksheet
Dim Tout, TbRés
With ThisWorkbook
Set Sh_Accueil = .Worksheets("Accueil")
Set Sh_ALTIS = .Worksheets("Vierge")
Set Sh_N = .Worksheets("FS_semaine N")
Set Sh_N_1 = .Worksheets("FS_semaine N-1")
End With
Application.ScreenUpdating = False
FormulesAccueil = Sh_Accueil.[M4:S13].Formula
With Sh_ALTIS
'Pas de lignes filtrées
If .FilterMode Then .ShowAllData
.AutoFilterMode = False
'Récupération des données de l'extraction (à partir de la ligne 3)
Tout = .UsedRange.Offset(2).Resize(.UsedRange.Rows.Count - 2).Value
Application.DisplayAlerts = False: .Delete: Application.DisplayAlerts = True
End With
With ThisWorkbook: .Worksheets.Add after:=.Worksheets(.Worksheets.Count): End With
ActiveSheet.Name = "Vierge"
'Première ligne
Tout(1, C_X) = IIf(Tout(2, C_O) = "", Tout(1, C_X) & " " & Tout(2, C_X), Tout(1, C_X))
'Comptage des fiches à retenir (Col O <>"" et <>0)
nbFiches = 0
nbFiches = nbFiches + (Abs(Tout(1, C_O) <> "") And Tout(1, C_O) <> "0" And Tout(1, C_O) <> 0)
'Jusqu'à l'avant-dernière
For i = 2 To UBound(Tout) - 1
'Compléter les valeurs des cellules fusionnées utilisées
If Tout(i, C_S) = "" Then Tout(i, C_S) = Tout(i - 1, C_S)
If Tout(i, C_T) = "" Then Tout(i, C_T) = Tout(i - 1, C_T)
If Tout(i, C_AA) = "" Then Tout(i, C_AA) = Tout(i - 1, C_AA)
If Tout(i, C_AE) = "" Then Tout(i, C_AE) = Tout(i - 1, C_AE)
If Tout(i, C_AG) = "" Then Tout(i, C_AG) = Tout(i - 1, C_AG)
If Tout(i, C_AI) = "" Then Tout(i, C_AI) = Tout(i - 1, C_AI)
If Tout(i, C_AK) = "" Then Tout(i, C_AK) = Tout(i - 1, C_AK)
If Tout(i, C_AL) = "" Then Tout(i, C_AL) = Tout(i - 1, C_AL)
Tout(i, C_X) = IIf(Tout(i + 1, C_O) = "", Tout(i, C_X) & " " & Tout(i + 1, C_X), Tout(1, C_X))
'Comptage des fiches à retenir (Col O <>"" et <>0)
nbFiches = nbFiches + (Abs(Tout(i, C_O) <> "") And Tout(i, C_O) <> "0" And Tout(i, C_O) <> 0)
Next i
'Dernière ligne
nbFiches = nbFiches + (Abs(Tout(i, C_O) <> "") And Tout(i, C_O) <> "0" And Tout(i, C_O) <> 0)
'Dimensionnement du tableau résultat
ReDim TbRés(C_A To nbFiches, 1 To C_O)
j = 0
For i = 1 To UBound(Tout)
If Tout(i, C_O) <> "" Then
j = j + 1
TbRés(j, C_A) = Tout(i, C_O)
TbRés(j, C_B) = Tout(i, C_S)
TbRés(j, C_C) = Tout(i, C_T)
TbRés(j, C_D) = Tout(i, C_W)
TbRés(j, C_E) = Evaluate("=IFERROR(VLOOKUP(" & TbRés(1, C_A) & ",Tb_SN,5,FALSE),""NEW / à éclaircir"")")
TbRés(j, C_F) = Tout(i, C_AA)
Select Case TbRés(j, C_F)
Case "INITIALIZATION": TbRés(j, C_G) = Tout(i, C_AE)
Case "INSTRUCTION": TbRés(j, C_G) = Tout(i, C_AG)
Case "DEVELOPMENT": TbRés(j, C_G) = Tout(i, C_AI)
Case "OFFICIALIZATION - INDUSTRIALIZATION": TbRés(j, C_G) = Tout(i, C_AK)
Case Else: TbRés(j, C_G) = Tout(i, C_AL)
End Select
TbRés(j, C_I) = Tout(i, C_X)
TbRés(j, C_J) = Evaluate("=IFERROR(VLOOKUP(" & TbRés(1, C_A) & ",Tb_SN,9,FALSE),""NEW / à classer"")")
TbRés(j, C_K) = Evaluate("=IFERROR(VLOOKUP(" & TbRés(1, C_A) & ",Tb_SN,10,FALSE),""NEW / à programmer"")")
TbRés(j, C_L) = Evaluate("=IFERROR(VLOOKUP(" & TbRés(1, C_A) & ",Tb_SN,11,FALSE),"""")")
TbRés(j, C_M) = Evaluate("=IFERROR(VLOOKUP(" & TbRés(1, C_A) & ",Tb_SN,13,FALSE),"""")")
TbRés(j, C_N) = Evaluate("=IFERROR(VLOOKUP(" & TbRés(1, C_A) & ",Tb_SN,14,FALSE),"""")")
TbRés(j, C_O) = Evaluate("=IFERROR(VLOOKUP(" & TbRés(1, C_A) & ",Tb_SN,15,FALSE),"""")")
End If
Next i
With Sh_N
'Lectures des données de l'ancienne semaine N
Tout = .[Tb_Sn].Value '********* ligne erreur
'Remplissage semaine N avec les données de la nouvelle extraction
.[Tb_Sn].ClearContents
.[Tb_Sn].ListObject.Resize .[Tb_Sn].ListObject.Range.Resize(UBound(TbRés))
.[Tb_Sn].Value = TbRés
End With
' Identification dans Tout des FS de l'ancienne semaine N absentes de la nouvelle extraction
With WorksheetFunction
For i = 1 To UBound(Tout)
Tout(i, C_F) = Evaluate("=IFERROR(VLOOKUP(" & Tout(i, C_A) & ",Tb_SN,6,FALSE),""soldé ou abandonné"")")
Tout(i, C_G) = Evaluate("=IFERROR(VLOOKUP(" & Tout(i, C_A) & ",Tb_SN,7,FALSE),""soldé ou abandonné"")")
Next
End With
'Transfert vers la semaine N-1
With Sh_N_1
'Remplissage semaine N-1 avec les données de l'ancienne semaine N
.[Tb_Sn_1].ClearContents
.[Tb_Sn_1].ListObject.Resize .[Tb_Sn_1].ListObject.Range.Resize(UBound(Tout))
.[Tb_Sn_1].Value = Tout
End With
Application.ScreenUpdating = True
End SubBonjour Plic
vous vous en doutez, il est impossible de détecter où se situe l'erreur avec votre code qui doit faire près de 100 lignes sans disposer du fichier source.
une suggestion, mais je pense que vous avez déjà regardé. Lors de l'erreur, vous devez être positionné sur la ligne de code en erreur;
Mettez un point d'arrêt juste avant.
ré exécutez le code jusqu'au point d'arrêt. Ajoutez des espions sur toutes les variables suspectes.
çà vous permettra d'éliminer certaines pistes d'erreurs.
Bonne chance