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 SubBye !