[VBA] Boucle dans Macro :confused: ?

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

soaresden

XLDnaute Nouveau
Bonjour a tous !
Voila je pense que c'est un code simple mais je comprends le VBA, mais je ne sais pas le parler... Ou plutot avec un terrible accent ! 😀

J'ai utilisé l'enregistreur de macro mais je souhaiterai faire une boucle de ceci:

Sub Pa()
'
' Pa Macro
'

'
Range("B1").Select
ActiveCell.FormulaR1C1 = "=R[2]C"
Range("D1").Select
ActiveCell.FormulaR1C1 = "=R[8]C"
Range("B5").Select
Selection.Copy

Range("E9").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("D1").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "=R[9]C"
Range("B5").Select
Selection.Copy

Range("E10").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("D1").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "=R[10]C"
Range("B5").Select
Selection.Copy

Range("E11").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub
Oui !
Vous l'aurez compris, c'est toujours pareil jusqu'a une case E95 !
Je ne vais pas faire ce code jusqu'a E95 ?!

Si ?

Merci d'avance pour votre contribution 😛
 
Re : [VBA] Boucle dans Macro 😕 ?

Bonjour soaresden,
Pourrait on avoir un petit fichier exemple, par ce que là je ne comprend pas vraiment ce doit faire la macro. En la nettoyant, j'arrive à cela 😱 :
Code:
Sub Pa2()
Range("B1").FormulaR1C1 = "=R[2]C"
Range("D1").FormulaR1C1 = "=R[8]C"
Range("E9") = Range("B5").Value
Range("D1").FormulaR1C1 = "=R[9]C"
Range("E10") = Range("B5").Value
Range("D1").FormulaR1C1 = "=R[10]C"
Range("E11") = Range("B5").Value
End Sub
J'ai du louper quelque chose....🙄
Cordialement
 
Re : [VBA] Boucle dans Macro 😕 ?

Bonjour,

pour une boucle sur la plage E9 E95, une façon comme ceci :

Code:
Dim c As Range
For Each c In Range("E9:E95")
'ton code
Next c

Après si tu pouvais expliciter le résultat attendu...

bon aoprès midi
@+

Edition : bonjour fg
 
Re : [VBA] Boucle dans Macro 😕 ?

Voila Pour vous !

En fait je vous explique brievement le principe

J'utilise la loi binomiale pour faire des calculs
Etant donné que je fais varier un parametre, je voudrais automatiser ce parametre via une liste (la colonne E)

Etant donné qu'il copie colle a chaque fois une valeur, je me suis dit que c'etait une boucle finalement ?

Ca sert a tracer une courbe en temps reel 😛 !

PS: les 2 fichiers sont des .rar en fait !, comme il etait gros, j'ai découpé en 2 et remis en .zip sinon il veut pas uploader

RENOMMER le en .RAR !
 

Pièces jointes

Re : [VBA] Boucle dans Macro 😕 ?

