Propriétés dobjet de plage utiles pour Excel VBA que tout le monde devrait connaître

Un objet Range a des dizaines de propriétés. Vous pouvez écrire des programmes VBA sans interruption pendant les 12 prochains mois et ne jamais les utiliser tous. Ici, vous obtenez un bref aperçu de certaines des propriétés de plage Excel VBA les plus couramment utilisées. Pour plus de détails, consultez le système d'aide dans le VBE. (Consultez ces ressources supplémentaires pour obtenir de l'aide avec Excel VBA .)

Certaines propriétés de la plage Excel VBA sont des propriétés en lecture seule, ce qui signifie que votre code peut consulter leurs valeurs mais ne peut pas les modifier (« Regardez, mais ne touchez pas »). Par exemple, chaque objet Excel VBA Range a une propriété Address, qui contient l'adresse de la plage. Vous pouvez accéder à cette propriété en lecture seule, mais vous ne pouvez pas la modifier, ce qui est parfaitement logique lorsque vous y réfléchissez.

Soit dit en passant, les exemples qui suivent sont généralement des déclarations plutôt que des procédures complètes. Si vous souhaitez essayer l'un d'entre eux (et vous devriez le faire), créez une procédure Sub pour le faire. En outre, bon nombre de ces instructions VBA ne fonctionnent correctement que si une feuille de calcul est la feuille active.

Excel VBA : la propriété Value

La propriété Value représente la valeur contenue dans une cellule. Il s'agit d'une propriété en lecture-écriture, votre code VBA peut donc lire ou modifier la valeur.

L'instruction suivante affiche une boîte de message qui affiche la valeur dans la cellule A1 sur Sheet1 :

MsgBox Worksheets("Sheet1").Range("A1").Value

Il va de soi que vous ne pouvez lire la propriété Value que pour un objet Range à cellule unique. Par exemple, l'instruction suivante génère une erreur :

MsgBox Worksheets("Sheet1").Range("A1:C3").Value

Vous pouvez cependant modifier la propriété Value pour une plage de n'importe quelle taille. L'instruction suivante entre le nombre 123 dans chaque cellule d'une plage :

Feuilles de calcul("Feuille1").Plage("A1:C3").Valeur = 123

La valeur est la propriété par défaut d'un objet Plage VBA Excel. En d'autres termes, si vous omettez une propriété pour une plage, Excel utilise sa propriété Value. Les instructions suivantes entrent toutes deux une valeur de 75 dans la cellule A1 de la feuille de calcul active :

Plage ("A1"). Valeur = 75
Plage ("A1") = 75

Excel VBA : la propriété Text

La propriété Text renvoie une chaîne qui représente le texte tel qu'il est affiché dans une cellule — la valeur formatée. La propriété Text est en lecture seule. Supposons que la cellule A1 contienne la valeur 12,3 et soit formatée pour afficher deux décimales et un signe dollar (12,30 $). L'instruction suivante affiche une boîte de message contenant 12,30 $ :

MsgBox Worksheets("Sheet1").Range("A1").Text

Mais l'instruction suivante affiche une boîte de message contenant 12.3 :

MsgBox Worksheets("Sheet1").Range("A1").Value

Si la cellule contient une formule, la propriété Text renvoie le résultat de la formule. Si une cellule contient du texte, la propriété Text et la propriété Value renvoient toujours la même chose, car le texte (contrairement à un nombre) ne peut pas être formaté pour s'afficher différemment.

Excel VBA : la propriété Count

La propriété Count renvoie le nombre de cellules dans une plage. Il compte toutes les cellules, pas seulement les cellules non vides. Count est une propriété en lecture seule, comme on peut s'y attendre. L'instruction suivante accède à la propriété Count d'une plage et affiche le résultat (9) dans une boîte de message :

MsgBox Range ("A1:C3").Count

Excel VBA : les propriétés de colonne et de ligne

La propriété Column renvoie le numéro de colonne d'une plage à cellule unique. Son acolyte, la propriété Row, renvoie le numéro de ligne d'une plage à cellule unique. Les deux sont des propriétés en lecture seule. Par exemple, l'instruction suivante affiche 6 car la cellule F3 se trouve dans la sixième colonne :

MsgBox Sheets("Sheet1").Range("F3").Column

L'expression suivante affiche 3 car la cellule F3 est dans la troisième ligne :

MsgBox Sheets("Sheet1").Range("F3").Row

Si l'objet Excel VBA Range se compose de plusieurs cellules, la propriété Column renvoie le numéro de colonne de la première colonne de la plage et la propriété Row renvoie le numéro de ligne de la première ligne de la plage.

