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

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

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

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...
 
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

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 🙂
 
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...
 
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:
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
 
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 🙂
 
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
 
- 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

Retour