XL 2016 VBA - Conserver la mise en forme lors d'une extraction

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 !

AxelViens

XLDnaute Nouveau
Bonjour,

J'ai ce code qui me permet d'extraire dans un nouvel onglet l'ensemble des lignes dont la variable (ciblée via une cellule) est présente dans la colonne A.

Cependant je souhaiterai garder la mise en forme (couleur , police, alignement et lien hypertexte..), avez vous une idée de comment faire ?

Bien à vous,



Code:
Private Sub CommandButton1_Click()

Application.ScreenUpdating = False
Dim DerligSrc&, DerligDst&
DerligSrc = Worksheets("Feuil1").Range("A" & Rows.Count).End(xlUp).Row
With Worksheets("Feuil3")
    For i = 5 To DerligSrc
        If .[A1].Value = Worksheets("Feuil1").Range("A" & i) Then
            DerligDst = .Range("A" & Rows.Count).End(xlUp).Row + 1
            .Range("E" & DerligDst & ":K" & DerligDst) = Worksheets("Feuil1").Range("A" & i & ":G" & i).Value
        End If
    Next i
End With

End Sub
 
Solution
Bonjour @AxelViens , @cp4, @Bernard_XLD

Ma proposition

VB:
Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
Dim DerligSrc&, DerligDst&
DerligSrc = Worksheets("Feuil1").Range("A" & Rows.Count).End(xlUp).Row
With Worksheets("Feuil3")
    For i = 5 To DerligSrc
        If .[A1].Value = Worksheets("Feuil1").Range("A" & i) Then
            DerligDst = .Range("A" & Rows.Count).End(xlUp).Row + 1
            '.Range("E" & DerligDst & ":K" & DerligDst) = Worksheets("Feuil1").Range("A" & i & ":G" & i).Value
            Worksheets("Feuil1").Range("A" & i & ":G" & i).Copy Destination:=Sheets("feuil3").Range("E" & DerligDst)
        End If
    Next i
End With
End Sub

*Merci de ton retour

@Phil69970
Bonjour AxelViens, cp4, le forum
Bonsoir,

Sans fichier difficile de t'aider. Essaie avec Copy comme ci-dessous
VB:
.Range("E" & DerligDst & ":K" & DerligDst).Copy Worksheets("Feuil1").Range("A" & i & ":G" & i).Value
Bonne soirée.
@cp4 , à mon humble avis, le .Value en destination est de trop ! 😉

Cordialement, @+
 
Bonjour @AxelViens , @cp4, @Bernard_XLD

Ma proposition

VB:
Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
Dim DerligSrc&, DerligDst&
DerligSrc = Worksheets("Feuil1").Range("A" & Rows.Count).End(xlUp).Row
With Worksheets("Feuil3")
    For i = 5 To DerligSrc
        If .[A1].Value = Worksheets("Feuil1").Range("A" & i) Then
            DerligDst = .Range("A" & Rows.Count).End(xlUp).Row + 1
            '.Range("E" & DerligDst & ":K" & DerligDst) = Worksheets("Feuil1").Range("A" & i & ":G" & i).Value
            Worksheets("Feuil1").Range("A" & i & ":G" & i).Copy Destination:=Sheets("feuil3").Range("E" & DerligDst)
        End If
    Next i
End With
End Sub

*Merci de ton retour

@Phil69970
 
Bonjour @cp4 @Bernard_XLD et @Phil69970

Avec la première ligne --> Erreur d'exécution
Sans le .Value --> Me coupe la zone sélectionné (comme un couper/coller) mais sans la coller sur l'autre feuille.

Et la dernière solution .. TOP ! Fonctionne correctement.. la couleur , la police , la synthaxe, le fond tout est OK ! @Phil69970 🙂 (Je fais le test avec lien hypertexte dans la matinée, si je ne reviens pas sur ce sujet là, c'est que sa fonctionne aussi)

Merci à tout les trois,

Bonne journée
 
- 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

Réponses
4
Affichages
332
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
45
Réponses
2
Affichages
371
  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
482
Réponses
3
Affichages
518
Retour