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

BOUCLE DANS UNE SELECTION

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

I

IFF

Guest
Bonsoir à tous, à ceux qui donnent conseils et à ceux qui apprennent.

Pfff; c'est quand que je change de camp?

Mon soucis et de reporter en colonne E la valeur de la colonne A
d'une sélection, ligne par ligne.

Pour tenter d'être plus clair
(Heu! C'est pas mon truc! J'vais faire un effort!!!)

Je viens de passer mon P.M. à chercher comment récupérer la valeur de la cellule Cells(i, 1) de la multiplier par la Cells(i, 2), et d'en écrire le résultat en Cells(i, 4)

Et ceci en faisant une boucle dans la plage sélectionnée,
et uniquement là!

J'ai fouillé partout dans l'aide VBA.
Hormis compter les lignes et les colonnes….. Bof

Je me suis dit qu'il y aurait bien une bonne âme ici pour m'aider. Non?

Si,si…..

Au plaisir de vous dire "Merci?
et de ne pas me coucher avec des cernes comme des sacoches.

J4EN PEUX PLUS. Help§

IFFIC
 
Salut,

La propriété cells est faite pour cela, quand on écrit directement Cells(1,1) est sous entendu sheets("Lenomdelafeuille").cells(1,1). On peut travailler de même avec une plage de cellules ou ici avec la selection

1 er cas tu sélectionnes que 2 colonnes:

Sub DeuxColonnes()
Dim Plage As Range, I
Set Plage = Selection
With Plage
If .Rows.Count <> 2 Or .Columns.Count <> 2 Then Exit Sub
For I = 1 To .Rows.Count
.Cells(I, 1).Offset(0, 3) = .Cells(I, 1) * .Cells(I, 2)
Next I
End With
End Sub

2 eme cas tu sélectionnes 4 colonnes:

Sub QuatreColonnes()
Dim Plage As Range, I
Set Plage = Selection
With Plage
If .Rows.Count <> 4 Or .Columns.Count <>4 Then Exit Sub
For I = 1 To .Rows.Count
.Cells(I, 4) = .Cells(I, 1) * .Cells(I, 2)
Next I
End With
End Sub

3 eme Par tableau VBA la plus rapide en éxécution si tu as pas mal de lignes: séléctionnes juste 2 colonnes
Sub ParTablo()
Dim Plage As Range, I, T, Temp()
With Selection
If .Columns.Count <> 2 Then Exit Sub
T = .Value
ReDim Temp(1 To .Rows.Count, 1 To 1)
For I = 1 To UBound(T)
Temp(I, 1) = T(I, 1) * T(I, 2)
Next I
.Offset(0, 3).Resize(UBound(Temp), 1) = Temp
End With
End Sub


A+++


Lien supprimé

Lien supprimé
 
Vingt Dieux!!! J'ai du boulot pour demain.

Merci pour ton aide.

Je rentre du festival Interceltique.

Promis, demain (Enfin, quand les coqs auront réussi leur lourde tâche)

Je regarde ton truc qui me semble plein d'enseignement.

C'est sympa de ta part.

Bon petit matin à toi.

Un peu trop pété pour pour analyser dans l'instant.
Mais parole de celte, au saut du lit vers 15h je m'y attelle....

Et même que je vais fouiner du coté de tes liens.

A + si je ne pige pas

IFFIC
 
- 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
10
Affichages
497
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…