• Initiateur de la discussion Initiateur de la discussion Dan L
  • 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 !

D

Dan L

Guest
Je souhaite appliquer en une fois la meme procedure sur differentes cellules selectionnees avec la touche CTRL.
Cette procedure ne fonctionne pas et je n'arrive pas a trouver l'erreur.Peut-etre quelqun peut-il m'aider.

La procedure est la suivante: (NbreRows est une variable)


For Each cell In Selection

Selection.Resize(Rowsize:=2).Rows(2).EntireRow. _
Resize(Rowsize:=NbreRows).Insert Shift:=xlDown


Selection.Resize(Rowsize:=2).Rows(2).EntireRow. _
Resize(Rowsize:=NbreRows).Group

Selection.Resize(Rowsize:=2).Rows(2).EntireRow.Resize(Rowsize:=nbreRows).Interior.ColorIndex = 40

ActiveCell.Offset(0, 8).Select
ActiveCell.FormulaR1C1 = "=SUMPRODUCT(R[+" & NbreRows & "]C:R[+1]C,R[+" & NbreRows & "]C[-2]:R[+1]C[-2])"
Selection.Locked = True

ActiveCell.Offset(0, 1).Select
ActiveCell.FormulaR1C1 = "=SUMPRODUCT(R[+" & NbreRows & "]C:R[+1]C,R[+" & NbreRows & "]C[-3]:R[+1]C[-3])"
Selection.Locked = True

ActiveCell.Offset(0, 1).Select
ActiveCell.FormulaR1C1 = "=SUMPRODUCT(R[+" & NbreRows & "]C:R[+1]C,R[+" & NbreRows & "]C[-4]:R[+1]C[-4])"
Selection.Locked = True

ActiveCell.Offset(0, 1).Select
ActiveCell.FormulaR1C1 = "=SUMPRODUCT(R[+" & NbreRows & "]C:R[+1]C,R[+" & NbreRows & "]C[-5]:R[+1]C[-5])"
Selection.Locked = True

Next cell
 
bonjour

pour commencer :

for each cell in selection
msgbox cell.value
msgbox cell.address
next cell

ton code avec la boucle for boucle sur chaque objet d'une collection donnée, en l'occurence chaque objet cellule de la collection "plage" sélectionnée

dans ton code, tu agis toujours sur la sélection et non pas sur un de ses objets.

NB : rien ne sert de sélectionner tes cellules, tu peux simplement les activer ou changer directement leur valeur et leurs propriétés, la macro gagne alors en vitesse d'exécution.

Truc : rajoute aussi application.screenupdating=false en début de macro (à désactiver avant l'affichage d'inputbox de type 8)

bye
STéphane
 
Bonjour,

Merci pour l'explication d'un programmeur chevronne, je suppose;malheureusement, je suis debutant et je ne comprend pas totalement ce que je dois changer dans ma procedure.Peut-etre peux-tu me donner plus de details?

Merci d'avance
 
- 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

Réponses
5
Affichages
701
  • Question Question
Microsoft 365 Probléme VBA
Réponses
8
Affichages
445
Retour