Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

2 questions d'ordre général en VBA

Alphonss

XLDnaute Nouveau
Bonjour,

Comme l'annonce l'intitulé de cette discussion j'ai 2 questions : o)

1ere Question : "Range" & "Cells"
D'après ce que j'ai compris en lisant sur des forums "Range" et "Cells" diffèrent en ce point : "Cells" ne peut que prendre en charge une seule cellule tandis que "Range" peut prendre à la fois en charge une seule cellule ou plusieurs.
Ma question est donc la suivante : Est-il finalement utile d'utiliser "Cells". Autant utiliser "Range" à chaque fois. "Cells" a-t-il une utilité qui m'échappe mis à part le fait que la syntaxe est différente de "Range" :

Range.("B5").Select

ET

Cells(5, 2).Select

2eme Question : "Selection" et "ActiveCell"
J'aimerais savoir si il y a une différence entre :

Range("A1").Select
ActiveCell.FormulaR1C1 = "Bonjour"

ET

Range("A1").Select
Selection.FormulaR1C1 = "Bonjour"


Par ailleurs peut on utilisé "Selection" et "ActiveCell" aussi bien avec:

Range("A1").Select

ET

Cells(1, 1).Select


(Il me semble par ailleurs qu'il est possible d'écrire directement :
Range("A1").FormulaR1C1 = "Bonjour")

Merci d'avance


Alphons
 

RENAUDER

Nous a quitté
Repose en paix
Re : 2 questions d'ordre général en VBA

Bonjour,
Range ou Cells:
Les 2 ont leur utilité.
Par exemple pour sélectionner la cellule A1, j'utiliserai plus souvent Range("A1").Select que Cells(1,1).Select car ça me parait plus évident.
D'ailleurs tu peux aussi écrire [A1].Select

Avec des variables par contre ...
Cells avec ses 2 paramètres est approprié par exemple avec des boucles de type For i= 1 To 25 et For J=1 To 3 comme ça on peut facilement écrire des données dans une cellule en écrivant Cells(I,J).Value=...
Par exemple pour sélectionner la cellule j'utiliserai plus souvent Range("A1").Select



Pour ta seconde question tout ce que tu dis est vrai et je pense que
cela dépend de la personne qui écrit le programme car moi-même je pense avoir utilisé tous les cas que tu cites et c'est peut-être lié à l'humeur du moment.
 
Dernière édition:

Robert

XLDnaute Barbatruc
Repose en paix
Re : 2 questions d'ordre général en VBA

Bonjour le fil, bonjour le forum,

Regarde ce code et tu comprendras mieux la différence pour ta deuxième question :
Code:
Sub Macro1()
Range("A1:A10").Select
Selection.Value = "testA" 'plus court que ".FormulaR1C1 = "testA"
Range("B1:B10").Select
ActiveCell.Value = "testB"
End Sub
Même si il y a plusieurs cellules sélectionnées, il n'y a qu'une seule cellule Active.

Mais pour reprendre ta dernière remarque ce n'est pas qu'il est possible d'écrire directement mais c'est qu'on doit écrire directement. Car les Select ralentissent toujours le code et il faut éviter un maximum de les utiliser.
 
Dernière édition:

Alphonss

XLDnaute Nouveau
Re : 2 questions d'ordre général en VBA

Re,

Et bien merci beaucoup je n'ai aucune autres questions et je vois maintenant bien l'utilité de "Cells" grâce à votre exemple. Encore merci : o)

Bonne fin de journée

Alphons
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…