Macro pour copier ligne

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

pepsi

XLDnaute Occasionnel
Bonjour

Je cherche à créer une macro qui me permettrait de réaliser automatiquement ces instructions. Je galère en vba ...

1/ Rechercher dans la feuille RE le numéro de la dernière ligne sur laquelle est saisi 40 (variable A)

2/ Recopier la ligne 28 de la feuille BA jusqu'à la ligne suivante :

variable A -8 + 28

Je ne sais pas si c'est difficile à écrire en vba.

Je mets en pièce jointe un exemple simplifié .... Merci à tous ceux qui pourront m'aider
 

Pièces jointes

Re : Macro pour copier ligne

Salut pepsi et le forum
C'est pas que ça soit dur à coder... juste dur à comprendre !
1/ Rechercher dans la feuille RE le numéro de la dernière ligne sur laquelle est saisi 40 (variable A) Une simple boucle en sens inverse devrait suffire. Jusqu'à là, ça va.

2/ Recopier la ligne 28 de la feuille BA jusqu'à la ligne suivante :
variable A -8 + 28

Là, pas sûr de comprendre !
On doit recopier Quoi ? et où ?
Sur ton exemple, la valeur 40 apparaît en ligne 207 (toutes les 40 à partir de 27) => A=207 "A-8+28" = "A+20" = 207+20 = 227
on doit recopier la ligne 28 de BA de la ligne 28 à la ligne 227 ?
Code:
Sub test()
Dim A As Long, FLG As Boolean
With Sheets("RE")
    For A = .Cells(Rows.Count, "A").End(xlUp).Row To 1 Step -1
        If .Range("A" & A) = 40 Then
            FLG = True
            Exit For
        End If
    Next A
    If FLG = False Then
        MsgBox "Valeur non trouvée"
        Exit Sub
    End If
    .Rows(28).Copy Sheets("BA").Rows("28:" & (A - 8 + 28))
End With
End Sub
Mais est-ce bien ça ?
De plus, faire une macro, juste pour ça me semble... un peu exagéré. Un peu comme demander une tronçonneuse pour couper un cure-dent.
A+
 
Re : Macro pour copier ligne

Bonsoir,

Je te remercie d'avoir pris le temps de lire et d'essayer de comprendre ma requête ...

Oui tu as bien compris ma demande, mais juste une précision, je souhaite non pas copier la ligne mais la formule de la ligne 8.

Faut il modifier le code vba ?

En tout cas merci beaucoup
 
Re : Macro pour copier ligne

Une précision,

Je cherche à recopier les formules de la ligne 28 de la feuille BA :

et ce jusqu'à la ligne

variable A -8 + 28

Donc dans l'exemple jusqu'à la ligne 227.

Pour le moment, le code vba recopie la ligne 28 de la feuille RE ....
 
Re : Macro pour copier ligne

Finalement, j'ai modifié le code de Gorfael en ajoutant With Sheets("BA")

Ca marche ,

Merci encore Gorfael 🙂


Code:
Sub test()
Dim A As Long, FLG As Boolean
With Sheets("RE")
    For A = .Cells(Rows.Count, "A").End(xlUp).Row To 1 Step -1
        If .Range("A" & A) = 38 Then
            FLG = True
            Exit For
        End If
    Next A
    If FLG = False Then
        MsgBox "Valeur non trouvée"
        Exit Sub
    End If
    
    End With
    
    With Sheets("BA")
    
    .Rows(28).Copy Sheets("BA").Rows("28:" & (A - 8 + 28))
  End With
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