activer une cellule après un test de contenu

freefer

XLDnaute Nouveau
bonjour,

je n'arrive pas à activer une cellule après un test de contenu par "for each cel in range", je trouve bien la cellule qui m'interesse mais je n'arrive pas à la mettre en "ActiveCell" pour tranférer mes données :
For Each Cel In Selection
If Left(Cel.Value, 5) <> "Annul" Then GoTo etiq3
ActiveCell = (Cel) ?

Comment lorsque la cellule contenant "Annul" est selectionnée, la passer en cellule active ?

Merci d'avance.

Freefer
 

skoobi

XLDnaute Barbatruc
Re : activer une cellule après un test de contenu

Bonjour freefer, bienvenue sur XLD,

remplace:
Code:
ActiveCell =  (Cel)
par
Code:
Cel.Select

Quel est le but de cette sélection car très souvent .Select est inutile dans un code.
 

freefer

XLDnaute Nouveau
Re : activer une cellule après un test de contenu

Bonjour freefer, bienvenue sur XLD,

remplace:
Code:
ActiveCell =  (Cel)
par
Code:
Cel.Select

Quel est le but de cette sélection car très souvent .Select est inutile dans un code.

Nickel, ça marche !! merci, j'ai de bonnes notions de programmation mais je ne connaîs pas bien la syntaxe VBA et je galère parfois pour trouver la bonne.

Ll but est de remplacer le contenu de plusieurs cellules (offset) à partir de cette cellule que je veux activer.


Freefer
 

skoobi

XLDnaute Barbatruc
Re : activer une cellule après un test de contenu

Re,
Ll but est de remplacer le contenu de plusieurs cellules (offset) à partir de cette cellule que je veux activer.
pour remplacer les cellules relatives à celle-ci, tu n'est pas obligé de la sélectionner. Tu peux tout simplement faire par exemple:
Code:
Cel.Offset(1,0).Value = Cel.Value
Fais le test, tu verras la rapidité d'exécution surtout si tu as un nombre de ligne significative (500?) car comme je l'ai dis plus haut, .Select ralentie inutilement une macro.
 

freefer

XLDnaute Nouveau
Re : activer une cellule après un test de contenu

Re,
pour remplacer les cellules relatives à celle-ci, tu n'est pas obligé de la sélectionner. Tu peux tout simplement faire par exemple:
Code:
Cel.Offset(1,0).Value = Cel.Value
Fais le test, tu verras la rapidité d'exécution surtout si tu as un nombre de ligne significative (500?) car comme je l'ai dis plus haut, .Select ralentie inutilement une macro.

Ok, merci pour le conseil d'éviter Select. Mon programme n'a pas encore 500 lignes, mais il risque de les atteindre lorsque je l'aurai fini (notation d'élèves avec customization des matières et coefficients ainsi que calcul de courbe de progression avec prévison de notes finale que l'on peut choisir).

Merci encore pour tes conseils, cordialement,

Freefer
 

Discussions similaires

Réponses
0
Affichages
176
Réponses
1
Affichages
196

Statistiques des forums

Discussions
312 492
Messages
2 088 930
Membres
103 984
dernier inscrit
maliko67