Ne confondez pas les propriétés Column et Row avec les propriétés Columns et Rows. Les propriétés Column et Row renvoient une valeur unique. Les propriétés Columns et Rows, en revanche, renvoient un objet Range. Quelle différence un "s" fait.

Excel VBA : la propriété Adresse

Address, une propriété en lecture seule, affiche l'adresse de cellule d'un objet Range en tant que référence absolue (un signe dollar avant la lettre de la colonne et avant le numéro de la ligne). L'instruction suivante affiche la boîte de message ci-dessous :

MsgBox Range(Cells(1, 1), Cells(5, 5)).Adresse

Propriétés d'objet de plage utiles pour Excel VBA que tout le monde devrait connaître

Cette boîte de message affiche la propriété Adresse d'une plage de 5 sur 5.

Excel VBA : la propriété HasFormula

The HasFormula property (which is read-only) returns True if the single-cell range contains a formula. It returns False if the cell contains something other than a formula (or is empty). If the range consists of more than one cell, VBA returns True only if all cells in the range contain a formula or False if all cells in the range don’t have a formula. The property returns Null if the range contains a mixture of formulas and nonformulas. Null is kind of a no-man’s land: The answer is neither True nor False, and any cell in the range may or may not have a formula.

You need to be careful when you work with properties that can return Null. More specifically, the only data type that can deal with Null is Variant.

For example, assume that cell A1 contains a value and cell A2 contains a formula. The following statements generate an error because the range doesn’t consist of all formulas or all nonformulas:

Dim FormulaTest As Boolean
FormulaTest = Range("A1:A2").HasFormula

The Boolean data type can handle only True or False. Null causes Excel to complain and display an error message. To fix this type of situation, the best thing to do is make sure that the FormulaTest variable is declared as a Variant rather than as a Boolean. The following example uses VBA’s handy TypeName function (along with an If-Then-Else construct) to determine the data type of the FormulaTest variable. If the range has a mixture of formulas and nonformulas, the message box displays Mixed! Otherwise, it displays True or False.

Sub CheckForFormulas()
  Dim FormulaTest As Variant
  FormulaTest = Range("A1:A2").HasFormula
  If TypeName(FormulaTest) = "Null" Then
    MsgBox "Mixed!"
  Else
    MsgBox FormulaTest
  End If
End Sub

Excel VBA: The Font property

A property can return an object. The Font property of an Excel VBA Range object is another example of that concept at work. The Font property returns a Font object.

A Font object, as you may expect, has many accessible properties. To change some aspect of a range’s font, you must first access the range’s Font object and then manipulate the properties of that object. This may be confusing, but perhaps this example will help.

The following statement uses the Font property of the Range object to return a Font object. Then the Bold property of the Font object is set to True. In plain English, this statement makes the cell display in boldface:

Range("A1").Font.Bold = True

Truth is, you don’t really need to know that you’re working with a special Font object that’s contained in an Excel VBA Range object. As long as you use the proper syntax, it works just fine. Often, recording your actions with the macro recorder tells you everything you need to know about the proper syntax.

Excel VBA: The Interior property

Here’s yet another example of a property that returns an object. A Range object’s Interior property returns an Interior object (strange name, but that’s what it’s called). This type of object referencing works the same way as the Font property.

For example, the following statement changes the Color property of the Interior object contained in the Range object:

Range("A1").Interior.Color = 8421504

En d'autres termes, cette instruction modifie l'arrière-plan de la cellule en gris moyen. Qu'est-ce que c'est? Vous ne saviez pas que 8421504 est gris moyen ? Pour un aperçu du monde merveilleux des couleurs d'Excel, consultez la barre latérale à proximité « Un apprêt de couleur rapide et sale ».

Excel VBA : la propriété Formula

La propriété Formula représente la formule dans une cellule. Il s'agit d'une propriété en lecture-écriture, vous pouvez donc y accéder pour afficher la formule dans une cellule ou insérer une formule dans une cellule. Par exemple, l'instruction suivante entre une formule SUM dans la cellule A13 :

Plage("A13").Formule = "=SOMME(A1:A12)"

Notez que la formule est une chaîne de texte et est placée entre guillemets. Notez également que la formule commence par un signe égal, comme le font toutes les formules.

Si la formule elle-même contient des guillemets, les choses deviennent un peu délicates. Supposons que vous souhaitiez insérer cette formule en utilisant VBA :

=SOMME(A1:A12)&"Magasins"

