[Excel] Erreur incongrue

Résolu
deniooo Messages postés 36 Date d'inscription   Statut Membre Dernière intervention   -  
deniooo Messages postés 36 Date d'inscription   Statut Membre Dernière intervention   -
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

amigo
 
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   Statut Membre Dernière intervention   309
 
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   Statut Membre Dernière intervention   1
 
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   Statut Membre Dernière intervention   309
 
est-ce que tu as bien une feuille qui s'appelle "Feuil1" ?
0
deniooo Messages postés 36 Date d'inscription   Statut Membre Dernière intervention   1
 
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