Répéter le macro à la ligne suivante avec une cellule qui change

Kusco

XLDnaute Nouveau
Bonjour à tous !

J'aurais besoin de :
_ Copier la ligne x+1 vers la ligne y, puis copier la cellule E15 vers la vellule Fx+1
Un enchainement de calcul se fait par des formules en prenant les données contenus dans la ligne y pour donner le résultat en E15
_ Copier la ligne x+1 vers la ligne y, puis copier la cellule E15 vers la vellule Fx+1

Et ainsi de suite (sur 250 lignes)

L'explication par le code de ce qu'il faudrait faire manuellement pour 2 lignes seulement
Code:
Sub AZE()

    Rows("1:1").Select
    Selection.Copy
    Rows("14:14").Select
    ActiveSheet.Paste
    Range("F15").Select
    Selection.Copy
    Range("F1").Select
    ActiveSheet.Paste
    
    Rows("2:2").Select
    Selection.Copy
    Rows("14:14").Select
    ActiveSheet.Paste
    Range("F15").Select
    Selection.Copy
    Range("F2").Select
    ActiveSheet.Paste
    
End Sub

Je joins un fichier excel pour que vous puissiez mieux vous y retrouver !
Merci :)
 

Pièces jointes

  • Azerty.xls
    24 KB · Affichages: 87
  • Azerty.xls
    24 KB · Affichages: 76
  • Azerty.xls
    24 KB · Affichages: 71

Robert

XLDnaute Barbatruc
Repose en paix
Re : Répéter le macro à la ligne suivante avec une cellule qui change

Bonjour Kusco bonjour le forum,

Ce que tu demandes doit être facilement réalisable avec un boucle. Mais je t'avoue ne pas avoir compris ce que tu voulais faire exactement. Ce que je te propose c'est de refaire un exemple avec ce tu as avant et ce que tu voudrais après. Trois ou quatre lignes suffisent... Onglets A et B pour avant, Abis et Bbis pour après...
 

Kusco

XLDnaute Nouveau
Re : Répéter le macro à la ligne suivante avec une cellule qui change

Bonjour Robert, merci de ta réponse rapide !

J'ai refais un fichier avec en feuille B ce que je souhaiterais (j'ai remplis les 5 première lignes pour donner un exemple, j'ai fais un second macro (AZE2) en RECORD pour vous montrer les actions réalises.
Merci !
 

Pièces jointes

  • Azerty.xls
    27 KB · Affichages: 93
  • Azerty.xls
    27 KB · Affichages: 109
  • Azerty.xls
    27 KB · Affichages: 100

Kusco

XLDnaute Nouveau
Re : Répéter le macro à la ligne suivante avec une cellule qui change

J'ai fais une erreur dans mon message de départ, je le refais :

J'aurais besoin de :
_ Copier la ligne 1 vers la ligne 14, puis copier la cellule E15 vers la vellule F1
Un enchainement de calcul se fait par des formules en prenant les données contenus dans la ligne y pour donner le résultat en E15
_ Copier la ligne 2 vers la ligne 14, puis copier la cellule E15 vers la vellule F2
Et ainsi de suite :)
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Répéter le macro à la ligne suivante avec une cellule qui change

Bonjour Kusco, bonjour le forum,

Non c'est pas ça que je t'ai demandé. Je voudrais voir ce qu'il y a au départ, Avant dans les onglets A et B, et ensuite ce que tu voudrais avoir Après dans des onglets Abis et Bbis ou C et D, bref le nom que tu veux mais qu'on voit bien les onglets avant et après...
Je sais, je suis ch...t mais si je comprends pas je peux pas t'aider...
 

Kusco

XLDnaute Nouveau
Re : Répéter le macro à la ligne suivante avec une cellule qui change

Je ne comprend pas, je n'ai qu'un seul onglet à la base.
Du coup dans le A j'ai mis ce qu'il y a au départ et dans le B ce que je voudrais avoir après.

Désolé je ne saisi pas :/
(tu n'es pas ch.... je le suis)

(je ne cherche pas à copier simplement une formule (SOMME(...)) mais la valeur qu'elle contient bien sûr)
 
Dernière édition:

Robert

XLDnaute Barbatruc
Repose en paix
Re : Répéter le macro à la ligne suivante avec une cellule qui change

Bonjour Kusco, bonjour le forum,

Je pense avoir enfin compris... Essaie comme ça :

Code:
"Sub Macro1()
Dim o As Object 'déclare la variable o (Onglet)
Dim i As Byte 'déclare la variable i (Incrément)
Dim dl As Byte 'déclare la variable dl (Dernière Ligne)

Set o = Sheets("A") 'définit l'onglet o
dl = o.Cells(1, 1).End(xlDown).Row 'définit la dernière ligne éditée dl de la colonne 1 (=A)
For i = 1 To dl 'boucle des lignes 1 à dl
    o.Rows(i).Copy o.Rows(14) 'copie la ligne i en ligne 14
    o.Cells(15, 6).Copy o.Cells(i, 6) 'copie F15 et le colle en F de i
Next i 'prochaine ligne de la boucle
End Sub
 

Kusco

XLDnaute Nouveau
Re : Répéter le macro à la ligne suivante avec une cellule qui change

Une dernière petite question : Comment faire lorsque tu fais :
Code:
o.Cells(15, 6).Copy o.Cells(i, 6) 'copie F15 et le colle en F de i
pour que ça soit la valeur de la cellule qui soit copiée et non la formule ?
Merci :)
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Répéter le macro à la ligne suivante avec une cellule qui change

Bonjour Kusco, bonjour le forum,

Désolé j'ai répondu sans tester... Essaie comme ça :

Code:
Sub Macro1()
Dim o As Object 'déclare la variable o (Onglet)
Dim i As Byte 'déclare la variable i (Incrément)
Dim dl As Byte 'déclare la variable dl (Dernière Ligne)

Set o = Sheets("A") 'définit l'onglet o
dl = o.Cells(1, 1).End(xlDown).Row 'définit la dernière ligne éditée dl de la colonne 1 (=A)
For i = 1 To dl 'boucle des lignes 1 à dl
    o.Rows(i).Copy o.Rows(14) 'copie la ligne i en ligne 14
    o.Cells(15, 6).Copy 'copie la cellule F15
    o.Cells(i, 6).PasteSpecial (xlPasteValues) 'colle sa valeur dans la colonne F ligne i
Next i 'prochaine ligne de la boucle
Application.CutCopyMode = False 'supprime le clignotement dû à la copie
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 572
Messages
2 089 819
Membres
104 284
dernier inscrit
Yohan90