Re soaresden, Bonjour Pierrot93,
En dehors du fait qu'il est "rare" de pouvoir ouvrir ce genre d'archive (j'ai pu car je suis chez moi...),et que le fichier reconstuit est en XLSM, votre exemple n'apposrte rien quant à la finalité de la macro (enfin pour moi, par ce que pour moi, la loi binomiale ....)
Etant certain que Pierrot93 est meilleur que moi à ce jeu;
Cordialement
 
Re : [VBA] Boucle dans Macro 😕 ?

Comme dit auparavant, je ne peux pas car il prend des valeurs en fonction d'une autre feuille car il fait partie d'une loi binomiale mais


voici la macro faites jusqu'a 13

On remarque qu'il y'a une incrementation de 1 pour RC
et que on selectionne ligne du dessous a chaque fois

Sub Pa()
'
' Pa Macro

Range("B1").Select
ActiveCell.FormulaR1C1 = "=R[2]C"
Range("D1").Select
ActiveCell.FormulaR1C1 = "=R[8]C"
Range("B5").Select
Selection.Copy

Range("E9").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("D1").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "=R[9]C"
Range("B5").Select
Selection.Copy

Range("E10").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("D1").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "=R[10]C"
Range("B5").Select
Selection.Copy

Range("E11").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("D1").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "=R[11]C"
Range("B5").Select
Selection.Copy

Range("E12").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("D1").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "=R[12]C"
Range("B5").Select
Selection.Copy

Range("E13").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("D1").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "=R[13]C"
Range("B5").Select
Selection.Copy
...
etc
etc
End Sub
 
Dernière édition:
Re : [VBA] Boucle dans Macro 😕 ?

Par étape, la macro doit réaliser:

Tout d'abord
Range("B1").Select
ActiveCell.FormulaR1C1 = "=R[2]C"
Range("D1").Select
ActiveCell.FormulaR1C1 = "=R[8]C"

Parce qu'on en a besoin pour "selectionner" Pa ou Pb 🙂

Ensuite :

On va sur D1 (la cellule designant le %)
on lui donne la valeur en D9
La valeur en B5 a alors changé, c'est pourquoi on la copie et on la colle en E9

On va sur D1 (la cellule designant le %)
on lui donne la valeur en D10
La valeur en B5 a alors changé, c'est pourquoi on la copie et on la colle en E10

On va sur D1 (la cellule designant le %)
on lui donne la valeur en D11
La valeur en B5 a alors changé, c'est pourquoi on la copie et on la colle en E11

...

Jusqu'a 209.

A partir d'un moment de toute facon, la valeur va changer et la courbe va apparaitre 🙂
 
Re : [VBA] Boucle dans Macro 😕 ?

Re

A tester puisque l'on ne peut pas le faire dans le fichier joint

Code:
Sub Pa1()
Range("B1").FormulaR1C1 = "=R[2]C"
Range("D1").FormulaR1C1 = "=R[8]C"
For n = 9 To Range("E65536").End(xlUp).Row
Range("B5").Copy
Range("E" & n).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Range("D1").FormulaR1C1 = "=R[" & n & "]C"
Next
End Sub

Note: Je ne connais EXcel 2007 que depuis peu et je ne m'explique pas pourquoi la macro que j'ai créée qui s'affiche bien (a l'instar des autres) ne peut etre executée (Bouton Executer non operationnel alors qu'i l'est pour les autres)
Je peux apparemment la lancer a partir de Vba (mais l'effet n'est pas saisissant !!)
 
Dernière édition:
Re : [VBA] Boucle dans Macro 😕 ?

Re
Un essai sans grande conviction...
Code:
Sub Pa3()
Range("B1").FormulaR1C1 = "=R[2]C"
Range("D1").FormulaR1C1 = "=R[8]C"
For i = 9 To 209
    Cells(1, 4) = Cells(i, 4).Value
    Cells(i, 5) = Cells(5, 2).Value
Next i
End Sub
Cordialement
 
Re : [VBA] Boucle dans Macro 😕 ?

Bonjour,

Ceci est un exemple rigolo d'un problème mal posé qui, du coup, nous oblige à extrapoler :
La demande
Le résultat escompté
La méthode pour y parvenir...

Si l'on en revient au problème de base :
Etant donné que je fais varier un parametre, je voudrais automatiser ce parametre via une liste (la colonne E)

La solution est alors beaucoup plus évidente :
En colonne E : tu mets ton paramètre qui varie de 1 à 65536 par ex en entrant 1 en E1, 2 en E2, et un double clic auto jusqu'en bas du fichier

En colonne F : tu mets ton calcul en prenant appui sur la colonne E.
En F2 : tu mets =E2 * 2 et tu tires la formule

Pourquoi vouloir passer par une boucle de macro (dont Pierrot t'a donné la syntaxe) ou par un "copier coller valeur" répété en macro?
 
Re : [VBA] Boucle dans Macro 😕 ?

Re au fil,
Pierreean, pour 2007 et à titre annecdotique, si je lance ta proposition (et la mienne aussis d'ailleurs) depuis un nouveau classeur par F8, Excel me crée un nouveau module avec uniquement les en têtes :
Code:
Sub Pa1()
 
End Sub
A la deuxiéme tentative il me donne le choix Module1.Pa1 ou Module2.Pa1 et accepte le code en Module1 😱.
Pour moi cela reste un mystére.
Cordialement
 
- 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

Réponses
18
Affichages
422
Réponses
10
Affichages
653
Réponses
2
Affichages
345
Réponses
17
Affichages
1 K
Retour