Cette formule affiche une valeur suivie du mot Stores . Pour rendre cette formule acceptable, vous devez remplacer chaque guillemet de la formule par deux guillemets. Sinon, VBA s'embrouille et prétend qu'il y a une erreur de syntaxe (parce qu'il y en a !). Voici donc une instruction qui entre une formule contenant des guillemets :

Plage ("A13").Formule = "=SUM(A1:A12)&"" Magasins"""

Soit dit en passant, vous pouvez accéder à la propriété Formula d'une cellule même si la cellule n'a pas de formule. Si une cellule n'a pas de formule, la propriété Formula renvoie la même chose que sa propriété Value.

Si vous avez besoin de savoir si une cellule a une formule, utilisez la propriété HasFormula.

Sachez que VBA « parle » anglais américain. Cela signifie que pour mettre une formule dans une cellule, vous devez utiliser la syntaxe US. Si vous utilisez une version non anglaise d'Excel, lisez la propriété FormulaLocal dans le système d'aide.

Excel VBA : la propriété NumberFormat

La propriété NumberFormat représente le format numérique (exprimé sous forme de chaîne de texte) de l'objet Range. Il s'agit d'une propriété en lecture-écriture, votre code VBA peut donc soit examiner le format des nombres, soit le modifier. L'instruction suivante modifie le format numérique de la colonne A en un pourcentage avec deux décimales :

Colonnes ("A:A").NumberFormat = "0.00%"

Suivez ces étapes pour voir une liste d'autres formats de nombres (mieux encore, activez l'enregistreur de macros pendant que vous faites cela) :

Activer une feuille de calcul.

Appuyez sur Ctrl+1 pour accéder à la boîte de dialogue Format de cellule.

Cliquez sur l'onglet Numéro.

Sélectionnez la catégorie Personnalisé pour afficher et appliquer des chaînes de format de nombre supplémentaires.

Leave a Comment

Comment définir les options de vérification linguistique de Word 2010

Comment définir les options de vérification linguistique de Word 2010

Découvrez comment configurer les options de vérification linguistique dans Word 2010 pour améliorer votre rédaction et éviter les erreurs.

Comment utiliser la fonction CONFIANCE dans Excel

Comment utiliser la fonction CONFIANCE dans Excel

Découvrez comment utiliser les fonctions CONFIDENCE.NORM et CONFIDENCE.T dans Excel pour calculer des intervalles de confiance pour les moyennes de population, améliorant ainsi la prise de décision basée sur des données.

Formater les nombres en milliers et en millions dans les rapports Excel

Formater les nombres en milliers et en millions dans les rapports Excel

Améliorez la lisibilité de vos rapports Excel en formatant vos chiffres en milliers ou millions avec des astuces simples et efficaces pour votre audience.

Comment personnaliser vos étiquettes de données de graphique croisé dynamique Excel

Comment personnaliser vos étiquettes de données de graphique croisé dynamique Excel

Apprenez comment personnaliser vos étiquettes de données dans Excel pour un meilleur rapport. Utilisez les valeurs de votre tableau croisé dynamique efficacement.

Comment créer une application Web Access

Comment créer une application Web Access

Découvrez comment créer une application Web dans Access 2016. Apprenez les étapes essentielles pour développer votre application en ligne facilement.

Comment utiliser les commentaires dans Microsoft Word 2019

Comment utiliser les commentaires dans Microsoft Word 2019

Découvrez comment ajouter, répondre, afficher et supprimer des <strong>commentaires dans Microsoft Word</strong> 2019 pour optimiser votre collaboration.

Feuille intelligente 9.1.1

Feuille intelligente 9.1.1

Smartsheet est une plateforme de travail dynamique qui vous permet de gérer des projets, de créer des flux de travail et de collaborer avec votre équipe.

SharePoint

SharePoint

SharePoint est un système de collaboration basé sur le Web qui utilise une variété d'applications de flux de travail, des bases de données de « liste » et d'autres composants Web, ainsi que des fonctionnalités de sécurité pour donner le contrôle aux groupes professionnels qui travaillent ensemble.

Calendrier perpétuel 1.0.38/1.0.36

Calendrier perpétuel 1.0.38/1.0.36

Van Nien Calendar est une application d'affichage de calendrier sur votre téléphone, vous aidant à voir rapidement la date luni-solaire sur votre téléphone, organisant ainsi votre travail important.

Microsoft Outlook 2021

Microsoft Outlook 2021

Microsoft Outlook est une application commerciale et de productivité développée par Microsoft Corporation.