[Excel] Erreur incongrue

Résolu
deniooo Messages postés 36 Statut Membre -  
deniooo Messages postés 36 Statut Membre -
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 ?!
Configuration: Windows XP
Internet Explorer 6.0

4 réponses

  1. 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
  2. Ivan-hoe Messages postés 433 Date d'inscription   Statut Membre Dernière intervention   310
     
    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
    1. deniooo Messages postés 36 Statut Membre 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
  3. Ivan-hoe Messages postés 433 Date d'inscription   Statut Membre Dernière intervention   310
     
    est-ce que tu as bien une feuille qui s'appelle "Feuil1" ?
    0
  4. deniooo Messages postés 36 Statut Membre 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