Erreur '9' sur excel 2007

Fermé
Yas - 21 oct. 2011 à 16:10
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 - 22 oct. 2011 à 00:11
Bonjour,

Je me galère avec une macro. Quand je la lance, elle m'affiche :
Erreur d'exécution '9'
L'indice n'appartient pas à la sélection.

Si vous avez une idée pour m'en sortir.
Ci-dessous la macro et une astérix à la ligne en surbrillance quand je lance le débogage :

Sub creafiche()
Application.ScreenUpdating = False
' mise en forme des données Access vers Excel
Dim NOMRUB(200) As String
Dim valeurs(200) As Variant

Dim i, j, k, nbv As Integer
Dim numaff As String
Dim ongletXL, onglet2 As String
Dim nomLocal As String
Dim CodeFiche As String
Dim CARAC As String
Dim pos As Integer
Dim depart As Double



i = 0

Application.Worksheets("PTD").Select
Application.Range("B1").Select

While ActiveCell <> "EOL"
i = i + 1
NOMRUB(i) = ActiveCell.Value
ActiveCell.Offset(0, 1).Activate
Wend
nbv = i

Application.Range("C2").Select
numaff = ActiveCell.Value

ActiveWorkbook.SaveAs Filename:= _
"Fiche_Local_" & numaff & ".xls", FileFormat:=xlNormal, _
Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
CreateBackup:=False


Columns("J:J").Select
Selection.Replace What:="/", Replacement:="_", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False

Application.Worksheets("PTD").Select
Application.Range("E2").Select
ActiveWorkbook.Names.Add Name:="org", RefersToR1C1:=ActiveCell
'
'
' boucle principale
'
While ActiveCell <> ""
Application.Worksheets("PTD").Select
' Nom Onglet Excel
ongletXL = ActiveCell.Offset(0, -3).Value & "_" & ActiveCell.Offset(0, 4).Value & "_" & ActiveCell.Offset(0, 3).Value
If Len(ongletXL) > 31 Then ongletXL = Left$(ongletXL, 31)

ActiveCell.Offset(0, -3).Activate
For k = 1 To nbv
valeurs(k) = ActiveCell.Value
ActiveCell.Offset(0, 1).Activate
Next k

Application.Worksheets("Données").Select
Application.Range("B1").Select
For i = 1 To nbv
ActiveCell.Value = valeurs(i)
ActiveCell.Offset(1, 0).Activate
Next i

' exporte en MHT et réimporte dans le classeur, en dernier

Sheets("Formulaire").Select
With ActiveWorkbook.PublishObjects.Add(xlSourceSheet, _
ActiveWorkbook.Path & "\TEMPO.mht", "Formulaire", "", xlHtmlStatic, _
"Fiche_Local_220398_18647", "")
.Publish (False)
.AutoRepublish = False
End With

Sheets("Formulaire").Select



Workbooks.Open Filename:=ActiveWorkbook.Path & "\TEMPO.mht"
Sheets("TEMPO").Select
Sheets("TEMPO").Copy After:=Workbooks("Fiche_Local_" & numaff & ".xls").Sheets(3)

Application.Worksheets("TEMPO").Select
Application.Worksheets("TEMPO").Name = ongletXL

' fermeture de tempo
Windows("TEMPO.mht").Activate
ActiveWorkbook.Close
Sheets("Données").Select
Columns("B:B").Select
Selection.ClearContents
Application.Range("B1").Select

Application.Worksheets("PTD").Select
Application.Range("org").Select
ActiveCell.Offset(1, 0).Activate
ActiveWorkbook.Names("org").Delete
ActiveWorkbook.Names.Add Name:="org", RefersToR1C1:=ActiveCell

'retour boucle principale

Wend
Application.ScreenUpdating = True
a = MsgBox("TRAITEMENT TERMINE", vbInformation)
End Sub
A voir également:

1 réponse

Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 775
21 oct. 2011 à 23:48
Astérix a du rejoindre Obelix ! il n'est plus là.
1
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 212
22 oct. 2011 à 00:11
C'est une idée fixe ? ;-)
0