Pas d'autocomplétion des listes et méthodes d'un objet

Hello,

Je tente d'écrire un code assez simple mais je rencontre quelques difficulties avec l'éditeur VBA et l'auto-complétion.

J'ai fais mes tests sur un Excel 2016 et 2007, mêmes résultats.

Voici mon code:

    For Each Row In Selection.Rows
        For Each Column In Selection.Columns
            MsgBox Column.Address
            MsgBox Columns.Address
        Next
    Next

Note importante (peut-être), ces 2 objets n'existent pas (pas non plus declares donc) en dehors de ce bout de code.

Je cherche à connaitre les methodes et propriétés des objets Row et Column.

J'ai beau tenté de faire des "Row.<CTRL-ESPACE>" et des "Column.<CTRL-ESPACE>", strictement aucun menu ne s'affiche et le "doux" son d'erreur de Windows retenti...

Par exemple:

    For Each Row In Selection.Rows
        Row.<CTRL-ESPACE> (dring dring, pas de menu!)
        For Each Column In Selection.Columns
            MsgBox Column.Address
            MsgBox Columns.Address
        Next
    Next

Rows. et Columns. eux fonctionnent parfaitement bien. Ce n'est donc très probablement pas une configuration spécifique de l'éditeur.

Je n'ai d'ailleurs strictement rien configure dans l'éditeur, c'est un Excel tout ce qu'il y'a de plus classique.

Je sais pourtant que ces 2 objets possèdent entre autre la propriété "Address".

Comment faire pour que l'auto-complétion fonctionne sur tous mes objets?

Si cela n'est pas possible, comment puis-je trouver la liste des méthodes et propriétés de mes objets?

Je vois bien que l'éditeur VBA est le parent pauvre des IDE MS, quel dommage quand on connait la qualité de Visual Studio!

Merci d'avance!

Bonjour

Essaie ça :

Sub ess()
    Set plage = Selection
    For Each c In plage.Columns
        MsgBox c.Column
    Next c
End Sub

Bye !

bonjour,

En les utilisant comme variable de contrôle de boucle tu entretiens cette confusion mais Row(sans s) et Column(sans s) ne sont pas des objets mais des propriétés de l'objet range.

Il est donc préférable de ne pas utiliser comme nom de variable des propriétés.

Tu aurais donc du écrire :

For each o in...
For each oo in...

A+

Bonjour,

Il faut ajouter que les propriétés Rows ou Columns, de même que Range, Cells et pas mal d'autres, renvoient un objet Range...

Si cela n'est pas possible, comment puis-je trouver la liste des méthodes et propriétés de mes objets?

Tu tapes Range dans l'Aide, ce qui te permettra d'accéder immédiatement aux membres de l'objet...

Les descriptions te permettront aisément de distinguer propriétés et méthodes exigeant que l'objet se présente sous forme de ligne(s) ou de colonne(s). Et si tu as quelque doute au sujet de questions particulières que tu peux te poser, on se fera un plaisir d'y répondre dans la mesure de nos connaissances...

Cordialement.

Bonjour,

sans oublier l'explorateur d'objet (F2)

Sélectionne la classe Range, à droite tu auras toutes ses propriétés et méthodes. Un clic-droit sur l'une d'entre elles pour accéder à l'aide.

eric

Merci à tous pour vos messages.

J'ai modifié mon code pour éviter les confusions mais je me retrouve dans la même situation

Voici le code complet:

Sub NettoyerClasseur()
    Set sel = Selection

    For Each r In sel.Rows
        r.<Pas d'autocomplétion>
        For Each c In Selection.Columns
            MsgBox r
        Next c
    Next r

End Sub

J'ai aussi tenté de faire un copier-coller du code gmb, même résultat:

    Sub ess()
        Set plage = Selection
        For Each c In plage.Columns
            MsgBox c.<pas d'autocomplétion>
        Next c
    End Sub

C'est vraiment incompréhensible...

Il faut déclarer et typer ta variable, là il ne sait pas à quoi il a affaire...

voir Cours VBA 3 en haut de cette page

Dim r As Range

eric

Effectivement, ça fonctionne bien mieux en typant mes variables.

Merci Eric!

Rechercher des sujets similaires à "pas autocompletion listes methodes objet"