Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Copier après une sélection de plusieur lignes

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

S

SEBDEBAZ

Guest
Bonjour, je voudrais pouvoir copier les lignes sélectionnées à l'aide de ce code :
Code:
Sub test2()
'***Pour sélectionner les lignes correspondant au critère.
Dim Plage As Range, c As Range
Dim lig As String
With ActiveSheet.Range("B1:B" & Range("B65500").End(xlUp).Row)

    Set c = .Find("d_")
    If Not c Is Nothing Then
        firstAddress = c.Address
        lig = c.Row & ":" & c.Row
        Do
            Set c = .FindNext(c)
            lig = lig & "," & c.Row & ":" & c.Row
        Loop While Not c Is Nothing And c.Address <> firstAddress
    End If
End With
ActiveSheet.Range(lig).Select
End Sub

Ce code me permet de sélectionner les lignes contenant un "d_" dans la colonne B mais je ne peut pas faire de "Selection Copy"

Quelqu'un peut-il m'aider? Merci .
 
Re : Copier après une sélection de plusieur lignes

hello,

Peut etre un truc du style :

Range(lig).Copy

et ensuite:

Range("x:x").PasteSpecial (xlPasteFormats)

Par exemple (ou directement avec la destination apres copy)

J'ai pas testé mais cela doit fonctionner je pense.


Jul
 
Re : Copier après une sélection de plusieur lignes

Salut Sebdebaz,

Il faut faire une petite modification dans ton code, sinon tu as effectivement une erreur lors de la tentative de copie 😉

Code:
Sub test2()
'***Pour sélectionner les lignes correspondant au critère.
Dim Plage As Range, c As Range, FirstAddress
Dim lig As String
With ActiveSheet.Range("B1:B" & Range("B65500").End(xlUp).Row)
    Set c = .Find("d_")
    If Not c Is Nothing Then
        FirstAddress = c.Address
        lig = c.Row & ":" & c.Row
        Do
            Set c = .FindNext(c)
            [COLOR=green]' Pour ne pas reprendre la première addresse[/COLOR]
            [B][COLOR=blue]If c.Address <> FirstAddress Then[/COLOR]
[/B]              lig = lig & "," & c.Row & ":" & c.Row
            [B][COLOR=blue]End If
[/COLOR][/B]        Loop While Not c Is Nothing And c.Address <> FirstAddress
    End If
End With
ActiveSheet.Range(lig).Copy
' ... collage ensuite
End Sub

A+
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
4
Affichages
754
Réponses
14
Affichages
484
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…