Bonjour,
Je suis nouveau en macro... je viens de récupérer la gestion des macros et j'ai une erreur exécution 1004 sur une ligne alors que la macro fini de s'executer...
Pourriez vous me dire ce qu'il faudrait que je modifis pour que cela fonctionne... la ligne d'erreur est "Cells(lig_affaire, col_affaire).Select"
Merci de votre aide
Cédric
PS voici le code.
Sub liste_postes()
Application.ScreenUpdating = False
myvar = "toto"
repcourant = ThisWorkbook.Path & "\"
fichier_bilan_cumul = ThisWorkbook.Name
lig_affaire = 73
col_affaire = 5
Sheets("Gestion").Activate
Range("h4").Select
Selection.ClearContents
Range("h2").Select
affaire = ActiveCell
Range("i4").Select
affaire2 = ActiveCell
On Error GoTo 10
ActiveWorkbook.Names("liste_pos").Delete
10:
Resume Next
On Error GoTo 0
Sheets("Annexe2").Activate
ActiveSheet.Unprotect (myvar)
nbre_dess = Cells(1, 3)
If affaire = "" Then
GoTo 100
Else
If Cells(lig_affaire, col_affaire) <> "" Then
Cells(lig_affaire, col_affaire).Select
'********************************************
'Nettoyage de l'onglet Annexe - Enlève le texte "TOUS ..."
'********************************************
Do While ActiveCell.Value <> affaire2
If ActiveCell.Column = 256 Then
lig_affaire = lig_affaire + nbre_dess + 100
col_affaire = 5
Cells(lig_affaire, col_affaire).Select
If lig_affaire = 65000 Then
MsgBox ("blablablablablabla")
End If
Else
ActiveCell.Offset(0, 1).Select
End If
Loop
col_affaire3 = ActiveCell.Column
Cells(lig_affaire - 2, col_affaire3).Select
Do Until ActiveCell.Value = "" Or ActiveCell = "TOUS ..."
ActiveCell.Offset(-1, 0).Select
Loop
Selection.ClearContents
'********************************************
'Détermination des listes
'********************************************
lig_affaire = 73
Cells(lig_affaire, col_affaire).Select
Do While ActiveCell.Value <> affaire
If ActiveCell.Column = 256 Then
lig_affaire = lig_affaire + nbre_dess + 100
col_affaire = 5
Cells(lig_affaire, col_affaire).Select
Else
ActiveCell.Offset(0, 1).Select
End If
Loop
col_affaire2 = ActiveCell.Column
'********************************************
'Détermination de la liste de postes
'********************************************
Cells(lig_affaire - 2, col_affaire2).Select
Do Until ActiveCell.Value = ""
ActiveCell.Offset(-1, 0).Select
Loop
lig_poste = ActiveCell.Row + 1
nbre_postes = (lig_affaire - 2) - (lig_poste - 1)
If nbre_postes = 1 Then
Cells(lig_poste, col_affaire2).Select
Else
ActiveCell = "TOUS ..."
lig_poste = lig_poste - 1
End If
poste = ActiveCell
Sheets("Gestion").Select
ActiveWorkbook.Names.Add Name:="liste_pos", RefersToR1C1:= _
"=Annexe2!R" & lig_poste & "C" & col_affaire2 & ":R" & (lig_affaire - 2) & "C" & col_affaire2
Range("H4").Select
ActiveCell = poste
Range("I4").Select
ActiveCell = affaire
Call bilan_affaire1
Else
100:
MsgBox ("blablabla" & _
Chr(13) & "blablabla")
Sheets("Gestion").Activate
End If
End If
Sheets("Annexe2").Activate
ActiveSheet.Protect (myvar)
Sheets("Gestion").Activate
End Sub
Je suis nouveau en macro... je viens de récupérer la gestion des macros et j'ai une erreur exécution 1004 sur une ligne alors que la macro fini de s'executer...
Pourriez vous me dire ce qu'il faudrait que je modifis pour que cela fonctionne... la ligne d'erreur est "Cells(lig_affaire, col_affaire).Select"
Merci de votre aide
Cédric
PS voici le code.
Sub liste_postes()
Application.ScreenUpdating = False
myvar = "toto"
repcourant = ThisWorkbook.Path & "\"
fichier_bilan_cumul = ThisWorkbook.Name
lig_affaire = 73
col_affaire = 5
Sheets("Gestion").Activate
Range("h4").Select
Selection.ClearContents
Range("h2").Select
affaire = ActiveCell
Range("i4").Select
affaire2 = ActiveCell
On Error GoTo 10
ActiveWorkbook.Names("liste_pos").Delete
10:
Resume Next
On Error GoTo 0
Sheets("Annexe2").Activate
ActiveSheet.Unprotect (myvar)
nbre_dess = Cells(1, 3)
If affaire = "" Then
GoTo 100
Else
If Cells(lig_affaire, col_affaire) <> "" Then
Cells(lig_affaire, col_affaire).Select
'********************************************
'Nettoyage de l'onglet Annexe - Enlève le texte "TOUS ..."
'********************************************
Do While ActiveCell.Value <> affaire2
If ActiveCell.Column = 256 Then
lig_affaire = lig_affaire + nbre_dess + 100
col_affaire = 5
Cells(lig_affaire, col_affaire).Select
If lig_affaire = 65000 Then
MsgBox ("blablablablablabla")
End If
Else
ActiveCell.Offset(0, 1).Select
End If
Loop
col_affaire3 = ActiveCell.Column
Cells(lig_affaire - 2, col_affaire3).Select
Do Until ActiveCell.Value = "" Or ActiveCell = "TOUS ..."
ActiveCell.Offset(-1, 0).Select
Loop
Selection.ClearContents
'********************************************
'Détermination des listes
'********************************************
lig_affaire = 73
Cells(lig_affaire, col_affaire).Select
Do While ActiveCell.Value <> affaire
If ActiveCell.Column = 256 Then
lig_affaire = lig_affaire + nbre_dess + 100
col_affaire = 5
Cells(lig_affaire, col_affaire).Select
Else
ActiveCell.Offset(0, 1).Select
End If
Loop
col_affaire2 = ActiveCell.Column
'********************************************
'Détermination de la liste de postes
'********************************************
Cells(lig_affaire - 2, col_affaire2).Select
Do Until ActiveCell.Value = ""
ActiveCell.Offset(-1, 0).Select
Loop
lig_poste = ActiveCell.Row + 1
nbre_postes = (lig_affaire - 2) - (lig_poste - 1)
If nbre_postes = 1 Then
Cells(lig_poste, col_affaire2).Select
Else
ActiveCell = "TOUS ..."
lig_poste = lig_poste - 1
End If
poste = ActiveCell
Sheets("Gestion").Select
ActiveWorkbook.Names.Add Name:="liste_pos", RefersToR1C1:= _
"=Annexe2!R" & lig_poste & "C" & col_affaire2 & ":R" & (lig_affaire - 2) & "C" & col_affaire2
Range("H4").Select
ActiveCell = poste
Range("I4").Select
ActiveCell = affaire
Call bilan_affaire1
Else
100:
MsgBox ("blablabla" & _
Chr(13) & "blablabla")
Sheets("Gestion").Activate
End If
End If
Sheets("Annexe2").Activate
ActiveSheet.Protect (myvar)
Sheets("Gestion").Activate
End Sub