Erreur d'execution 9 sur programme recopié

elimazizou Messages postés 7 Statut Membre -  
elimazizou Messages postés 7 Statut Membre -
Bonjour,

Débutante en VBA, j'ai un soucis et je n'arrive pas à savoir sa source. J'ai recopié un de mes programme qui fonctionne pour deux fichiers ( un de départ et un d'arrivée) mais quand je souhaite le répliquer dans un nouveau module sur deux autres fichiers, j'ai l'erreur 9: "l'indice n'appartient pas à la sélection" qui s'affiche automatiquement. Je ne sais pas trop quoi faire.

Merci pour votre aide.

voici mon programme:
Sub cash22()

Dim Datestockee As Date
Dim montanttotal As Variant

Workbooks("propre cash 2009 en 2.xls").Activate
Sheets("feuil1").Select 'y'a toujours une feuil1
Cells.Select 'on sélectionne toutes les cellules
Selection.ClearContents 'on clean la feuille pour ne pas mélanger les données

Range("A1").Select

Range("A1").Value = "ISIN"
Range("B1").Value = "montant"
Range("C1").Value = "date"
Range("D1").Value = "coeff"
Range("E1").Value = "cash"

Workbooks("fin cash donnees 2008.xls").Activate

For t = 1 To Sheets.Count

Workbooks("fin cash donnees 2008.xls.xls").Activate
Sheets("feuil" & t).Select

Range("A3").Select
If Range("A3").Value <> "" Then
Selection.End(xlDown).Select
lastrow = Selection.Row

Else

Workbooks("propre cash 2009 en 2.xls").Activate
Sheets("feuil1").Select
Range("A1").Select
Exit Sub

End If

For k = 3 To lastrow

If Cells(k, 1) = "ACTIF NET" Then

For j = 1 To 12
If Cells(2, j) = "MONTANT" Then
montanttotal = Cells(k, j).Value
End If
Next j
ElseIf Cells(k, 1) = "VALEUR LIQUIDATIVE" Then
Datestockee = Cells(k, 3).Value

ElseIf Cells(k, 1) = "RATIO ACTION" Then

coeff = Cells(k, 2).Value
End If
Next k

Cells(70, 1).Value = (1 - coeff) * montanttotal

cashcash = Cells(70, 1).Value
'on revient au fichier de départ
Workbooks("propre cash 2009 en 2.xls").Activate

lig = t + 210

Cells(lig, 1).Value = "Eur Curncy"
Cells(lig, 2).Value = montanttotal
Cells(lig, 3).Value = Datestockee
Cells(lig, 4).Value = coeff
Cells(lig, 5).Value = cashcash

Workbooks("fin cash donnees 2008.xls").Activate
Next t

End Sub

Pourriez-vous m'aider?
Merci beaucoup.

4 réponses

chossette9 Messages postés 6855 Date d'inscription   Statut Contributeur Dernière intervention   1 312
 
Bonjour,

tu as
Workbooks("fin cash donnees 2008.xls.xls").Activate 
dans ton code qui doit faire planter l'exécution.

Cordialement.
0
elimazizou Messages postés 7 Statut Membre
 
Merci Chossette!
effectivement je ne me suis pas bien relue.
seulement, j'ai encore la même erreur qui s'affiche et à la 4ème ligne de mon programme,
Workbooks("propre cash 2009 en 2.xls").Activate
Je ne comprends pas pourquoi.

Merci pour ton aide!

Cordialement.
0
elimazizou Messages postés 7 Statut Membre
 
J'ai un autre soucis. Je viens de re-tester ce programme sur 2 autres fichiers. Il fonctionne excepté la variable coeff qui ne contient rien alors qu'elle devrait enregistrer le contenu d'une cellule de forme 96,77% par exemple.
Pourriez-vous m'aider aussi là-dessus?
Merci beaucoup.
0
elimazizou Messages postés 7 Statut Membre
 
Je ne sais pas si ce détail est important, mais pour les 2 fichiers pour lesquels ce programme a marché, le fichier d'arrivée s'appelant "propre cash 2009.xls" dans le programme, a été enregistré bysaremment sous le nom: propre cash 20091
Est ce la cause du fait que la varaible coeff ait fonctionné? Comment alors reproduire cela?
Désolée encore pour tous ces sous-messages.

Merci à vous.
0
chossette9 Messages postés 6855 Date d'inscription   Statut Contributeur Dernière intervention   1 312
 
Ton classeur est-il déjà ouvert quand tu veux l'activer ?
0
elimazizou Messages postés 7 Statut Membre
 
Oui il est ouvert.
Mais j'ai solutionner le problème en agissant en deux fois mais c'est un peu plus long et je ne comprends pas pourquoi ça marche sur certains fichiers et pas sur d'autres.

Merci de ton aide dans tous les cas.
0