Erreur 1004
j
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.
j
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