ERREUR 1004 VBA

Bonjour,

je rencontre une erreur 1004 dont j'ignore l'origine dans mon code. Merci de votre aide car je coince depuis 3 jours et je suis entrain de prendre un gros retard. voici mon code:

Sub Calcul_MinNbkm()
'
' Calcul_MinNbkm Macro
' Macro enregistrée le 20/06/2011 par Administrateur
'

Dim wsCount As Integer
Dim nbFournisseurs As Integer
nbFournisseurs = Worksheets.Count - 2
wsCount = ThisWorkbook.Worksheets.Count
Dim wsResult As Excel.Worksheet, wsParam As Excel.Worksheet

Set wsResult = Application.ThisWorkbook.Worksheets("Résultat")
Set wsParam = Application.ThisWorkbook.Worksheets("Paramètres")

For i = 13 To 129 Step 1

'On parcourt les feuilles Transporteurs pour récupérer le nombre de km

For j = 1 To wsCount Step 1
If (Worksheets(j).Name <> "Résultat" And Worksheets(j).Name <> "Paramètres") Then

wsParam.Range(wsParam.Cells(i, j + 1)).Value = Worksheets(Worksheets(j).Name).Range("P" & i).Value

End If
wsResult.Range(wsResult.Cells(i, 10)).Value = WorksheetFunction.Min(wsParam.Range(wsParam.Cells(i, 4), wsParam.Cells(i, nbFournisseurs)))

Next

Next

Set wshResult = Nothing
Set wshParam = Nothing

End Sub

2 réponses

  • Votes
  • Date
  • Date décroissante
  1. Contributeur
    Bonjour

    sur quelle ligne se produit l'erreur?

    ici?
    Set wsResult = Application.ThisWorkbook.Worksheets("Résultat") 
    1. bonjour,

      En fait, il faut que tu modifies ton code comme suit :

      Sub Calcul_MinNbkm()
      '
      ' Calcul_MinNbkm Macro
      ' Macro enregistrée le 20/06/2011 par Administrateur
      '

      Dim wsCount As Integer
      Dim nbFournisseurs As Integer
      nbFournisseurs = Worksheets.Count - 2
      wsCount = ThisWorkbook.Worksheets.Count
      Dim wsResult As Excel.Worksheet, wsParam As Excel.Worksheet

      Set wsResult = Application.ThisWorkbook.Worksheets("Résultat")
      Set wsParam = Application.ThisWorkbook.Worksheets("Paramètres")

      For i = 13 To 129 Step 1

      'On parcourt les feuilles Transporteurs pour récupérer le nombre de km

      For j = 1 To wsCount Step 1
      If (Worksheets(j).Name <> "Résultat" And Worksheets(j).Name <> "Paramètres") Then

      wsParam.select
      Cells(i, j + 1).Value = Worksheets(Worksheets(j).Name).Range("P" & i).Value

      End If

      wsResult.select
      Cells(i, 10).Value = WorksheetFunction.Min(wsParam.Range(wsParam.Cells(i, 4), wsParam.Cells(i, nbFournisseurs)))

      Next

      Next

      Set wshResult = Nothing
      Set wshParam = Nothing

      End Sub

      Pour info : quand tu as un souci, appuies sur F8, ca défilera ton code ligne par ligne et tu sauras laquelle pose pb.