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

  • Initiateur de la discussion Initiateur de la discussion Alphonss
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

A

Alphonss

Guest
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
 
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:
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:
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

L
Réponses
9
Affichages
1 K
R
Réponses
1
Affichages
680
Rose_Chlh
R
D
Réponses
4
Affichages
1 K
G
Réponses
7
Affichages
1 K
gfgghbhg
G
P
  • Résolu(e)
Réponses
2
Affichages
1 K
Pdedieu
P
M
Réponses
0
Affichages
949
Maad84
M
Réponses
4
Affichages
893
C
  • Question Question
Réponses
8
Affichages
1 K
clarouche33
C
I
  • Question Question
Réponses
1
Affichages
3 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…