[Excel] Erreur incongrue

Résolu/Fermé
deniooo Messages postés 36 Date d'inscription vendredi 6 juin 2008 Statut Membre Dernière intervention 16 juin 2008 - 11 juin 2008 à 12:21
deniooo Messages postés 36 Date d'inscription vendredi 6 juin 2008 Statut Membre Dernière intervention 16 juin 2008 - 11 juin 2008 à 14:47
Bonjour,
Voilà j'ai cette erreur :

Erreur d'execution '438'
"Propriété ou méthode non gérée par cette objet"

à ce point de mon code (simple au demeurant) :

nom = ActiveWorkbook.Name
Set plage = Application.Workbook(nom).Worksheets("Feuil1").UsedRange.Columns(colonne).cells

La variable colonne est renvoyée par une inbox.

Je ne comprends pas d'où celà peut venir..
la suite du code où plage est utilisée :

For Each cel In plage
i = i + 1
If (cells(i, numCol).Value <> "") Then
n = n + 1
cells(i, numCol).Value = ""
ListeMOE (cells(i, numCol))
End If
Next

Avez-vous une idée ôôhh fidéle lecteur ?!
A voir également:

4 réponses

bonjour,

il faut un s à Workbooks et c'est Sheets et non Worksheets

essaie une de ces deux syntaxes

Set plage = Application.Workbooks(nom).Sheets("Feuil1").UsedRange.Columns(colonne).Cells

Set plage = Application.Workbooks(nom).Sheets("Feuil1").Columns(colonne).Cells

A+.
0
Ivan-hoe Messages postés 433 Date d'inscription dimanche 17 février 2008 Statut Membre Dernière intervention 17 octobre 2008 309
11 juin 2008 à 13:57
Salut,
WorbookS avec un S. Tu appelles un élément de la collection Workbooks.
Set plage = Application.WorkbookS(nom).Worksheets("Feuil1").UsedRange.Columns(colonne).cells
I.
0
deniooo Messages postés 36 Date d'inscription vendredi 6 juin 2008 Statut Membre Dernière intervention 16 juin 2008 1
11 juin 2008 à 14:29
Erreur débile effectivement mais aprés correction il me sort une autre erreur :
Erreur 9 : "L'indice n'appartient pas à la sélection"

Pour info le code complet utile


Sub Testing()
parcoursColonnes ("A")
End Sub

Function parcoursColonnes(ByVal colonne As String)

Dim plage As Range
Dim cel As Range
Dim n As Long
i = 2

numCol = Columns(colonne).Column
nom = ActiveWorkbook.Name

Set plage = Application.Workbooks(nom).Worksheets("Feuil1").UsedRange.Columns("A").cells
n = 0

For Each cel In plage
i = i + 1
If (cells(i, numCol).Value <> "") Then
n = n + 1
cells(i, numCol).Value = ""
ListeMOE (cells(i, numCol))
End If
Next
parcoursColonnes = i
End Function

Function ListeMOE(ByVal cel As Range)
listeval = "DSI, RES, DSI&RES, BULL, DSI&BULL, Diginext, Autre"
cel.Select
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:=listeval
End With
End Function

Certainement une erreur béte mais je ne vois pas laquelle..
0
Ivan-hoe Messages postés 433 Date d'inscription dimanche 17 février 2008 Statut Membre Dernière intervention 17 octobre 2008 309
11 juin 2008 à 14:35
est-ce que tu as bien une feuille qui s'appelle "Feuil1" ?
0
deniooo Messages postés 36 Date d'inscription vendredi 6 juin 2008 Statut Membre Dernière intervention 16 juin 2008 1
11 juin 2008 à 14:47
Ahahahah ahah ah a... ah?....

Ok je vais me coucher.. Merci cependant de m'avoir monter moné tourderie.. Je pensais avoir laissé sheet(1)..

Probléme résolu je met le bon code si certains ont ce probléme :

Sub Testing()
parcoursColonnes ("A")
End Sub

Function parcoursColonnes(ByVal colonne As String)

Dim plage As Range
Dim cel As Range
Dim n As Long
i = 2

numCol = Columns(colonne).Column
nom = ActiveWorkbook.Name

Set plage = Application.Workbooks(nom).Sheets(1).UsedRange.Columns("A")­.cells
n = 0

For Each cel In plage
i = i + 1
If (cells(i, numCol).Value <> "") Then
n = n + 1
cells(i, numCol).Value = ""
ListeMOE (cells(i, numCol))
End If
Next
parcoursColonnes = i
End Function

Function ListeMOE(ByVal cel As Range)
listeval = "DSI, RES, DSI&RES, BULL, DSI&BULL, Diginext, Autre"
cel.Select
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:=listeval
End With
End Function
0