Erreur d'exécution 9 - VB/VBA/VBS - Programmation
Marsh Posté le 29-08-2012 à 23:52:40
sur quelle ligne pointe le debuger?
par hasard, "Worksheets("SUIVI EXE" ).Cells(l, 2).Value" à bien toujours au moins 8 charactères, jamais vide?
ligne
Code :
|
Marsh Posté le 30-08-2012 à 08:59:53
Le debuger ne s'affiche pas. Le message s'affiche avant lui, sans possibilité de l'utiliser.
Oui "Worksheets("SUIVI EXE" ).Cells(l, 2).Value" est bien jamais vide.
Marsh Posté le 30-08-2012 à 20:49:50
Donc il va falloir le faire "à la main"
Ajoute des
Code :
|
Pour voir jusqu'où ton code s’exécute.
et quelle instruction foire
sinon, ici un gars dit qu'il serait prudent d'ajouter "Thisworkbook." devant tes "worksheets("
edit : sinon, c'est pas hasardeux ça dans ta macro?
Code :
|
Edit 2: Il semble que tu ouvre un autre fichier excel en même temps.
Tu devrais tenter de faire
Code :
|
Et ensuite quand tu utilise des sheets(.... de l'un ou l'autre :
remote.worksheets(...........
ou
Thisworkbook.worksheets(........
Sinon excel ne va pas savoir trouver/identifier les feuilles dont tu as besoin.
Marsh Posté le 29-08-2012 à 17:36:53
Bonjour,
Voici le début du code avec lequel j'ai un problème :
Sub Macro1()
' Ouverture fichier à analyser
repertoire = Worksheets("SUIVI EXE" ).Cells(4, 4).Value
fichier = Worksheets("SUIVI EXE" ).Cells(5, 4).Value
Application.Workbooks.Open "" & repertoire & "\" & fichier & ".xls"
' Initialisation des variables
'l est la ligne en cours d'analyse sur feuille 1
l = 3
'l_2 est la ligne d'écriture sur feuille 2
l_2 = 2
' Création des feuilles de synthèse
Sheets.Add After:=Sheets(Sheets.Count)
Sheets("Feuil1" ).Select
Sheets("Feuil1" ).Name = "FCE DBT-RBT"
Sheets.Add After:=Sheets(Sheets.Count)
Sheets("Feuil2" ).Select
Sheets("Feuil2" ).Name = "FCE VLT"
Sheets.Add After:=Sheets(Sheets.Count)
Sheets("Feuil3" ).Select
Sheets("Feuil3" ).Name = "FCE RDT"
Sheets.Add After:=Sheets(Sheets.Count)
Sheets("Feuil4" ).Select
Sheets("Feuil4" ).Name = "FCE OH"
' Mise en place du filtre
Rows("2:2" ).Select
Selection.AutoFilter
' Sélection OL exclusive
ActiveSheet.Range("$A$2:$AH$387" ).AutoFilter Field:=1, Criteria1:="<>*PRO*" _
, Operator:=xlAnd, Criteria2:="<>*PRA*"
' Tri alphabétique
ActiveWorkbook.Worksheets("SUIVI EXE" ).AutoFilter.Sort.SortFields.Clear
ActiveWorkbook.Worksheets("SUIVI EXE" ).AutoFilter.Sort.SortFields.Add Key:= _
Range("A2:A387" ), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption _
:=xlSortNormal
With ActiveWorkbook.Worksheets("SUIVI EXE" ).AutoFilter.Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
' Traitement FCE DBT-RBT
Worksheets("SUIVI EXE" ).Activate
fiche = Worksheets("SUIVI EXE" ).Cells(l, 1).Value
compare = Left(Worksheets("SUIVI EXE" ).Cells(l, 2).Value, 8)
Worksheets(2).Activate
If compare = "IDEBK-2C" Then
Worksheets("FCE DBT-RBT" ).Cells(l_2, 2).Value = fiche
l_2 = l_2 + 1
End If
l = l + 1
End Sub
J'ai alors le message : "Erreur d'exécution 9, l'indice n'appartient pas à la sélection".
Avez-vous une idée sur la cause de ce message et sur sa résolution éventuelle?
Merci par avance.