Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Entre parentheses, Les crochets

3 réponses
Avatar
rthompson
Bonjour

Une question éducative

Qui peut me dire ou aller pour (finalement) comprendre la différence entre
crochets pour matriciel je crois
et parenthéses pour fonctions

Je vois passer toutes sortes de macros avec l'un ou l'autre ou les deux

Et j'aimerais comprendre

Et le premier qui déconne dans le genre

Les crochets, c'est pour les petits vieux au coin du feu
Tandis que les parenthèses serves de protection dans les in Putes box

Aura de mes nouvelles

Rex ;-)))))))

3 réponses

Avatar
LSteph
Bonsoir Rex,


Range est une propriété mais aussi
Range tout seul est une collection pouvant désigner tout objet Range
cellule, groupe de cellules,ligne(s) colonne(s) ,ou un ensemble
...jusqu'à 3D
qui avec
les crochets ainsi:
[a1:b2]
désignent l' objet Range dont l'adresse est "a1:b2"
.address est lui même propriété de Range
On peut ainsi écrire Range("a1:b2")
alors que a1:b2 ainsi écrit comme référence à l'objet
ne sera compris par vba qu'avec les crochets.

le même argument ne sera compris que textuellement en tant qu'adresse
donc entre guillemets "a1:b2" par Range()
dont les parenthèses servent juste à contenir le paramètre attendu.

Cordialement.

lSteph

Bonjour

Une question éducative

Qui peut me dire ou aller pour (finalement) comprendre la différence entre
crochets pour matriciel je crois
et parenthéses pour fonctions

Je vois passer toutes sortes de macros avec l'un ou l'autre ou les deux

Et j'aimerais comprendre

Et le premier qui déconne dans le genre

Les crochets, c'est pour les petits vieux au coin du feu
Tandis que les parenthèses serves de protection dans les in Putes box

Aura de mes nouvelles

Rex ;-)))))))




Avatar
Rex
Merci

C'est un début

MAIS

Je crois qu'il me faudra encore beaucoup de patience pour arriver à faire
tout ce que je veux
sans faire appel à vous

DONC

A très bientôt

Rex


"LSteph" a écrit dans le message de news:

Bonsoir Rex,


Range est une propriété mais aussi
Range tout seul est une collection pouvant désigner tout objet Range
cellule, groupe de cellules,ligne(s) colonne(s) ,ou un ensemble
...jusqu'à 3D
qui avec
les crochets ainsi:
[a1:b2]
désignent l' objet Range dont l'adresse est "a1:b2"
.address est lui même propriété de Range
On peut ainsi écrire Range("a1:b2")
alors que a1:b2 ainsi écrit comme référence à l'objet
ne sera compris par vba qu'avec les crochets.

le même argument ne sera compris que textuellement en tant qu'adresse
donc entre guillemets "a1:b2" par Range()
dont les parenthèses servent juste à contenir le paramètre attendu.

Cordialement.

lSteph

Bonjour

Une question éducative

Qui peut me dire ou aller pour (finalement) comprendre la différence
entre


crochets pour matriciel je crois
et parenthéses pour fonctions

Je vois passer toutes sortes de macros avec l'un ou l'autre ou les deux

Et j'aimerais comprendre

Et le premier qui déconne dans le genre

Les crochets, c'est pour les petits vieux au coin du feu
Tandis que les parenthèses serves de protection dans les in Putes box

Aura de mes nouvelles

Rex ;-)))))))






Avatar
MichDenis
| la différence entre crochets pour matriciel je crois
| et parenthèses pour fonctions

Dans la fenêtre de l'éditeur de code, les crochets ne
désignent pas une formule matricielle mais c'est l'équivalent
de la méthode "Evaluate" de l'objet Application.
(Voir aide sur la méthode "evaluate")
Je fais référence a cette syntaxe : x= [A1]
ou x = [Sum(A1:A10)]

En fait, la principale différence entre cette syntaxe :
x = [A1]
ou
x = Application.Evaluate(Range("A1").Address)

lorsque l'on utilise Evaluate, on peut utiliser une variable, ce que
ne permet pas de faire les crochets.
Dim Adr As String
Adr = Range("A1").Address
x = Application.Evaluate(Adr)

Que ce soit l'une ou l'autre des syntaxes, il y a toujours une opération
mathématique d'impliquer, celle d'évaluer la chaîne de caractère
qu'elle contient. Ce peut être une formule ou la simple désignation
d'une adresse d'une plage de cellules comme dans [A1]

La syntaxe : Range("A1:A10") désigne simplement une plage de cellule.
Aucune opération mathématique n'est exécutée.
Range représente une classe objet comme Worksheet
L'objet Range a plusieurs propriétés dont :
A ) Cells = propriété qui retourne la collection des cellules que contient l'objet Range
B ) Columns = Propriété qui retourne la collection des colonnes de l'objet Range
C ) Rows = Propriété qui retourne la collection des lignes d'un objet Range

Par exemple, dans une boucle, pour avoir une syntaxe rigoureuse
on devrait écrire

Dim C as range
'Pour chaque cellule de la plage A1:A10
For each C in Range("A1:A10").Cells
C.value = "bla bla...."
Next

La boucle s'effectue toujours sur la collection. Dans les faits,
on peut omettre .Cells car elle est la propriété objet par défaut
de l'objet Range

Pour boucler sur toutes les cellules de toutes les colonnes d'une plage de cellules

Pour chaque colonne de la collection Colonnes de la plage
For each C in Range("A1:G10").Columns
Pour chaque cellule cel de la collection Cells de la colonne
for each cel in C.Cells
cel = "bla ... bla..."
Next
Next

L'objet Range et ses propriétés ne sont là que pour désigner la plage
de cellules sur laquelle nous désirons travailler.

Le reste dans un bon bouquin.



"rthompson" a écrit dans le message de news:

Bonjour

Une question éducative

Qui peut me dire ou aller pour (finalement) comprendre la différence entre
crochets pour matriciel je crois
et parenthéses pour fonctions

Je vois passer toutes sortes de macros avec l'un ou l'autre ou les deux

Et j'aimerais comprendre

Et le premier qui déconne dans le genre

Les crochets, c'est pour les petits vieux au coin du feu
Tandis que les parenthèses serves de protection dans les in Putes box

Aura de mes nouvelles

Rex ;-)))))))