Copier/coller lignes dans nouvelle feuille

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

B

buzz

Guest
Bonjour,

Je débute en VBA excel et je bloque sur une formule.

ma 'feuil1' comporte des données. j'ai effectué un premier filtre en mettant en évidence les lignes qui m'intéressent en couleur mauve (n°39). celle si ne se suivent malheuresement pas et leurs emplacements est aléatoire.

je souhaite maintenant sélectionner uniquement les lignes mauves et les copier dans une 'feuil2'

j'ai essayé une fonction 'For Each Cell In Range('a1:a1000')
If Cell.Interior.ColorIndex = 39 Then Cell.EntireRow.Select blablablabla' mais lorsque je demande de coller ma sélection à partir de la cellule A1 de ma 'feuil2' les lignes 's'écrasent' ligne 1 et il ne reste au final que la dernière ligne mauve sélectionnée dans ma 'feuil1'....(j'espère que vous suivez ;-)). les précédentes ont été écrasées.

je souhaite donc que chaque ligne mauve dans ma 'feuil1' soit recopiée dans ma 'feuil2' et elles seules uniquement.

Merci d'avance,

François
 
Bonjour buzz

Mon ancien nick name.

essaie ceci


Code:
With ActiveWorkbook
For Each cell In .Sheets(1).Range('a1:a1000')
     If cell.Interior.ColorIndex = 39 Then
        With Sheets(2)
             cell.EntireRow.Copy Destination:=.Cells(.Cells(65532, 1).End(xlUp).Row + 1, 1)
        End With
     End If
Next cell

Philippe

Message édité par: Hellboy, à: 28/04/2005 17:17
 
salut buzz,

une petite macro qui devrait fonctionner,

Code:
Sub copi_colle()
j = 1
k = 1
Sheets('Feuil1').select
Range('A1').Select

For i = 1 To Range('A65536').End(xlUp).Row
    If ActiveCell.Interior.ColorIndex = 39 Then
        Rows(j).Select
        Selection.Copy
        Sheets('Feuil2').Select
        Cells(k, 1).Select
        k = k + 1
        ActiveSheet.Paste
    End If
    Sheets('Feuil1').Select
    Selection.Offset(1, 0).Select
    j = j + 1
Next i
End Sub


Il y a surement plus simple mais mon niveau et ma logique font que c'est toujours long. enfin tant que ca fonctionne.

@+
 
- 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
5
Affichages
970
S
Réponses
8
Affichages
2 K
StanislasC
S
N
Réponses
6
Affichages
2 K
Navillus
N
L
Réponses
10
Affichages
2 K
Lereq
L
Retour