Copier une partie de ligne vers une autre feuille

Bonjour

Dans une de mes pages, j'ai encodé une macro effectuant une recherche sur un terme précis dans une colonne. A chaque fois que je trouve ce terme, je souhaiterais copier la ligne correspondante de la colonne A à L sur une feuille spécifique ou j'ai demandé d'abord l'insertion d'une ligne pour ne pas écraser l'info précédente. Ensuite je souhaiterais revenir sur le feuille initiale, sélectionner la ligne sur laquelle je m'étais arrêté de A à M pour l'effacer avant de continuer la recherche.

Voici le code testé sur base de morceaux trouvé sur le net :

Sub Encodage()

Dim cell As Range

Sheets("Encodage").Select

Application.ScreenUpdating = False

For Each cell In Sheets("Encodage").Range("M3:M" & Sheets("Encodage").Range("M65536").End(xlUp).Row)

If cell.Value = "ruche1" Then

Sheets("Ruche 1").Select

Rows("5:5").Select

Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove

Sheets("Encodage").Select

cell.EntireRow.Copy Destination:=Sheets("Ruche 1").Rows(5)

Sheets("Encodage").Select

Rows("3:3").Select

Application.CutCopyMode = False

Selection.ClearContents

End If

Next

Application.ScreenUpdating = True

End Sub

  • la sélection de la ligne à copier se fait sur toute la ligne et non de A à L
  • Le retour sur la feuille d'origine pour effacer la ligne de A à M ne se fait pas sur la bonne ligne

Pourriez vous corriger mon code SVP ?

Merci

Bonjour

Essaie comme ça :

Option Explicit

Dim cell As Range, fe As Worksheet, fr As Worksheet
Dim ln&

Sub Encodage()
    Dim cell As Range
    Set fe = Sheets("Encodage")
    Set fr = Sheets("ruche 1")

    Application.ScreenUpdating = False
    For Each cell In fe.Range("M3:M" & fe.Range("M65536").End(xlUp).Row)
        If cell.Value = "ruche 1" Then
            ln = cell.Row
            fr.Rows("5:5").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
            cell.EntireRow.Copy Destination:=Sheets("Ruche 1").Rows(5)
            fe.Rows(ln & ":" & ln).ClearContents
        End If
    Next
    Application.ScreenUpdating = True
End Sub

Bye !

Rechercher des sujets similaires à "copier partie ligne feuille"