Faire varier les cellules dans un code ?

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 !

francois1955

XLDnaute Junior
Bonjour,

Comment peut-on faire varier, dans un code, le nom des cellules svp ?

Exemple (résolu) :
Pour programmer l’effacement de lignes inutiles (car vides) dans l’affichage de résultats, je m’en suis sorti de la façon suivante :
For n=1 to 100
If (Range("B" & n) = "") ThenRows(n).Delete
Next n

Mais je ne sais pas comment faire pour une plage :

Range("A"&i:"A"&j).Activate
et
ActiveCell.FormulaR1C1 = "=MAX(R[-100+k]C:R[-1]C)"
ne marchent pas ?

Merci
 
Re : Faire varier les cellules dans un code ?

Bonsoir,

Pour : Range("A"&i:"A"&j).Activate il y a déjà eu un post sur le sujet aujourd'hui...
Code:
Range("A" & i & ":A" & j).activate
Pour le reste tout dépend de ce que tu veux faire exactement ?
Inscrire une formule dans la feuille ou noter le résultat de cette formule ?
Généralement l'utilisation de VBA vise à obtenir la 2ème version.

Cordialement
 
Re : Faire varier les cellules dans un code ?

Bonsoir François1955,

En langage VBA, il suffit d'être logique 😉

Range("A"&i:"A"&j)
La bonne syntaxe est : Range("A" & i ":A" & j)

ActiveCell.FormulaR1C1 = "=MAX(R[-100+k]C:R[-1]C)"
Là, il faut le savoir, tu peux rentrer la formule comme sur la feuille Excel.
ActiveCell.FormulaLocal = "=MAX(A" & Deb & "A" & Fin & ")"

J'espère que ce sera clair pour toi !

A+

Edit : Oups, salut Spitnolan08, désolé tu as été plus rapide.
 
Re : Faire varier les cellules dans un code ?

Bonsoir,
sans répondre à ta deuxième question, je me permets de faire une remarque sur ton premier code :

Code:
For n=1 to 100
If (Range("B" & n) = "") ThenRows(n).Delete
Next n

Ce code ne fonctionnera pas si tu as 2 lignes vides à suivre....
Pour supprimer des cellules, ou des lignes, il faut partir du bas...

Exemple, avec ton code :

Code:
For n=100 to 1 Step - 1
If (Range("B" & n) = "") ThenRows(n).Delete
Next n

qu'on peut simplifier comme ceci :

Code:
Range("B1:B" & [B65000].End(xlUp).Row).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
 
Re : Faire varier les cellules dans un code ?

Merci beaucoup à tous les 2 pour ces réponses ultra-rapides que je testerai demain:

Bruno, personnellement je ne trouve pas logique que le séparateur : soit "prisonnier" des guillemets 🙂). Je note aussi que la réponse de Spitnolan comporte un 1 supplémentaire.
Spitnolan08, je voudrais en effet noter le résultats de cette formule. Je suis très surpris de la syntaxe de Bruno mais là encore je n'ai pas dû comprendre la logique des guillemets 🙂)
Merci encore!
 
Re : Faire varier les cellules dans un code ?

Re,
Bonsoir BrunoM45, bhbh

Pour le 1 supplémentaire, je ne comprend pas...
Pour le reste, ce que t'indique BrunoM45 est tout à fait bon
Code:
ActiveCell.Value = WorksheetFunction.Max(Range(ActiveCell.Offset(-1, 0), ActiveCell.Offset(-100 + k, 0)))
Cordialement
 
Dernière édition:
- 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

Discussions similaires

D
Réponses
4
Affichages
1 K
Réponses
8
Affichages
1 K
Réponses
0
Affichages
747
L
Réponses
9
Affichages
1 K
Réponses
1
Affichages
1 K
Réponses
13
Affichages
2 K
Retour