Erreur 1004

bonjour le forum

J'ai une erreur 1004

Erreur d'éxécution 1004 : impossible de lire la propriété Max de la classe WorksheetFunction

Hors cette macro fonctionne trés bien dans un autre classeur et je n'arrive pas a trouver l'erreur

merci pour votre aide

Option Explicit
Sub Macro12()
'
' Macro12
' transfert des données vers EM1
'
Dim wsData As Worksheet, wsR1 As Worksheet, wsR2 As Worksheet, rg As Range, larg%
'Dim wsR3 As Worksheet, wsR4 As Worksheet, wsR5 As Worksheet
'Dim wsR6 As Worksheet, rg As Range, larg%
Dim Série1 As Variant, Série2 As Variant
Dim I%, J%, K%, m%, n%, o%, p%, nLg%, jmax%, Départ%
Dim rmax%, rCol%, DeltaV%, rLig() As Integer

'----------- Lignes à modifier selon convenance --------------
Départ = 2                 'N° de la première ligne des résultats
Set wsData = Worksheets("EuroMil")   ' feuille contenant les données
Set wsR1 = Worksheets("EM1")      ' feuille contenant les réultats
wsData.Range("B1") = "tirages"      ' impose un titre à la base de données
'------------------------------------------------------------

I = 2                             'N° de la première ligne des données
Application.ScreenUpdating = False
With wsData
  .Range("B2").Select
  Set rg = .Range("B2").CurrentRegion
  Set rg = rg.Offset(1, 1).Resize(rg.Rows.Count - 1, rg.Columns.Count - 1)
  larg = rg.Columns.Count                          'nbre de données sur une ligne
  [color=#FFFF00]DeltaV = Application.WorksheetFunction.Max(rg)[/color]
  ReDim rLig(DeltaV)

  jmax = Int(Application.Columns.Count / (larg + 1))
                        ' inscription du N° des blocs de résultats
  For J = 1 To DeltaV: rLig(J) = Départ - 1
    If J <= jmax Then
      wsR1.Cells(rLig(J), (larg + 1) * (J - 1) + 1) = J
    ElseIf J <= 2 * jmax Then

    Else
      MsgBox "Trop de feuilles résultats exigées. Modifier la macro ou modifier les données."
      End
    End If
  Next J
  Série1 = .Range(.Cells(I, 2), .Cells(I, larg + 1)).Value
  rmax = jmax * (larg + 1)
                 ' répartition des données dans les blocs
  While I <= rg.Rows.Count
    I = I + 1
    Série2 = .Range(.Cells(I, 2), .Cells(I, larg + 1)).Value
    For J = LBound(Série1, 2) To UBound(Série1, 2)
      rLig(Série1(1, J)) = rLig(Série1(1, J)) + 1
      nLg = rLig(Série1(1, J))
      rCol = (Série1(1, J) - 1) * (larg + 1) + 1
      If rCol <= 0 Then MsgBox "Pas de valeur nulle dans les données. Veuillez corrigez.": Exit Sub
      If rCol < rmax Then
        wsR1.Range(wsR1.Cells(nLg, rCol), wsR1.Cells(nLg, rCol + larg - 1)) = Série2
      ElseIf rCol < 2 * rmax Then
        Stop
      End If
    Next J
    Série1 = Série2
  Wend
End With
Application.ScreenUpdating = True

End Sub

Bonjour,

A tout hasard, peux-tu remplacer :

<span style="color: #FFFF00">DeltaV = Application.WorksheetFunction.Max(rg)</span>

par :

DeltaV = Application.WorksheetFunction.Max(rg)

Cdlt.

bonjour Jean-Eric, le forum

elle est bien écrite correctement j'avais simplement fait couleur pour montrer que c'est cette ligne qui est surligné en jaune dans l'erreur

1004.

J'ai du mal faire

merci

Rechercher des sujets similaires à "erreur 1004"